Compare commits

...
Sign in to create a new pull request.

93 commits

Author SHA1 Message Date
Jitka Plesnikova
74b108992c 4.4.1 bump (rhbz#2419819, rhbz#2415440) 2025-12-10 15:58:52 +01:00
Jitka Plesnikova
b3992326f1 4.4.0 bump (rhbz#2405182) 2025-10-23 12:22:47 +02:00
Jitka Plesnikova
6eb1208d37 4.4.0 bump (rhbz#2405182) 2025-10-23 12:20:59 +02:00
Richard W.M. Jones
28a355063e OCaml 5.4.0 rebuild 2025-10-13 18:22:54 +01:00
Orion Poplawski
ad62c005a3 Rebuild for Octave 10.2 2025-08-07 10:42:08 -06:00
Jitka Plesnikova
9a1f1a1a55 Fix Python DeprecationWarning 2025-08-01 10:27:48 +02:00
Fedora Release Engineering
36cdf9d256 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 18:57:56 +00:00
Yaakov Selkowitz
7f3c4ff630 Add Python 3.14 support
https://github.com/swig/swig/pull/3159
2025-06-25 18:36:46 -04:00
Jitka Plesnikova
79b2996e10 4.3.1 bump (rhbz#2360009) 2025-04-16 14:14:17 +02:00
Jitka Plesnikova
6d8e3c9268 Disable R tests, because they need tcl < 9 2025-02-17 16:05:04 +01:00
Fedora Release Engineering
65e8c5a6c2 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-19 12:06:28 +00:00
Orion Poplawski
b2c552c89d Rebuild for octave 9.2 2024-11-13 19:32:11 -07:00
Jitka Plesnikova
fc387ae5fe Fix precedence of casts 2024-10-29 10:17:11 +01:00
Jitka Plesnikova
967cd34363 4.3.0 bump (rhbz#2320047) 2024-10-21 16:23:11 +02:00
Fedora Release Engineering
b769227485 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-20 06:50:39 +00:00
Yaakov Selkowitz
b2f85aac64 Rebuild for Python 3.13
Requires upstream commits from https://github.com/swig/swig/pull/2925
2024-06-23 18:10:30 -04:00
Richard W.M. Jones
7c0f355005 OCaml 5.2.0 ppc64le fix 2024-06-19 11:56:21 +01:00
Richard W.M. Jones
eb7c0ebce6 OCaml 5.2.0 for Fedora 41 2024-05-29 17:43:44 +01:00
Yaakov Selkowitz
7c322c4f69 Disable PHP support on 32-bit also in ELN 2024-05-03 18:28:12 -04:00
Jitka Plesnikova
797df90a0b Fix gcc -Wformat-security warning in R Raise function (rhbz#2277767) 2024-04-29 16:41:21 +02:00
Jitka Plesnikova
07e662f6d6 Disable PHP support on 32-bit 2024-04-16 17:02:40 +02:00
Remi Collet
abae643ad3 disable PHP support on 32-bit 2024-04-12 09:58:19 +02:00
Jitka Plesnikova
daa3574f6d Temporary disable java tests (rhbz#2266693) 2024-03-07 17:10:07 +01:00
Jiri Vanek
2f97bd3f0c Rebuilt for java-21-openjdk as system jdk
https://fedoraproject.org/wiki/Changes/Java21
2024-02-27 18:16:53 +01:00
Jitka Plesnikova
48a62aa030 4.2.1 bump (rhbz#2265786) 2024-02-26 13:37:19 +01:00
Jitka Plesnikova
5a53f07653 4.2.0 bump (rhbz#2256296) 2024-01-23 12:50:48 +01:00
Richard W.M. Jones
f77b41fc2e OCaml 5.1.1 + s390x code gen fix for Fedora 40 2023-12-18 13:34:53 +00:00
Richard W.M. Jones
ed86a8d491 OCaml 5.1.1 rebuild for Fedora 40 2023-12-12 12:25:11 +00:00
Jitka Plesnikova
8b63a5b179 Fix PHP director_classes testcase failures on x86 2023-12-07 19:29:08 +01:00
Jitka Plesnikova
d32feca3e6 Stop using Python's 2to3 2023-10-20 14:04:28 +02:00
Jitka Plesnikova
6463e51599 Fix PHP test, it fails with PHP 8.3 2023-10-11 08:56:02 +02:00
Richard W.M. Jones
bef85e9f4f OCaml 5.1 rebuild for Fedora 40 2023-10-05 15:52:16 +01:00
Fedora Release Engineering
3cfcd3fd2e Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-22 02:57:15 +00:00
Jerry James
4fcc29d0a3 Add patch for python 3.12 2023-07-12 22:21:36 -06:00
Richard W.M. Jones
cfa2a17e5e OCaml 5.0 rebuild for Fedora 39 2023-07-11 23:51:07 +01:00
Richard W.M. Jones
a88b74f2ba ExcludeArch i686 (https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/SPML7CUBSZNI36NLXGVHEG7DNHU3EWOJ/) 2023-07-11 11:28:03 +01:00
Jerry James
3b57be16db Enable OCaml support. Add patch for OCaml 5.0.0. 2023-07-04 19:28:26 -06:00
Orion Poplawski
1e5ff9449e Rebuild with octave 8.1.0 2023-04-08 17:10:50 -06:00
Jitka Plesnikova
bad99c2667 Use local copy of Octave 8.1 patch 2023-03-27 11:58:59 +02:00
Orion Poplawski
4043e54fe7 Add patch to support octave 8.1 2023-03-15 20:18:51 -06:00
Jitka Plesnikova
fa8219acb6 Disable PHP test on i686 2023-02-02 09:58:02 +01:00
Fedora Release Engineering
474931b379 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-21 04:26:17 +00:00
Florian Weimer
f50f0e420e Port configure script to C99
Related to:

  <https://fedoraproject.org/wiki/Changes/PortingToModernC>
  <https://fedoraproject.org/wiki/Toolchain/PortingToModernC>
2023-01-12 17:51:55 +01:00
Jitka Plesnikova
3fe391e859 Update license to SPDX format 2022-12-20 14:45:23 +01:00
Jitka Plesnikova
5a104ce6fb Update to 4.1.1 2022-12-01 13:32:40 +01:00
Jitka Plesnikova
f1e63a8640 Update to 4.1.0 2022-10-25 14:11:18 +02:00
Maxwell G
cff75cf870
Exclude golang extension from i686 2022-07-21 15:27:35 -05:00
Maxwell G
1d2ecc9240
Rebuild for CVE-2022-{1705,32148,30631,30633,28131,30635,30632,30630,1962} in golang 2022-07-19 13:59:09 -05:00
Robert-André Mauchin
37afcecc7c Rebuilt for CVE-2022-1996, CVE-2022-24675, CVE-2022-28327, CVE-2022-27191, CVE-2022-29526, CVE-2022-30629 2022-06-18 12:22:12 +02:00
Orion Poplawski
1fe0c72f6b Rebuild for octave 7.1 2022-05-31 21:58:09 -06:00
Jitka Plesnikova
f74f288cd0 Disable Java tests 2022-03-03 09:17:44 +01:00
Jitka Plesnikova
c972358d36 Enable Ruby tests on all arches 2022-02-08 12:16:55 +01:00
Jitka Plesnikova
34774501ed Fix tests against GCC12, enable Guile tests 2022-01-22 10:37:20 +01:00
Jitka Plesnikova
4adf2d1284 Fix tests against GCC12, enable Guile tests 2022-01-22 10:32:40 +01:00
Fedora Release Engineering
a2bd7ba1ee - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-22 02:03:26 +00:00
Jitka Plesnikova
3b059fb6f1 Disable PHP test, it fails with PHP 8.1 2021-11-24 17:26:33 +01:00
Jitka Plesnikova
7022269bc4 Enable Python tests 2021-10-07 14:40:10 +02:00
Orion Poplawski
a7dae3fb98 Rebuild for octave 6.3.0 2021-08-10 18:37:00 -06:00
Fedora Release Engineering
cb9865cf16 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-23 18:39:52 +00:00
Jitka Plesnikova
c9c90115bf Disable Python tests, they fail with 3.10.0~b2 2021-07-15 17:28:29 +02:00
Orion Poplawski
54b745be0c Add patch for octave 6 support (bz#1919617) 2021-05-31 11:05:38 -06:00
Jitka Plesnikova
62dded8bac Backport support of PHP8 from upstream 2021-03-22 07:32:46 +01:00
Fedora Release Engineering
2cd003f12e - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-27 21:24:18 +00:00
Tom Stellard
fd0b982bf5 Add BuildRequires: make
https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot
2021-01-08 22:08:23 +00:00
Jitka Plesnikova
8f1b050297 Enable tests for Python 3 2020-08-28 12:20:47 +02:00
Jitka Plesnikova
f8b278b91f Use make macros; Disable Go tests 2020-07-29 10:27:31 +02:00
Jitka Plesnikova
67adf0affe Update to 4.0.2 2020-06-10 10:48:04 +02:00
Jitka Plesnikova
97c4bc9ad9 Remove BR for Python 2 (bug#1807547) 2020-03-09 10:07:01 +01:00
Peter Robinson
81741091cf Add fix for newer NodeJS version, minor spec cleanups 2020-02-25 01:00:31 +00:00
Michael Jeanson
035e9e01d4 Fix crash in Python backend when using empty docstrings 2020-02-04 16:17:25 -05:00
Fedora Release Engineering
174b2c16fc - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-31 00:48:34 +00:00
Jitka Plesnikova
5d06ee3b49 Add support for Ruby 2.7; Fix code generated for Ruby global variables 2020-01-23 16:29:48 +01:00
Mamoru TASAKA
6ad2ca7ed2 Backport upstream fixes for ruby 2.7 (as small as possible for now) 2020-01-19 08:12:39 +09:00
Jitka Plesnikova
38e811319e Disable Ruby tests on all archs 2019-11-19 16:22:01 +01:00
Jitka Plesnikova
4ddcbf8197 Disable Ruby tests on x86_64 2019-10-17 16:08:54 +02:00
Jitka Plesnikova
0390543ac4 Update to 4.0.1 2019-08-22 09:09:32 +02:00
Jitka Plesnikova
84ea8a4c67 Backport upstream fix for Go tests (BZ#1736731) 2019-08-12 14:34:44 +02:00
Jitka Plesnikova
9f07bb8030 Disable Go tests 2019-08-07 12:58:20 +02:00
Fedora Release Engineering
02347479a3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-07-27 00:42:01 +00:00
Jitka Plesnikova
17b9b5c606 Updated package description 2019-06-05 15:27:55 +02:00
Jitka Plesnikova
315c07294e Update package description 2019-05-14 08:40:21 +02:00
Jitka Plesnikova
bc26ef20c1 Update to 4.0.0 2019-05-06 08:17:06 +02:00
Jitka Plesnikova
df96fc9c40 Update to 4.0.0 2019-05-03 14:52:42 +02:00
Orion Poplawski
b74d8bc1be Add patches for octave 5.1 support 2019-04-27 08:50:12 -06:00
Fedora Release Engineering
e084217e71 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-02-03 09:07:04 +00:00
Igor Gnatenko
baabb14839 Remove obsolete Group tag
References: https://fedoraproject.org/wiki/Changes/Remove_Group_Tag
2019-01-28 20:24:51 +01:00
Jonathan Wakely
5a0337f3d0 Rebuilt for Boost 1.69 2019-01-25 08:26:34 +00:00
Jitka Plesnikova
e01a76a62b Add support for Octave 4.4 2018-11-15 10:46:14 +01:00
Fedora Release Engineering
a4db9fed81 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-07-14 07:04:31 +00:00
Miro Hrončok
d4147f8e97 Rebuilt for Python 3.7 2018-07-02 18:24:13 +02:00
Jitka Plesnikova
c80675afb5 Disable using of Python 2 2018-06-22 16:59:36 +02:00
Jitka Plesnikova
34dd3b20b7 Disable using of Python 2 2018-06-22 16:56:24 +02:00
Miro Hrončok
240dde22fb Rebuilt for Python 3.7 2018-06-19 11:28:02 +02:00
15 changed files with 512 additions and 1301 deletions

11
.gitignore vendored
View file

@ -22,3 +22,14 @@ swig-2.0.0.tar.gz
/swig-3.0.10.tar.gz
/swig-3.0.11.tar.gz
/swig-3.0.12.tar.gz
/swig-4.0.0.tar.gz
/swig-4.0.1.tar.gz
/swig-4.0.2.tar.gz
/swig-4.1.0.tar.gz
/swig-4.1.1.tar.gz
/swig-4.2.0.tar.gz
/swig-4.2.1.tar.gz
/swig-4.3.0.tar.gz
/swig-4.3.1.tar.gz
/swig-4.4.0.tar.gz
/swig-4.4.1.tar.gz

View file

@ -1 +1 @@
SHA512 (swig-3.0.12.tar.gz) = 5eaa2e06d8e4197fd02194051db1e518325dbb074a4c55a91099ad9c55193874f577764afc9029409a41bd520a95154095f26e33ef5add5c102bb2c1d98d33eb
SHA512 (swig-4.4.1.tar.gz) = 103ddb4a5914f28e6739a006d35042c701e55ba05066acff3f3609befb5f43f253ea717fc41d06c93d8fb187ded4399c12c94665b93dc06d0fb835069391c7c7

View file

@ -1,26 +0,0 @@
From 0a9113dcba2930b658cb67f9ba1c63ad8eebd88f Mon Sep 17 00:00:00 2001
From: William S Fulton <wsf@fultondesigns.co.uk>
Date: Tue, 19 Sep 2017 07:37:29 +0100
Subject: [PATCH] Correct php testcase
---
Examples/test-suite/php/preproc_constants_runme.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Examples/test-suite/php/preproc_constants_runme.php b/Examples/test-suite/php/preproc_constants_runme.php
index ef32867..bd216c2 100644
--- a/Examples/test-suite/php/preproc_constants_runme.php
+++ b/Examples/test-suite/php/preproc_constants_runme.php
@@ -61,8 +61,8 @@ check::equal(gettype(preproc_constants::EXPR_OR), "integer", "preproc_constants.
check::equal(gettype(preproc_constants::EXPR_LAND), "boolean", "preproc_constants.EXPR_LAND has unexpected type");
check::equal(gettype(preproc_constants::EXPR_LOR), "boolean", "preproc_constants.EXPR_LOR has unexpected type");
check::equal(gettype(preproc_constants::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
+check::equal(gettype(preproc_constants::EXPR_MIXED1), "double", "preproc_constants.EXPR_MIXED1 has unexpected type");
check::equal(gettype(preproc_constants::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
check::equal(gettype(preproc_constants::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
-check::equal(gettype(preproc_constants::EXPR_MIXED1), "integer", "preproc_constants.EXPR_MIXED1 has unexpected type");
?>
--
2.9.5

View file

@ -1,58 +0,0 @@
From 21f532975f59f0c156c76cc739f5a93f57d8f6cb Mon Sep 17 00:00:00 2001
From: Mark Dufour <m.dufour@kopano.com>
Date: Tue, 14 Feb 2017 10:48:30 +0100
Subject: [PATCH] [Coverity] fix issue reported for
SWIG_Python_ConvertFunctionPtr
Fix Coverity issue reported for SWIG_Python_ConvertFunctionPtr:
"Execution cannot reach this statement: *ptr = vptr;"
Because if 'ty' is null, then desc becomes null and we return with
SWIG_ERROR. So 'ty' cannot be null at 'if (ty)'.
---
Lib/python/pyrun.swg | 21 +++++++++------------
1 file changed, 9 insertions(+), 12 deletions(-)
diff --git a/Lib/python/pyrun.swg b/Lib/python/pyrun.swg
index ab1237f62..939a69204 100644
--- a/Lib/python/pyrun.swg
+++ b/Lib/python/pyrun.swg
@@ -1287,25 +1287,22 @@ SWIG_Python_ConvertFunctionPtr(PyObject *obj, void **ptr, swig_type_info *ty) {
return SWIG_ConvertPtr(obj, ptr, ty, 0);
} else {
void *vptr = 0;
-
+ swig_cast_info *tc;
+
/* here we get the method pointer for callbacks */
const char *doc = (((PyCFunctionObject *)obj) -> m_ml -> ml_doc);
const char *desc = doc ? strstr(doc, "swig_ptr: ") : 0;
if (desc)
desc = ty ? SWIG_UnpackVoidPtr(desc + 10, &vptr, ty->name) : 0;
- if (!desc)
+ if (!desc)
return SWIG_ERROR;
- if (ty) {
- swig_cast_info *tc = SWIG_TypeCheck(desc,ty);
- if (tc) {
- int newmemory = 0;
- *ptr = SWIG_TypeCast(tc,vptr,&newmemory);
- assert(!newmemory); /* newmemory handling not yet implemented */
- } else {
- return SWIG_ERROR;
- }
+ tc = SWIG_TypeCheck(desc,ty);
+ if (tc) {
+ int newmemory = 0;
+ *ptr = SWIG_TypeCast(tc,vptr,&newmemory);
+ assert(!newmemory); /* newmemory handling not yet implemented */
} else {
- *ptr = vptr;
+ return SWIG_ERROR;
}
return SWIG_OK;
}
--
2.14.3

View file

@ -1,36 +0,0 @@
From 9825fcbab5c4ddd867432f9922bebfbec7b78af0 Mon Sep 17 00:00:00 2001
From: Mark Dufour <m.dufour@kopano.com>
Date: Tue, 14 Feb 2017 10:34:37 +0100
Subject: [PATCH] [Coverity] fix issue reported for SWIG_Python_FixMethods
Fix Coverity issue reported for SWIG_Python_FixMethods:
"buffer_size: Calling strncpy with a source string whose length
(10 chars) is greater than or equal to the size argument (10)
will fail to null-terminate buff."
The issue is only reported for the "swig_ptr: " line, but for
consistency we replace both occurrences of strncpy with memcpy.
---
Lib/python/pyinit.swg | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Lib/python/pyinit.swg b/Lib/python/pyinit.swg
index 2cc582841..fe45ac941 100644
--- a/Lib/python/pyinit.swg
+++ b/Lib/python/pyinit.swg
@@ -306,9 +306,9 @@ SWIG_Python_FixMethods(PyMethodDef *methods,
char *ndoc = (char*)malloc(ldoc + lptr + 10);
if (ndoc) {
char *buff = ndoc;
- strncpy(buff, methods[i].ml_doc, ldoc);
+ memcpy(buff, methods[i].ml_doc, ldoc);
buff += ldoc;
- strncpy(buff, "swig_ptr: ", 10);
+ memcpy(buff, "swig_ptr: ", 10);
buff += 10;
SWIG_PackVoidPtr(buff, ptr, ty->name, lptr);
methods[i].ml_doc = ndoc;
--
2.14.3

View file

@ -1,41 +0,0 @@
From 13eeebd2fb3005abc876957c68bde6a92510aa44 Mon Sep 17 00:00:00 2001
From: Mark Dufour <m.dufour@kopano.com>
Date: Tue, 14 Feb 2017 10:53:14 +0100
Subject: [PATCH] [Coverity] fix issue reported for wrapper argument checking
Fix Coverity issue reported for wrapper argument checking:
"Null-checking args suggests that it may be null, but it has already
been dereferenced on all paths leading to the check."
So 'args' is null checked, but after dereferencing it with
PyTuple_Check(args).
---
Source/Modules/python.cxx | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/Source/Modules/python.cxx b/Source/Modules/python.cxx
index a6801fc4e..5e058e773 100644
--- a/Source/Modules/python.cxx
+++ b/Source/Modules/python.cxx
@@ -2541,9 +2541,14 @@ public:
if (!fastunpack) {
Wrapper_add_local(f, "ii", "Py_ssize_t ii");
- if (maxargs - (add_self ? 1 : 0) > 0)
- Append(f->code, "if (!PyTuple_Check(args)) SWIG_fail;\n");
- Append(f->code, "argc = args ? PyObject_Length(args) : 0;\n");
+
+ if (maxargs - (add_self ? 1 : 0) > 0) {
+ Append(f->code, "if (!PyTuple_Check(args)) SWIG_fail;\n");
+ Append(f->code, "argc = PyObject_Length(args);\n");
+ } else {
+ Append(f->code, "argc = args ? PyObject_Length(args) : 0;\n");
+ }
+
if (add_self)
Append(f->code, "argv[0] = self;\n");
Printf(f->code, "for (ii = 0; (ii < %d) && (ii < argc); ii++) {\n", add_self ? maxargs - 1 : maxargs);
--
2.14.3

View file

@ -1,40 +0,0 @@
From 5803e81d488e97623fe29b8629b977be01a8229e Mon Sep 17 00:00:00 2001
From: Mark Dufour <m.dufour@kopano.com>
Date: Mon, 6 Mar 2017 21:16:41 +0100
Subject: [PATCH] Fix Coverity issue reported for setslice (pycontainer.swg):
"CID 11151 (#3-1 of 3): Using invalid iterator (INVALIDATE_ITERATOR)18.
increment_iterator: Incrementing iterator it though it is already past
the end of its container."
Coverity does not understand 'replace_count', so warns that we may go
past self->end() (or self->rend() I guess).
---
Lib/python/pycontainer.swg | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Lib/python/pycontainer.swg b/Lib/python/pycontainer.swg
index d40b0baa8..9aefb4fc7 100644
--- a/Lib/python/pycontainer.swg
+++ b/Lib/python/pycontainer.swg
@@ -351,7 +351,7 @@ namespace swig {
typename Sequence::const_iterator isit = is.begin();
typename Sequence::iterator it = self->begin();
std::advance(it,ii);
- for (size_t rc=0; rc<replacecount; ++rc) {
+ for (size_t rc=0; rc<replacecount && it != self->end(); ++rc) {
*it++ = *isit++;
for (Py_ssize_t c=0; c<(step-1) && it != self->end(); ++c)
it++;
@@ -367,7 +367,7 @@ namespace swig {
typename Sequence::const_iterator isit = is.begin();
typename Sequence::reverse_iterator it = self->rbegin();
std::advance(it,size-ii-1);
- for (size_t rc=0; rc<replacecount; ++rc) {
+ for (size_t rc=0; rc<replacecount && it != self->rend(); ++rc) {
*it++ = *isit++;
for (Py_ssize_t c=0; c<(-step-1) && it != self->rend(); ++c)
it++;
--
2.14.3

View file

@ -1,191 +0,0 @@
From 90ba174fcea1618af57aa594199541d47a89b7f6 Mon Sep 17 00:00:00 2001
From: William S Fulton <wsf@fultondesigns.co.uk>
Date: Sun, 17 Sep 2017 19:02:55 +0100
Subject: [PATCH 1/2] Fix generated code for constant expressions containing
wchar_t L literals.
Such as:
# define __WCHAR_MAX (0x7fffffff + L'\0')
Reported on swig-user mailing list.
---
CHANGES.current | 5 +++++
Examples/test-suite/csharp/preproc_constants_c_runme.cs | 3 ++-
Examples/test-suite/csharp/preproc_constants_runme.cs | 2 ++
Examples/test-suite/d/preproc_constants_c_runme.1.d | 2 ++
Examples/test-suite/d/preproc_constants_c_runme.2.d | 2 ++
Examples/test-suite/d/preproc_constants_runme.1.d | 2 ++
Examples/test-suite/d/preproc_constants_runme.2.d | 2 ++
Examples/test-suite/php/preproc_constants_c_runme.php | 2 ++
Examples/test-suite/php/preproc_constants_runme.php | 2 ++
Examples/test-suite/php5/preproc_constants_c_runme.php | 2 ++
Examples/test-suite/php5/preproc_constants_runme.php | 2 ++
Examples/test-suite/preproc_constants.i | 3 +++
Source/CParse/parser.y | 2 +-
13 files changed, 29 insertions(+), 2 deletions(-)
#diff --git a/CHANGES.current b/CHANGES.current
#index 1e4a244..b455a9f 100644
#--- a/CHANGES.current
#+++ b/CHANGES.current
#@@ -7,6 +7,11 @@ the issue number to the end of the URL: https://github.com/swig/swig/issues/
# Version 4.0.0 (in progress)
# ===========================
#
#+2017-09-17: wsfulton
#+ Fix generated code for constant expressions containing wchar_t L literals such as:
#+ # define __WCHAR_MAX (0x7fffffff + L'\0')
#+ # define __WCHAR_MIN (-__WCHAR_MAX - 1)
#+
# 2017-09-10: mlamarre
# [Python] Patch #1083. Define_DEBUG to 1 to do exactly like Visual Studio
# /LDd, /MDd or /MTd compiler options.
diff --git a/Examples/test-suite/csharp/preproc_constants_c_runme.cs b/Examples/test-suite/csharp/preproc_constants_c_runme.cs
index 76c684d..1c28e49 100644
--- a/Examples/test-suite/csharp/preproc_constants_c_runme.cs
+++ b/Examples/test-suite/csharp/preproc_constants_c_runme.cs
@@ -61,7 +61,8 @@ public class runme {
assert( typeof(int) == preproc_constants_c.EXPR_LAND.GetType() );
assert( typeof(int) == preproc_constants_c.EXPR_LOR.GetType() );
assert( typeof(double) == preproc_constants_c.EXPR_CONDITIONAL.GetType() );
-
+ assert( typeof(int) == preproc_constants_c.EXPR_WCHAR_MAX.GetType() );
+ assert( typeof(int) == preproc_constants_c.EXPR_WCHAR_MIN.GetType() );
}
static void assert(bool assertion) {
if (!assertion)
diff --git a/Examples/test-suite/csharp/preproc_constants_runme.cs b/Examples/test-suite/csharp/preproc_constants_runme.cs
index 9fae591..6b02e30 100644
--- a/Examples/test-suite/csharp/preproc_constants_runme.cs
+++ b/Examples/test-suite/csharp/preproc_constants_runme.cs
@@ -60,6 +60,8 @@ public class runme {
assert( typeof(bool) == preproc_constants.EXPR_LAND.GetType() );
assert( typeof(bool) == preproc_constants.EXPR_LOR.GetType() );
assert( typeof(double) == preproc_constants.EXPR_CONDITIONAL.GetType() );
+ assert( typeof(int) == preproc_constants.EXPR_WCHAR_MAX.GetType() );
+ assert( typeof(int) == preproc_constants.EXPR_WCHAR_MIN.GetType() );
}
static void assert(bool assertion) {
diff --git a/Examples/test-suite/d/preproc_constants_c_runme.1.d b/Examples/test-suite/d/preproc_constants_c_runme.1.d
index d846c71..2b349af 100644
--- a/Examples/test-suite/d/preproc_constants_c_runme.1.d
+++ b/Examples/test-suite/d/preproc_constants_c_runme.1.d
@@ -61,4 +61,6 @@ void main() {
static assert(is(int == typeof(EXPR_LAND())));
static assert(is(int == typeof(EXPR_LOR())));
static assert(is(double == typeof(EXPR_CONDITIONAL())));
+ static assert(is(int == typeof(EXPR_WCHAR_MAX())));
+ static assert(is(int == typeof(EXPR_WCHAR_MIN())));
}
diff --git a/Examples/test-suite/d/preproc_constants_c_runme.2.d b/Examples/test-suite/d/preproc_constants_c_runme.2.d
index 9bdbb93..1bac525 100644
--- a/Examples/test-suite/d/preproc_constants_c_runme.2.d
+++ b/Examples/test-suite/d/preproc_constants_c_runme.2.d
@@ -61,4 +61,6 @@ void main() {
static assert(is(int == typeof(EXPR_LAND())));
static assert(is(int == typeof(EXPR_LOR())));
static assert(is(double == typeof(EXPR_CONDITIONAL())));
+ static assert(is(int == typeof(EXPR_WCHAR_MAX())));
+ static assert(is(int == typeof(EXPR_WCHAR_MIN())));
}
diff --git a/Examples/test-suite/d/preproc_constants_runme.1.d b/Examples/test-suite/d/preproc_constants_runme.1.d
index 009405f..f743f48 100644
--- a/Examples/test-suite/d/preproc_constants_runme.1.d
+++ b/Examples/test-suite/d/preproc_constants_runme.1.d
@@ -60,4 +60,6 @@ void main() {
static assert(is(bool == typeof(EXPR_LAND())));
static assert(is(bool == typeof(EXPR_LOR())));
static assert(is(double == typeof(EXPR_CONDITIONAL())));
+ static assert(is(int == typeof(EXPR_WCHAR_MAX())));
+ static assert(is(int == typeof(EXPR_WCHAR_MIN())));
}
diff --git a/Examples/test-suite/d/preproc_constants_runme.2.d b/Examples/test-suite/d/preproc_constants_runme.2.d
index 2d92ef0..0d96c37 100644
--- a/Examples/test-suite/d/preproc_constants_runme.2.d
+++ b/Examples/test-suite/d/preproc_constants_runme.2.d
@@ -60,4 +60,6 @@ void main() {
static assert(is(bool == typeof(EXPR_LAND())));
static assert(is(bool == typeof(EXPR_LOR())));
static assert(is(double == typeof(EXPR_CONDITIONAL())));
+ static assert(is(int == typeof(EXPR_WCHAR_MAX())));
+ static assert(is(int == typeof(EXPR_WCHAR_MIN())));
}
diff --git a/Examples/test-suite/php/preproc_constants_c_runme.php b/Examples/test-suite/php/preproc_constants_c_runme.php
index af9b76e..e59fe18 100644
--- a/Examples/test-suite/php/preproc_constants_c_runme.php
+++ b/Examples/test-suite/php/preproc_constants_c_runme.php
@@ -62,5 +62,7 @@ check::equal(gettype(preproc_constants_c::EXPR_OR), "integer", "preproc_constant
check::equal(gettype(preproc_constants_c::EXPR_LAND), "integer", "preproc_constants.EXPR_LAND has unexpected type");
check::equal(gettype(preproc_constants_c::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type");
check::equal(gettype(preproc_constants_c::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
+check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
+check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
?>
diff --git a/Examples/test-suite/php/preproc_constants_runme.php b/Examples/test-suite/php/preproc_constants_runme.php
index 5c9119b..8e117ea 100644
--- a/Examples/test-suite/php/preproc_constants_runme.php
+++ b/Examples/test-suite/php/preproc_constants_runme.php
@@ -61,5 +61,7 @@ check::equal(gettype(preproc_constants::EXPR_OR), "integer", "preproc_constants.
check::equal(gettype(preproc_constants::EXPR_LAND), "boolean", "preproc_constants.EXPR_LAND has unexpected type");
check::equal(gettype(preproc_constants::EXPR_LOR), "boolean", "preproc_constants.EXPR_LOR has unexpected type");
check::equal(gettype(preproc_constants::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
+check::equal(gettype(preproc_constants::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
+check::equal(gettype(preproc_constants::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
?>
diff --git a/Examples/test-suite/php5/preproc_constants_c_runme.php b/Examples/test-suite/php5/preproc_constants_c_runme.php
index 1ea0195..d978fab 100644
--- a/Examples/test-suite/php5/preproc_constants_c_runme.php
+++ b/Examples/test-suite/php5/preproc_constants_c_runme.php
@@ -62,5 +62,7 @@ check::equal(gettype(preproc_constants_c::EXPR_OR), "integer", "preproc_constant
check::equal(gettype(preproc_constants_c::EXPR_LAND), "integer", "preproc_constants.EXPR_LAND has unexpected type");
check::equal(gettype(preproc_constants_c::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type");
check::equal(gettype(preproc_constants_c::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
+check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
+check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
?>
diff --git a/Examples/test-suite/php5/preproc_constants_runme.php b/Examples/test-suite/php5/preproc_constants_runme.php
index fb9ee4f..7527026 100644
--- a/Examples/test-suite/php5/preproc_constants_runme.php
+++ b/Examples/test-suite/php5/preproc_constants_runme.php
@@ -70,5 +70,7 @@ check::equal(gettype(preproc_constants::EXPR_LAND), "integer", "preproc_constant
check::equal(gettype(preproc_constants::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type");
check::equal(gettype(preproc_constants::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
+check::equal(gettype(preproc_constants::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
+check::equal(gettype(preproc_constants::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
?>
diff --git a/Examples/test-suite/preproc_constants.i b/Examples/test-suite/preproc_constants.i
index 3a999ad..16b44c9 100644
--- a/Examples/test-suite/preproc_constants.i
+++ b/Examples/test-suite/preproc_constants.i
@@ -87,6 +87,9 @@
#define EXPR_LOR 0xFF || 1
#define EXPR_CONDITIONAL true ? 2 : 2.2
+#define EXPR_WCHAR_MAX (0x7fffffff + L'\0')
+#define EXPR_WCHAR_MIN (-EXPR_WCHAR_MAX - 1)
+
#define EXPR_CHAR_COMPOUND_ADD 'A' + 12
#define EXPR_CHAR_COMPOUND_LSHIFT 'B' << 6
#define H_SUPPRESS_SCALING_MAGIC (('s'<<24) | ('u'<<16) | ('p'<<8) | 'p')
diff --git a/Source/CParse/parser.y b/Source/CParse/parser.y
index 2e92cd0..273dadb 100644
--- a/Source/CParse/parser.y
+++ b/Source/CParse/parser.y
@@ -194,7 +194,7 @@ int SWIG_cparse_template_reduce(int treduce) {
* ----------------------------------------------------------------------------- */
static int promote_type(int t) {
- if (t <= T_UCHAR || t == T_CHAR) return T_INT;
+ if (t <= T_UCHAR || t == T_CHAR || t == T_WCHAR) return T_INT;
return t;
}
--
2.9.5

View file

@ -1,51 +0,0 @@
From 5f6012039abb6ec9e9dfea801effa6b02fd102bc Mon Sep 17 00:00:00 2001
From: Vsevolod Kvachev <rasielll@gmail.com>
Date: Thu, 19 Apr 2018 23:04:37 +0300
Subject: [PATCH] Fix go version matching in configure for go1.10
---
configure.ac | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/configure.ac b/configure.ac
index 833cb37bf..ba1631743 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2597,7 +2597,7 @@ else
GOVERSIONOPTION=version
go_version=$($GO $GOVERSIONOPTION | sed -e 's/go version //')
case "$go_version" in
- go1 | go1.[[01234]]*)
+ go1 | go1.[[01234]] | go1.[[01234]].*)
GOC=$(sh -c "$(go env) && echo \$GOCHAR")c
;;
*)
@@ -2606,7 +2606,7 @@ else
esac
AC_MSG_CHECKING([whether go version is too old])
case $go_version in
- go1.1* | go1.0* | go1 )
+ go1.1.* | go1.1 | go1.0 | go1.0.* | go1 )
AC_MSG_RESULT([yes - minimum version is 1.2])
GO=
GOOPT="-intgosize 32"
@@ -2624,13 +2624,13 @@ else
;;
esac
case $go_version in
- go1.0* | go1 | go1.1*)
+ go1.0 | go1.0.* | go1 | go1.1 | go1.1.*)
GOOPT="$GOOPT -use-shlib"
;;
- go1.2*)
+ go1.2 | go1.2.*)
GO12=true
;;
- go1.3* | go1.4*)
+ go1.3 | go1.3.* | go1.4 | go1.4.*)
GO13=true
;;
*)
--
2.14.3

View file

@ -1,61 +0,0 @@
From 8855ef2b482c09da9255079b0fac92d08c8308fb Mon Sep 17 00:00:00 2001
From: Olly Betts <olly@survex.com>
Date: Tue, 13 Jun 2017 17:32:37 +1200
Subject: [PATCH] [Perl] Fix testsuite to work without . in @INC
"." was removed from @INC in Perl 5.26 for security reasons, and has
also been removed from older versions in some distros.
Fixes https://github.com/swig/swig/issues/997 reported by lfam.
---
CHANGES.current | 6 ++++++
Examples/Makefile.in | 2 +-
Examples/test-suite/perl5/run-perl-test.pl | 2 +-
3 files changed, 8 insertions(+), 2 deletions(-)
#diff --git a/CHANGES.current b/CHANGES.current
#index ac620c9..6b379a9 100644
#--- a/CHANGES.current
#+++ b/CHANGES.current
#@@ -7,6 +7,12 @@ the issue number to the end of the URL: https://github.com/swig/swig/issues/
# Version 4.0.0 (in progress)
# ===========================
#
#+2017-06-13: olly
#+ [Perl] Fix testsuite to work without . in @INC - it was removed in
#+ Perl 5.26 for security reasons, and has also been removed from
#+ older versions in some distros. Fixes
#+ https://github.com/swig/swig/issues/997 reported by lfam.
#+
# 2017-06-03: wsfulton
# Fix %import on a file containing a file scope %fragment forced inclusion to not
# generate the fragment contents as %import should not result in code being generated.
diff --git a/Examples/Makefile.in b/Examples/Makefile.in
index 7682b56..8a88fb5 100644
--- a/Examples/Makefile.in
+++ b/Examples/Makefile.in
@@ -282,7 +282,7 @@ perl5_static_cpp: $(SRCDIR_SRCS)
# -----------------------------------------------------------------
perl5_run:
- $(RUNTOOL) $(PERL) $(PERL5_SCRIPT) $(RUNPIPE)
+ $(RUNTOOL) $(PERL) -I. $(PERL5_SCRIPT) $(RUNPIPE)
# -----------------------------------------------------------------
# Version display
diff --git a/Examples/test-suite/perl5/run-perl-test.pl b/Examples/test-suite/perl5/run-perl-test.pl
index 106bf00..5ea4e511 100644
--- a/Examples/test-suite/perl5/run-perl-test.pl
+++ b/Examples/test-suite/perl5/run-perl-test.pl
@@ -7,7 +7,7 @@ use strict;
my $command = shift @ARGV;
-my $output = `$^X $command 2>&1`;
+my $output = `$^X -I. $command 2>&1`;
die "SWIG Perl test failed: \n\n$output\n"
if $?;
--
2.9.4

View file

@ -1,185 +0,0 @@
From 9e2a12416cf6ce7b926829aff353fe2d9019f135 Mon Sep 17 00:00:00 2001
From: William S Fulton <wsf@fultondesigns.co.uk>
Date: Mon, 18 Sep 2017 07:06:27 +0100
Subject: [PATCH 2/2] Fix type promotion wrapping some non-trivial constant
expressions
This was previously an integral type instead of a floating point type:
---
CHANGES.current | 5 +++++
Examples/test-suite/csharp/preproc_constants_c_runme.cs | 1 +
Examples/test-suite/csharp/preproc_constants_runme.cs | 1 +
Examples/test-suite/d/preproc_constants_c_runme.1.d | 1 +
Examples/test-suite/d/preproc_constants_c_runme.2.d | 1 +
Examples/test-suite/d/preproc_constants_runme.1.d | 1 +
Examples/test-suite/d/preproc_constants_runme.2.d | 1 +
Examples/test-suite/php/preproc_constants_c_runme.php | 1 +
Examples/test-suite/php/preproc_constants_runme.php | 1 +
Examples/test-suite/php5/preproc_constants_c_runme.php | 1 +
Examples/test-suite/php5/preproc_constants_runme.php | 1 +
Examples/test-suite/preproc_constants.i | 1 +
Source/CParse/parser.y | 1 +
13 files changed, 17 insertions(+)
#diff --git a/CHANGES.current b/CHANGES.current
#index b455a9f..f76e5a5 100644
#--- a/CHANGES.current
#+++ b/CHANGES.current
#@@ -7,6 +7,11 @@ the issue number to the end of the URL: https://github.com/swig/swig/issues/
# Version 4.0.0 (in progress)
# ===========================
#
#+2017-09-18: wsfulton
#+ Fix type promotion wrapping constant expressions of the form:
#+ # define EXPR_MIXED1 (0x80 + 11.1) - 1
#+ This was previously an integral type instead of a floating point type.
#+
# 2017-09-17: wsfulton
# Fix generated code for constant expressions containing wchar_t L literals such as:
# # define __WCHAR_MAX (0x7fffffff + L'\0')
diff --git a/Examples/test-suite/csharp/preproc_constants_c_runme.cs b/Examples/test-suite/csharp/preproc_constants_c_runme.cs
index 1c28e49..7f40ce4 100644
--- a/Examples/test-suite/csharp/preproc_constants_c_runme.cs
+++ b/Examples/test-suite/csharp/preproc_constants_c_runme.cs
@@ -61,6 +61,7 @@ public class runme {
assert( typeof(int) == preproc_constants_c.EXPR_LAND.GetType() );
assert( typeof(int) == preproc_constants_c.EXPR_LOR.GetType() );
assert( typeof(double) == preproc_constants_c.EXPR_CONDITIONAL.GetType() );
+ assert( typeof(double) == preproc_constants_c.EXPR_MIXED1.GetType() );
assert( typeof(int) == preproc_constants_c.EXPR_WCHAR_MAX.GetType() );
assert( typeof(int) == preproc_constants_c.EXPR_WCHAR_MIN.GetType() );
}
diff --git a/Examples/test-suite/csharp/preproc_constants_runme.cs b/Examples/test-suite/csharp/preproc_constants_runme.cs
index 6b02e30..0d8981f 100644
--- a/Examples/test-suite/csharp/preproc_constants_runme.cs
+++ b/Examples/test-suite/csharp/preproc_constants_runme.cs
@@ -60,6 +60,7 @@ public class runme {
assert( typeof(bool) == preproc_constants.EXPR_LAND.GetType() );
assert( typeof(bool) == preproc_constants.EXPR_LOR.GetType() );
assert( typeof(double) == preproc_constants.EXPR_CONDITIONAL.GetType() );
+ assert( typeof(double) == preproc_constants.EXPR_MIXED1.GetType() );
assert( typeof(int) == preproc_constants.EXPR_WCHAR_MAX.GetType() );
assert( typeof(int) == preproc_constants.EXPR_WCHAR_MIN.GetType() );
diff --git a/Examples/test-suite/d/preproc_constants_c_runme.1.d b/Examples/test-suite/d/preproc_constants_c_runme.1.d
index 2b349af..b79ee3b 100644
--- a/Examples/test-suite/d/preproc_constants_c_runme.1.d
+++ b/Examples/test-suite/d/preproc_constants_c_runme.1.d
@@ -61,6 +61,7 @@ void main() {
static assert(is(int == typeof(EXPR_LAND())));
static assert(is(int == typeof(EXPR_LOR())));
static assert(is(double == typeof(EXPR_CONDITIONAL())));
+ static assert(is(double == typeof(EXPR_MIXED1())));
static assert(is(int == typeof(EXPR_WCHAR_MAX())));
static assert(is(int == typeof(EXPR_WCHAR_MIN())));
}
diff --git a/Examples/test-suite/d/preproc_constants_c_runme.2.d b/Examples/test-suite/d/preproc_constants_c_runme.2.d
index 1bac525..260bf8d 100644
--- a/Examples/test-suite/d/preproc_constants_c_runme.2.d
+++ b/Examples/test-suite/d/preproc_constants_c_runme.2.d
@@ -61,6 +61,7 @@ void main() {
static assert(is(int == typeof(EXPR_LAND())));
static assert(is(int == typeof(EXPR_LOR())));
static assert(is(double == typeof(EXPR_CONDITIONAL())));
+ static assert(is(double == typeof(EXPR_MIXED1())));
static assert(is(int == typeof(EXPR_WCHAR_MAX())));
static assert(is(int == typeof(EXPR_WCHAR_MIN())));
}
diff --git a/Examples/test-suite/d/preproc_constants_runme.1.d b/Examples/test-suite/d/preproc_constants_runme.1.d
index f743f48..84a99c8 100644
--- a/Examples/test-suite/d/preproc_constants_runme.1.d
+++ b/Examples/test-suite/d/preproc_constants_runme.1.d
@@ -60,6 +60,7 @@ void main() {
static assert(is(bool == typeof(EXPR_LAND())));
static assert(is(bool == typeof(EXPR_LOR())));
static assert(is(double == typeof(EXPR_CONDITIONAL())));
+ static assert(is(double == typeof(EXPR_MIXED1())));
static assert(is(int == typeof(EXPR_WCHAR_MAX())));
static assert(is(int == typeof(EXPR_WCHAR_MIN())));
}
diff --git a/Examples/test-suite/d/preproc_constants_runme.2.d b/Examples/test-suite/d/preproc_constants_runme.2.d
index 0d96c37..f6638f4 100644
--- a/Examples/test-suite/d/preproc_constants_runme.2.d
+++ b/Examples/test-suite/d/preproc_constants_runme.2.d
@@ -60,6 +60,7 @@ void main() {
static assert(is(bool == typeof(EXPR_LAND())));
static assert(is(bool == typeof(EXPR_LOR())));
static assert(is(double == typeof(EXPR_CONDITIONAL())));
+ static assert(is(double == typeof(EXPR_MIXED1())));
static assert(is(int == typeof(EXPR_WCHAR_MAX())));
static assert(is(int == typeof(EXPR_WCHAR_MIN())));
}
diff --git a/Examples/test-suite/php/preproc_constants_c_runme.php b/Examples/test-suite/php/preproc_constants_c_runme.php
index e59fe18..20868dc 100644
--- a/Examples/test-suite/php/preproc_constants_c_runme.php
+++ b/Examples/test-suite/php/preproc_constants_c_runme.php
@@ -62,6 +62,7 @@ check::equal(gettype(preproc_constants_c::EXPR_OR), "integer", "preproc_constant
check::equal(gettype(preproc_constants_c::EXPR_LAND), "integer", "preproc_constants.EXPR_LAND has unexpected type");
check::equal(gettype(preproc_constants_c::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type");
check::equal(gettype(preproc_constants_c::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
+check::equal(gettype(preproc_constants_c::EXPR_MIXED1), "double", "preproc_constants.EXPR_MIXED1 has unexpected type");
check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
diff --git a/Examples/test-suite/php/preproc_constants_runme.php b/Examples/test-suite/php/preproc_constants_runme.php
index 8e117ea..ef32867 100644
--- a/Examples/test-suite/php/preproc_constants_runme.php
+++ b/Examples/test-suite/php/preproc_constants_runme.php
@@ -63,5 +63,6 @@ check::equal(gettype(preproc_constants::EXPR_LOR), "boolean", "preproc_constants
check::equal(gettype(preproc_constants::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
check::equal(gettype(preproc_constants::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
check::equal(gettype(preproc_constants::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
+check::equal(gettype(preproc_constants::EXPR_MIXED1), "integer", "preproc_constants.EXPR_MIXED1 has unexpected type");
?>
diff --git a/Examples/test-suite/php5/preproc_constants_c_runme.php b/Examples/test-suite/php5/preproc_constants_c_runme.php
index d978fab..d55d423 100644
--- a/Examples/test-suite/php5/preproc_constants_c_runme.php
+++ b/Examples/test-suite/php5/preproc_constants_c_runme.php
@@ -62,6 +62,7 @@ check::equal(gettype(preproc_constants_c::EXPR_OR), "integer", "preproc_constant
check::equal(gettype(preproc_constants_c::EXPR_LAND), "integer", "preproc_constants.EXPR_LAND has unexpected type");
check::equal(gettype(preproc_constants_c::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type");
check::equal(gettype(preproc_constants_c::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
+check::equal(gettype(preproc_constants_c::EXPR_MIXED1), "double", "preproc_constants.EXPR_MIXED1 has unexpected type");
check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
diff --git a/Examples/test-suite/php5/preproc_constants_runme.php b/Examples/test-suite/php5/preproc_constants_runme.php
index 7527026..01137b0 100644
--- a/Examples/test-suite/php5/preproc_constants_runme.php
+++ b/Examples/test-suite/php5/preproc_constants_runme.php
@@ -70,6 +70,7 @@ check::equal(gettype(preproc_constants::EXPR_LAND), "integer", "preproc_constant
check::equal(gettype(preproc_constants::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type");
check::equal(gettype(preproc_constants::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
+check::equal(gettype(preproc_constants::EXPR_MIXED1), "double", "preproc_constants.EXPR_MIXED1 has unexpected type");
check::equal(gettype(preproc_constants::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
check::equal(gettype(preproc_constants::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
diff --git a/Examples/test-suite/preproc_constants.i b/Examples/test-suite/preproc_constants.i
index 16b44c9..628cae1 100644
--- a/Examples/test-suite/preproc_constants.i
+++ b/Examples/test-suite/preproc_constants.i
@@ -86,6 +86,7 @@
#define EXPR_LAND 0xFF && 1
#define EXPR_LOR 0xFF || 1
#define EXPR_CONDITIONAL true ? 2 : 2.2
+#define EXPR_MIXED1 (0x80 + 11.1) - 1
#define EXPR_WCHAR_MAX (0x7fffffff + L'\0')
#define EXPR_WCHAR_MIN (-EXPR_WCHAR_MAX - 1)
diff --git a/Source/CParse/parser.y b/Source/CParse/parser.y
index 273dadb..3df9896 100644
--- a/Source/CParse/parser.y
+++ b/Source/CParse/parser.y
@@ -6338,6 +6338,7 @@ valexpr : exprnum { $$ = $1; }
break;
}
}
+ $$.type = promote($2.type, $4.type);
}
| LPAREN expr pointer RPAREN expr %prec CAST {
$$ = $5;
--
2.9.5

View file

@ -1,541 +0,0 @@
From f08d7a63a92a3ba89d97bdfcc206e1e1c4804c0f Mon Sep 17 00:00:00 2001
From: Patrick Schneider <patrick.schneider@meetnow.eu>
Date: Thu, 13 Apr 2017 15:02:53 +0200
Subject: [PATCH 1/2] Add Node 7.x aka V8 5.2+ support
* Use WeakCallbackInfo instead of WeakCallbackData
* Use GetPrivate instead of GetHiddenValue
* Adopted new signature for SetWeak to support destructor calling
* SetAccessor deprecation fixed
* Proper version checks where applicable
---
Lib/javascript/v8/javascriptcode.swg | 27 +++++++++++++++++-----
Lib/javascript/v8/javascripthelpers.swg | 29 +++++++++++++++++++++---
Lib/javascript/v8/javascriptinit.swg | 16 +++++++++++--
Lib/javascript/v8/javascriptrun.swg | 40 ++++++++++++++++++++++++++++-----
4 files changed, 95 insertions(+), 17 deletions(-)
diff --git a/Lib/javascript/v8/javascriptcode.swg b/Lib/javascript/v8/javascriptcode.swg
index fb7d55c2ad..b8c5089816 100644
--- a/Lib/javascript/v8/javascriptcode.swg
+++ b/Lib/javascript/v8/javascriptcode.swg
@@ -133,10 +133,13 @@ static void $jswrapper(v8::Isolate *isolate, v8::Persistent<v8::Value> object, v
SWIGV8_Proxy *proxy = static_cast<SWIGV8_Proxy *>(parameter);
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
static void $jswrapper(v8::Isolate *isolate, v8::Persistent<v8::Object> *object, SWIGV8_Proxy *proxy) {
-#else
+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data) {
v8::Local<v8::Object> object = data.GetValue();
SWIGV8_Proxy *proxy = data.GetParameter();
+#else
+ static void $jswrapper(const v8::WeakCallbackInfo<SWIGV8_Proxy> &data) {
+ SWIGV8_Proxy *proxy = data.GetParameter();
#endif
if(proxy->swigCMemOwn && proxy->swigCObject) {
@@ -147,7 +150,9 @@ static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &dat
}
delete proxy;
+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
object.Clear();
+#endif
#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710)
object.Dispose();
@@ -155,7 +160,7 @@ static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &dat
object.Dispose(isolate);
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x032100)
object->Dispose(isolate);
-#else
+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
object->Dispose();
#endif
}
@@ -177,10 +182,13 @@ static void $jswrapper(v8::Isolate *isolate, v8::Persistent<v8::Value> object, v
SWIGV8_Proxy *proxy = static_cast<SWIGV8_Proxy *>(parameter);
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
static void $jswrapper(v8::Isolate *isolate, v8::Persistent< v8::Object> *object, SWIGV8_Proxy *proxy) {
-#else
+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data) {
v8::Local<v8::Object> object = data.GetValue();
SWIGV8_Proxy *proxy = data.GetParameter();
+#else
+static void $jswrapper(const v8::WeakCallbackInfo<SWIGV8_Proxy> &data) {
+ SWIGV8_Proxy *proxy = data.GetParameter();
#endif
if(proxy->swigCMemOwn && proxy->swigCObject) {
@@ -197,7 +205,7 @@ static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &dat
object->Dispose(isolate);
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
object->Dispose();
-#else
+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
object.Clear();
#endif
}
@@ -211,7 +219,11 @@ static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &dat
* ----------------------------------------------------------------------------- */
%fragment("js_getter", "templates")
%{
+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
static SwigV8ReturnValue $jswrapper(v8::Local<v8::String> property, const SwigV8PropertyCallbackInfo &info) {
+#else
+static SwigV8ReturnValue $jswrapper(v8::Local<v8::Name> property, const SwigV8PropertyCallbackInfo &info) {
+#endif
SWIGV8_HANDLESCOPE();
v8::Handle<v8::Value> jsresult;
@@ -233,8 +245,11 @@ fail:
* ----------------------------------------------------------------------------- */
%fragment("js_setter", "templates")
%{
-static void $jswrapper(v8::Local<v8::String> property, v8::Local<v8::Value> value,
- const SwigV8PropertyCallbackInfoVoid &info) {
+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
+static void $jswrapper(v8::Local<v8::String> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid &info) {
+#else
+static void $jswrapper(v8::Local<v8::Name> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid &info) {
+#endif
SWIGV8_HANDLESCOPE();
$jslocals
diff --git a/Lib/javascript/v8/javascripthelpers.swg b/Lib/javascript/v8/javascripthelpers.swg
index 091467df4d..74610793af 100644
--- a/Lib/javascript/v8/javascripthelpers.swg
+++ b/Lib/javascript/v8/javascripthelpers.swg
@@ -6,11 +6,16 @@ typedef v8::InvocationCallback SwigV8FunctionCallback;
typedef v8::AccessorGetter SwigV8AccessorGetterCallback;
typedef v8::AccessorSetter SwigV8AccessorSetterCallback;
typedef v8::AccessorInfo SwigV8PropertyCallbackInfoVoid;
-#else
+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
typedef v8::FunctionCallback SwigV8FunctionCallback;
typedef v8::AccessorGetterCallback SwigV8AccessorGetterCallback;
typedef v8::AccessorSetterCallback SwigV8AccessorSetterCallback;
typedef v8::PropertyCallbackInfo<void> SwigV8PropertyCallbackInfoVoid;
+#else
+typedef v8::FunctionCallback SwigV8FunctionCallback;
+typedef v8::AccessorNameGetterCallback SwigV8AccessorGetterCallback;
+typedef v8::AccessorNameSetterCallback SwigV8AccessorSetterCallback;
+typedef v8::PropertyCallbackInfo<void> SwigV8PropertyCallbackInfoVoid;
#endif
/**
@@ -65,18 +70,36 @@ SWIGRUNTIME void SWIGV8_AddStaticFunction(v8::Handle<v8::Object> obj, const char
*/
SWIGRUNTIME void SWIGV8_AddStaticVariable(v8::Handle<v8::Object> obj, const char* symbol,
SwigV8AccessorGetterCallback getter, SwigV8AccessorSetterCallback setter) {
+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
obj->SetAccessor(SWIGV8_SYMBOL_NEW(symbol), getter, setter);
+#else
+ obj->SetAccessor(SWIGV8_CURRENT_CONTEXT(), SWIGV8_SYMBOL_NEW(symbol), getter, setter);
+#endif
}
-SWIGRUNTIME void JS_veto_set_variable(v8::Local<v8::String> property, v8::Local<v8::Value> value,
- const SwigV8PropertyCallbackInfoVoid& info)
+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
+SWIGRUNTIME void JS_veto_set_variable(v8::Local<v8::String> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid& info)
+#else
+SWIGRUNTIME void JS_veto_set_variable(v8::Local<v8::Name> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid& info)
+#endif
{
char buffer[256];
char msg[512];
int res;
+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
property->WriteUtf8(buffer, 256);
res = sprintf(msg, "Tried to write read-only variable: %s.", buffer);
+#else
+ v8::Local<v8::String> sproperty;
+ if (property->ToString(SWIGV8_CURRENT_CONTEXT()).ToLocal(&sproperty)) {
+ sproperty->WriteUtf8(buffer, 256);
+ res = sprintf(msg, "Tried to write read-only variable: %s.", buffer);
+ }
+ else {
+ res = -1;
+ }
+#endif
if(res<0) {
SWIG_exception(SWIG_ERROR, "Tried to write read-only variable.");
diff --git a/Lib/javascript/v8/javascriptinit.swg b/Lib/javascript/v8/javascriptinit.swg
index 34befa7ce7..86008d927f 100644
--- a/Lib/javascript/v8/javascriptinit.swg
+++ b/Lib/javascript/v8/javascriptinit.swg
@@ -7,15 +7,27 @@ SWIG_V8_SetModule(void *, swig_module_info *swig_module) {
v8::Local<v8::Object> global_obj = SWIGV8_CURRENT_CONTEXT()->Global();
v8::Local<v8::External> mod = SWIGV8_EXTERNAL_NEW(swig_module);
assert(!mod.IsEmpty());
+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
global_obj->SetHiddenValue(SWIGV8_STRING_NEW("swig_module_info_data"), mod);
+#else
+ v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("swig_module_info_data"));
+ global_obj->SetPrivate(SWIGV8_CURRENT_CONTEXT(), privateKey, mod);
+#endif
}
SWIGRUNTIME swig_module_info *
SWIG_V8_GetModule(void *) {
v8::Local<v8::Object> global_obj = SWIGV8_CURRENT_CONTEXT()->Global();
+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
v8::Local<v8::Value> moduleinfo = global_obj->GetHiddenValue(SWIGV8_STRING_NEW("swig_module_info_data"));
+#else
+ v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("swig_module_info_data"));
+ v8::Local<v8::Value> moduleinfo;
+ if (!global_obj->GetPrivate(SWIGV8_CURRENT_CONTEXT(), privateKey).ToLocal(&moduleinfo))
+ return 0;
+#endif
- if (moduleinfo.IsEmpty())
+ if (moduleinfo.IsEmpty() || moduleinfo->IsNull() || moduleinfo->IsUndefined())
{
// It's not yet loaded
return 0;
@@ -23,7 +35,7 @@ SWIG_V8_GetModule(void *) {
v8::Local<v8::External> moduleinfo_extern = v8::Local<v8::External>::Cast(moduleinfo);
- if (moduleinfo_extern.IsEmpty())
+ if (moduleinfo_extern.IsEmpty() || moduleinfo_extern->IsNull() || moduleinfo_extern->IsUndefined())
{
// Something's not right
return 0;
diff --git a/Lib/javascript/v8/javascriptrun.swg b/Lib/javascript/v8/javascriptrun.swg
index 5ac52a51dc..30002c02a3 100644
--- a/Lib/javascript/v8/javascriptrun.swg
+++ b/Lib/javascript/v8/javascriptrun.swg
@@ -193,8 +193,10 @@ public:
void (*dtor) (v8::Isolate *isolate, v8::Persistent< v8::Value> object, void *parameter);
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
void (*dtor) (v8::Isolate *isolate, v8::Persistent< v8::Object > *object, SWIGV8_Proxy *proxy);
-#else
+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
void (*dtor) (const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data);
+#else
+ void (*dtor) (const v8::WeakCallbackInfo<SWIGV8_Proxy> &data);
#endif
};
@@ -241,9 +243,12 @@ SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(v8::Isolate *, v8::Persistent< v8::Val
SWIGV8_Proxy *proxy = static_cast<SWIGV8_Proxy *>(parameter);
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(v8::Isolate *, v8::Persistent< v8::Object > *object, SWIGV8_Proxy *proxy) {
-#else
+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data) {
SWIGV8_Proxy *proxy = data.GetParameter();
+#else
+SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(const v8::WeakCallbackInfo<SWIGV8_Proxy> &data) {
+ SWIGV8_Proxy *proxy = data.GetParameter();
#endif
delete proxy;
@@ -312,12 +317,18 @@ SWIGRUNTIME void SWIGV8_SetPrivateData(v8::Handle<v8::Object> obj, void *ptr, sw
} else {
cdata->handle.MakeWeak(cdata, SWIGV8_Proxy_DefaultDtor);
}
-#else
+#elifif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
if(cdata->swigCMemOwn && (SWIGV8_ClientData*)info->clientdata) {
cdata->handle.SetWeak(cdata, ((SWIGV8_ClientData*)info->clientdata)->dtor);
} else {
cdata->handle.SetWeak(cdata, SWIGV8_Proxy_DefaultDtor);
}
+#else
+ if(cdata->swigCMemOwn && (SWIGV8_ClientData*)info->clientdata) {
+ cdata->handle.SetWeak(cdata, ((SWIGV8_ClientData*)info->clientdata)->dtor, v8::WeakCallbackType::kParameter);
+ } else {
+ cdata->handle.SetWeak(cdata, SWIGV8_Proxy_DefaultDtor, v8::WeakCallbackType::kParameter);
+ }
#endif
#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710)
@@ -470,7 +481,14 @@ int SwigV8Packed_Check(v8::Handle<v8::Value> valRef) {
v8::Handle<v8::Object> objRef = valRef->ToObject();
if(objRef->InternalFieldCount() < 1) return false;
+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
v8::Handle<v8::Value> flag = objRef->GetHiddenValue(SWIGV8_STRING_NEW("__swig__packed_data__"));
+#else
+ v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("__swig__packed_data__"));
+ v8::Local<v8::Value> flag;
+ if (!objRef->GetPrivate(SWIGV8_CURRENT_CONTEXT(), privateKey).ToLocal(&flag))
+ return false;
+#endif
return (flag->IsBoolean() && flag->BooleanValue());
}
@@ -519,10 +537,13 @@ SWIGRUNTIME void _wrap_SwigV8PackedData_delete(v8::Isolate *isolate, v8::Persist
SwigV8PackedData *cdata = static_cast<SwigV8PackedData *>(parameter);
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
SWIGRUNTIME void _wrap_SwigV8PackedData_delete(v8::Isolate *isolate, v8::Persistent<v8::Object> *object, SwigV8PackedData *cdata) {
-#else
+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
SWIGRUNTIME void _wrap_SwigV8PackedData_delete(const v8::WeakCallbackData<v8::Object, SwigV8PackedData> &data) {
v8::Local<v8::Object> object = data.GetValue();
SwigV8PackedData *cdata = data.GetParameter();
+#else
+SWIGRUNTIME void _wrap_SwigV8PackedData_delete(const v8::WeakCallbackInfo<SwigV8PackedData> &data) {
+ SwigV8PackedData *cdata = data.GetParameter();
#endif
delete cdata;
@@ -537,7 +558,7 @@ SWIGRUNTIME void _wrap_SwigV8PackedData_delete(const v8::WeakCallbackData<v8::Ob
object->Dispose(isolate);
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
object->Dispose();
-#else
+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
object.Clear();
#endif
}
@@ -550,7 +571,12 @@ v8::Handle<v8::Value> SWIGV8_NewPackedObj(void *data, size_t size, swig_type_inf
// v8::Handle<v8::Object> obj = SWIGV8_OBJECT_NEW();
v8::Local<v8::Object> obj = SWIGV8_OBJECT_NEW();
+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
obj->SetHiddenValue(SWIGV8_STRING_NEW("__swig__packed_data__"), SWIGV8_BOOLEAN_NEW(true));
+#else
+ v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("__swig__packed_data__"));
+ obj->SetPrivate(SWIGV8_CURRENT_CONTEXT(), privateKey, SWIGV8_BOOLEAN_NEW(true));
+#endif
#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031511)
obj->SetPointerInInternalField(0, cdata);
@@ -573,9 +599,11 @@ v8::Handle<v8::Value> SWIGV8_NewPackedObj(void *data, size_t size, swig_type_inf
cdata->handle.MakeWeak(v8::Isolate::GetCurrent(), cdata, _wrap_SwigV8PackedData_delete);
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
cdata->handle.MakeWeak(cdata, _wrap_SwigV8PackedData_delete);
-#else
+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
cdata->handle.SetWeak(cdata, _wrap_SwigV8PackedData_delete);
// v8::V8::SetWeak(&cdata->handle, cdata, _wrap_SwigV8PackedData_delete);
+#else
+ cdata->handle.SetWeak(cdata, _wrap_SwigV8PackedData_delete, v8::WeakCallbackType::kParameter);
#endif
#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710)
From 9ce8d7e7c99e75163318428aeff6e60d398fcdca Mon Sep 17 00:00:00 2001
From: Patrick Schneider <patrick.schneider@meetnow.eu>
Date: Thu, 13 Apr 2017 19:39:44 +0200
Subject: [PATCH 2/2] Remove warnings on Node 6.x aka V8 5.0 and 5.1
The proposed changes targetted at 5.2 (or 5.4 to be more precise, since there is no Node release with V8 5.2 or 5.3) work for lower versions as well and bust the deprecation warnings there.
---
Lib/javascript/v8/javascriptcode.swg | 14 +++++++-------
Lib/javascript/v8/javascripthelpers.swg | 8 ++++----
Lib/javascript/v8/javascriptinit.swg | 4 ++--
Lib/javascript/v8/javascriptrun.swg | 16 ++++++++--------
4 files changed, 21 insertions(+), 21 deletions(-)
diff --git a/Lib/javascript/v8/javascriptcode.swg b/Lib/javascript/v8/javascriptcode.swg
index b8c5089816..c4aaf3db0c 100644
--- a/Lib/javascript/v8/javascriptcode.swg
+++ b/Lib/javascript/v8/javascriptcode.swg
@@ -133,7 +133,7 @@ static void $jswrapper(v8::Isolate *isolate, v8::Persistent<v8::Value> object, v
SWIGV8_Proxy *proxy = static_cast<SWIGV8_Proxy *>(parameter);
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
static void $jswrapper(v8::Isolate *isolate, v8::Persistent<v8::Object> *object, SWIGV8_Proxy *proxy) {
-#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
+#elif (V8_MAJOR_VERSION-0) < 5
static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data) {
v8::Local<v8::Object> object = data.GetValue();
SWIGV8_Proxy *proxy = data.GetParameter();
@@ -150,7 +150,7 @@ static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &dat
}
delete proxy;
-#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
+#if (V8_MAJOR_VERSION-0) < 5
object.Clear();
#endif
@@ -160,7 +160,7 @@ static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &dat
object.Dispose(isolate);
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x032100)
object->Dispose(isolate);
-#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
+#elif (V8_MAJOR_VERSION-0) < 5
object->Dispose();
#endif
}
@@ -182,7 +182,7 @@ static void $jswrapper(v8::Isolate *isolate, v8::Persistent<v8::Value> object, v
SWIGV8_Proxy *proxy = static_cast<SWIGV8_Proxy *>(parameter);
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
static void $jswrapper(v8::Isolate *isolate, v8::Persistent< v8::Object> *object, SWIGV8_Proxy *proxy) {
-#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
+#elif (V8_MAJOR_VERSION-0) < 5
static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data) {
v8::Local<v8::Object> object = data.GetValue();
SWIGV8_Proxy *proxy = data.GetParameter();
@@ -205,7 +205,7 @@ static void $jswrapper(const v8::WeakCallbackInfo<SWIGV8_Proxy> &data) {
object->Dispose(isolate);
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
object->Dispose();
-#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
+#elif (V8_MAJOR_VERSION-0) < 5
object.Clear();
#endif
}
@@ -219,7 +219,7 @@ static void $jswrapper(const v8::WeakCallbackInfo<SWIGV8_Proxy> &data) {
* ----------------------------------------------------------------------------- */
%fragment("js_getter", "templates")
%{
-#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
+#if (V8_MAJOR_VERSION-0) < 5
static SwigV8ReturnValue $jswrapper(v8::Local<v8::String> property, const SwigV8PropertyCallbackInfo &info) {
#else
static SwigV8ReturnValue $jswrapper(v8::Local<v8::Name> property, const SwigV8PropertyCallbackInfo &info) {
@@ -245,7 +245,7 @@ fail:
* ----------------------------------------------------------------------------- */
%fragment("js_setter", "templates")
%{
-#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
+#if (V8_MAJOR_VERSION-0) < 5
static void $jswrapper(v8::Local<v8::String> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid &info) {
#else
static void $jswrapper(v8::Local<v8::Name> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid &info) {
diff --git a/Lib/javascript/v8/javascripthelpers.swg b/Lib/javascript/v8/javascripthelpers.swg
index 74610793af..7b8a5ec237 100644
--- a/Lib/javascript/v8/javascripthelpers.swg
+++ b/Lib/javascript/v8/javascripthelpers.swg
@@ -6,7 +6,7 @@ typedef v8::InvocationCallback SwigV8FunctionCallback;
typedef v8::AccessorGetter SwigV8AccessorGetterCallback;
typedef v8::AccessorSetter SwigV8AccessorSetterCallback;
typedef v8::AccessorInfo SwigV8PropertyCallbackInfoVoid;
-#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
+#elif (V8_MAJOR_VERSION-0) < 5
typedef v8::FunctionCallback SwigV8FunctionCallback;
typedef v8::AccessorGetterCallback SwigV8AccessorGetterCallback;
typedef v8::AccessorSetterCallback SwigV8AccessorSetterCallback;
@@ -70,14 +70,14 @@ SWIGRUNTIME void SWIGV8_AddStaticFunction(v8::Handle<v8::Object> obj, const char
*/
SWIGRUNTIME void SWIGV8_AddStaticVariable(v8::Handle<v8::Object> obj, const char* symbol,
SwigV8AccessorGetterCallback getter, SwigV8AccessorSetterCallback setter) {
-#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
+#if (V8_MAJOR_VERSION-0) < 5
obj->SetAccessor(SWIGV8_SYMBOL_NEW(symbol), getter, setter);
#else
obj->SetAccessor(SWIGV8_CURRENT_CONTEXT(), SWIGV8_SYMBOL_NEW(symbol), getter, setter);
#endif
}
-#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
+#if (V8_MAJOR_VERSION-0) < 5
SWIGRUNTIME void JS_veto_set_variable(v8::Local<v8::String> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid& info)
#else
SWIGRUNTIME void JS_veto_set_variable(v8::Local<v8::Name> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid& info)
@@ -87,7 +87,7 @@ SWIGRUNTIME void JS_veto_set_variable(v8::Local<v8::Name> property, v8::Local<v8
char msg[512];
int res;
-#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
+#if (V8_MAJOR_VERSION-0) < 5
property->WriteUtf8(buffer, 256);
res = sprintf(msg, "Tried to write read-only variable: %s.", buffer);
#else
diff --git a/Lib/javascript/v8/javascriptinit.swg b/Lib/javascript/v8/javascriptinit.swg
index 86008d927f..e83f478d9d 100644
--- a/Lib/javascript/v8/javascriptinit.swg
+++ b/Lib/javascript/v8/javascriptinit.swg
@@ -7,7 +7,7 @@ SWIG_V8_SetModule(void *, swig_module_info *swig_module) {
v8::Local<v8::Object> global_obj = SWIGV8_CURRENT_CONTEXT()->Global();
v8::Local<v8::External> mod = SWIGV8_EXTERNAL_NEW(swig_module);
assert(!mod.IsEmpty());
-#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
+#if (V8_MAJOR_VERSION-0) < 5
global_obj->SetHiddenValue(SWIGV8_STRING_NEW("swig_module_info_data"), mod);
#else
v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("swig_module_info_data"));
@@ -18,7 +18,7 @@ SWIG_V8_SetModule(void *, swig_module_info *swig_module) {
SWIGRUNTIME swig_module_info *
SWIG_V8_GetModule(void *) {
v8::Local<v8::Object> global_obj = SWIGV8_CURRENT_CONTEXT()->Global();
-#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
+#if (V8_MAJOR_VERSION-0) < 5
v8::Local<v8::Value> moduleinfo = global_obj->GetHiddenValue(SWIGV8_STRING_NEW("swig_module_info_data"));
#else
v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("swig_module_info_data"));
diff --git a/Lib/javascript/v8/javascriptrun.swg b/Lib/javascript/v8/javascriptrun.swg
index 30002c02a3..0af9f4eb0a 100644
--- a/Lib/javascript/v8/javascriptrun.swg
+++ b/Lib/javascript/v8/javascriptrun.swg
@@ -193,7 +193,7 @@ public:
void (*dtor) (v8::Isolate *isolate, v8::Persistent< v8::Value> object, void *parameter);
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
void (*dtor) (v8::Isolate *isolate, v8::Persistent< v8::Object > *object, SWIGV8_Proxy *proxy);
-#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
+#elif (V8_MAJOR_VERSION-0) < 5
void (*dtor) (const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data);
#else
void (*dtor) (const v8::WeakCallbackInfo<SWIGV8_Proxy> &data);
@@ -243,7 +243,7 @@ SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(v8::Isolate *, v8::Persistent< v8::Val
SWIGV8_Proxy *proxy = static_cast<SWIGV8_Proxy *>(parameter);
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(v8::Isolate *, v8::Persistent< v8::Object > *object, SWIGV8_Proxy *proxy) {
-#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
+#elif (V8_MAJOR_VERSION-0) < 5
SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data) {
SWIGV8_Proxy *proxy = data.GetParameter();
#else
@@ -317,7 +317,7 @@ SWIGRUNTIME void SWIGV8_SetPrivateData(v8::Handle<v8::Object> obj, void *ptr, sw
} else {
cdata->handle.MakeWeak(cdata, SWIGV8_Proxy_DefaultDtor);
}
-#elifif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
+#elif (V8_MAJOR_VERSION-0) < 5
if(cdata->swigCMemOwn && (SWIGV8_ClientData*)info->clientdata) {
cdata->handle.SetWeak(cdata, ((SWIGV8_ClientData*)info->clientdata)->dtor);
} else {
@@ -481,7 +481,7 @@ int SwigV8Packed_Check(v8::Handle<v8::Value> valRef) {
v8::Handle<v8::Object> objRef = valRef->ToObject();
if(objRef->InternalFieldCount() < 1) return false;
-#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
+#if (V8_MAJOR_VERSION-0) < 5
v8::Handle<v8::Value> flag = objRef->GetHiddenValue(SWIGV8_STRING_NEW("__swig__packed_data__"));
#else
v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("__swig__packed_data__"));
@@ -537,7 +537,7 @@ SWIGRUNTIME void _wrap_SwigV8PackedData_delete(v8::Isolate *isolate, v8::Persist
SwigV8PackedData *cdata = static_cast<SwigV8PackedData *>(parameter);
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
SWIGRUNTIME void _wrap_SwigV8PackedData_delete(v8::Isolate *isolate, v8::Persistent<v8::Object> *object, SwigV8PackedData *cdata) {
-#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
+#elif (V8_MAJOR_VERSION-0) < 5
SWIGRUNTIME void _wrap_SwigV8PackedData_delete(const v8::WeakCallbackData<v8::Object, SwigV8PackedData> &data) {
v8::Local<v8::Object> object = data.GetValue();
SwigV8PackedData *cdata = data.GetParameter();
@@ -558,7 +558,7 @@ SWIGRUNTIME void _wrap_SwigV8PackedData_delete(const v8::WeakCallbackInfo<SwigV8
object->Dispose(isolate);
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
object->Dispose();
-#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
+#elif (V8_MAJOR_VERSION-0) < 5
object.Clear();
#endif
}
@@ -571,7 +571,7 @@ v8::Handle<v8::Value> SWIGV8_NewPackedObj(void *data, size_t size, swig_type_inf
// v8::Handle<v8::Object> obj = SWIGV8_OBJECT_NEW();
v8::Local<v8::Object> obj = SWIGV8_OBJECT_NEW();
-#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
+#if (V8_MAJOR_VERSION-0) < 5
obj->SetHiddenValue(SWIGV8_STRING_NEW("__swig__packed_data__"), SWIGV8_BOOLEAN_NEW(true));
#else
v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("__swig__packed_data__"));
@@ -599,7 +599,7 @@ v8::Handle<v8::Value> SWIGV8_NewPackedObj(void *data, size_t size, swig_type_inf
cdata->handle.MakeWeak(v8::Isolate::GetCurrent(), cdata, _wrap_SwigV8PackedData_delete);
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
cdata->handle.MakeWeak(cdata, _wrap_SwigV8PackedData_delete);
-#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
+#elif (V8_MAJOR_VERSION-0) < 5
cdata->handle.SetWeak(cdata, _wrap_SwigV8PackedData_delete);
// v8::V8::SetWeak(&cdata->handle, cdata, _wrap_SwigV8PackedData_delete);
#else

View file

@ -0,0 +1,153 @@
From 50e1cc8bc0d090164762ec166439f8b0f3855308 Mon Sep 17 00:00:00 2001
From: Julien Schueller <schueller@phimeca.com>
Date: Thu, 10 Apr 2025 17:22:15 +0200
Subject: [PATCH 1/3] Python: Handle __package__ removal
Closes #2967
---
Doc/Manual/Python.html | 6 +++---
Source/Modules/python.cxx | 8 +++++---
2 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/Doc/Manual/Python.html b/Doc/Manual/Python.html
index 23587e5dbcc..01fc449a68a 100644
--- a/Doc/Manual/Python.html
+++ b/Doc/Manual/Python.html
@@ -6552,7 +6552,7 @@ <H4><a name="Python_package_search_both_package_modules">33.11.6.1 Both modules
<p>
In this configuration, the pure Python module, foo.py, tries to load the C/C++ module, _foo, from the same package foo.py is
-located in. The package name is determined from the <tt>__package__</tt>
+located in. The package name is determined from the <tt>__spec__.parent</tt> (or <tt>__package__</tt> before Python 3.4)
attribute if available, see <a href="https://www.python.org/dev/peps/pep-0366/">PEP 366</a>. Otherwise it is derived from the <tt>__name__</tt>
attribute given to foo.py by the Python loader that imported foo.py.
The interface file for this configuration would contain:
@@ -6675,7 +6675,7 @@ <H4><a name="Python_custom_module_import">33.11.6.4 More on customizing the modu
<div class="targetlang">
<pre>
-if __package__ or '.' in __name__:
+if getattr(__spec__, "parent", None) or '.' in __name__:
from . import _foo
else:
import _foo
@@ -6760,7 +6760,7 @@ <H4><a name="Python_custom_module_import">33.11.6.4 More on customizing the modu
<div class="targetlang">
<pre>
-if __package__ or '.' in __name__:
+if getattr(__spec__, "parent", None) or '.' in __name__:
from ._foo import *
else:
from _foo import *
diff --git a/Source/Modules/python.cxx b/Source/Modules/python.cxx
index 86daf131c8b..a71fc3cdb25 100644
--- a/Source/Modules/python.cxx
+++ b/Source/Modules/python.cxx
@@ -703,20 +703,22 @@ class PYTHON:public Language {
* onwards (implicit relative imports raised a DeprecationWarning in 2.6,
* and fail in 2.7 onwards).
*
- * First check for __package__ which is available from 2.6 onwards, see PEP366.
+ * First check for __spec__.parent which is available from 3.4 onwards,
+ * see https://docs.python.org/3/reference/import.html#spec. If not,
+ * check for __package__, which was set before 3.14.
* Next try determine the shadow wrapper's package based on the __name__ it
* was given by the importer that loaded it.
* If the module is in a package, load the low-level C/C++ module from the
* same package, otherwise load it as a global module.
*/
Printv(default_import_code, "# Import the low-level C/C++ module\n", NULL);
- Printv(default_import_code, "if __package__ or \".\" in __name__:\n", NULL);
+ Printv(default_import_code, "if getattr(globals().get(\"__spec__\"), \"parent\", None) or globals().get(\"__package__\") or \".\" in __name__:\n", NULL);
Printv(default_import_code, tab4, "from . import ", module, "\n", NULL);
Printv(default_import_code, "else:\n", NULL);
Printv(default_import_code, tab4, "import ", module, "\n", NULL);
} else {
Printv(default_import_code, "# Pull in all the attributes from the low-level C/C++ module\n", NULL);
- Printv(default_import_code, "if __package__ or \".\" in __name__:\n", NULL);
+ Printv(default_import_code, "if getattr(globals().get(\"__spec__\"), \"parent\", None) or globals().get(\"__package__\") or \".\" in __name__:\n", NULL);
Printv(default_import_code, tab4, "from .", module, " import *\n", NULL);
Printv(default_import_code, "else:\n", NULL);
Printv(default_import_code, tab4, "from ", module, " import *\n", NULL);
From 3bfdf13c602f877860a9949ba751a5b5a9ba70aa Mon Sep 17 00:00:00 2001
From: Julien Schueller <schueller@phimeca.com>
Date: Thu, 10 Apr 2025 18:35:25 +0200
Subject: [PATCH 2/3] Python: Add ht_token
---
Source/Modules/python.cxx | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/Source/Modules/python.cxx b/Source/Modules/python.cxx
index a71fc3cdb25..3070a94face 100644
--- a/Source/Modules/python.cxx
+++ b/Source/Modules/python.cxx
@@ -4374,6 +4374,11 @@ class PYTHON:public Language {
Printv(f, "#if PY_VERSION_HEX >= 0x030b0000\n", NIL);
printSlot(f, getSlot(n, "feature:python:_ht_tpname"), "_ht_tpname", "char *");
+ // void *ht_token;
+ Printv(f, "#if PY_VERSION_HEX >= 0x030e0000\n", NIL);
+ printSlot(f, getSlot(n, "feature:python:ht_token"), "ht_token", "void *");
+ Printv(f, "#endif\n", NIL);
+
// struct _specialization_cache _spec_cache;
Printf(f, " {\n");
printSlot(f, getSlot(n, "feature:python:getitem"), "getitem", "PyObject *");
From 55237efa7219f65a04e0ffc69a81c574b5f5e162 Mon Sep 17 00:00:00 2001
From: Julien Schueller <schueller@phimeca.com>
Date: Thu, 10 Apr 2025 17:47:59 +0200
Subject: [PATCH 3/3] Python: Amend annotations test
---
.../python_annotations_variable_c_runme.py | 24 +++++++++++++------
1 file changed, 17 insertions(+), 7 deletions(-)
diff --git a/Examples/test-suite/python/python_annotations_variable_c_runme.py b/Examples/test-suite/python/python_annotations_variable_c_runme.py
index 153852d05e6..d1f359bbbd0 100644
--- a/Examples/test-suite/python/python_annotations_variable_c_runme.py
+++ b/Examples/test-suite/python/python_annotations_variable_c_runme.py
@@ -1,4 +1,17 @@
import sys
+import inspect
+
+
+def get_annotations(cls):
+ # Python >=3.14 removed the __annotations__ attribute
+ # retrieve it via inspect (see also annotationlib)
+ if hasattr(inspect, "get_annotations"):
+ # Python >=3.10
+ return inspect.get_annotations(cls)
+ else:
+ # Python <3.10
+ return getattr(cls, "__annotations__", {})
+
# Variable annotations for properties is only supported in python-3.6 and later (PEP 526)
if sys.version_info[0:2] >= (3, 6):
@@ -8,17 +21,14 @@
annotations_supported = not(is_python_builtin() or is_python_fastproxy())
if annotations_supported:
- ts = TemplateShort()
- anno = ts.__annotations__
+ anno = get_annotations(TemplateShort)
if anno != {'member_variable': 'int'}:
raise RuntimeError("annotations mismatch: {}".format(anno))
- ts = StructWithVar()
- anno = ts.__annotations__
+ anno = get_annotations(StructWithVar)
if anno != {'member_variable': 'int'}:
raise RuntimeError("annotations mismatch: {}".format(anno))
- ts = StructWithVarNotAnnotated()
- if getattr(ts, "__annotations__", None) != None:
- anno = ts.__annotations__
+ anno = get_annotations(StructWithVarNotAnnotated)
+ if anno != {}:
raise RuntimeError("annotations mismatch: {}".format(anno))

404
swig.spec
View file

@ -1,30 +1,66 @@
# We can skip tests
%bcond_without testsuite
%if %{without testsuite}
%global tcl 0
%global guile 0
%global lualang 0
%global perllang 0
%global phplang 0
%global rubylang 0
%global python3lang 0
%global golang 0
%global octave 0
%global Rlang 0
%global javalang 0
%global ocamllang 0
%endif
%{!?tcl:%global tcl 1}
%{!?guile:%global guile 0}
%{!?lualang:%global lualang 1}
# Disable PHP tests, because they fail with PHP 7.2.0
%{!?phplang:%global phplang 0}
%{!?perllang:%global perllang 1}
%{!?rubylang:%global rubylang 1}
%{!?python3lang:%global python3lang 1}
# PHP drop support for 32-bit builds since Fedora 41.
%if 0%{?fedora} >= 41 || 0%{?rhel} >= 11
%ifarch %{ix86}
%global phplang 0
%endif
%endif
%{!?phplang:%global phplang 1}
# OCaml packages not built on i686 since OCaml 5 / Fedora 39.
%ifarch %{ix86}
%{!?ocamllang:%global ocamllang 0}
%else
%{!?ocamllang:%global ocamllang 1}
%endif
%if 0%{?rhel}
%{!?golang:%global golang 0}
%{!?guile:%global guile 0}
%{!?octave:%global octave 0}
%{!?Rlang:%global Rlang 0}
%bcond_with build_ccache_swig
%else
%{!?guile:%global guile 1}
%{!?octave:%global octave 1}
%{!?Rlang:%global Rlang 1}
# R-core requires tcl < 9.0.0
%{!?Rlang:%global Rlang 0}
%bcond_without build_ccache_swig
%endif
%ifarch aarch64 %{arm} %{mips} ppc64le ppc %{power64} s390 s390x
%ifarch %{ix86}
%{!?javalang:%global javalang 0}
%else
# Temporary disable java tests, because they doesn't pass with java-21-openjdk
# https://github.com/swig/swig/issues/2767
%{!?javalang:%global javalang 1}
%endif
%ifarch %{ix86} x86_64 %{arm} aarch64 ppc64le
# Do not run Go tests, they failed with 4.0.0 on ppc64le, s390
%ifarch x86_64 %{arm} aarch64
%{!?golang:%global golang 1}
%else
%{!?golang:%global golang 0}
@ -32,10 +68,10 @@
Summary: Connects C/C++/Objective C to some high-level programming languages
Name: swig
Version: 3.0.12
Release: 17%{?dist}
License: GPLv3+ and BSD
URL: http://swig.sourceforge.net/
Version: 4.4.1
Release: 1%{?dist}
License: GPL-3.0-or-later AND BSD-3-Clause
URL: https://www.swig.org/
Source0: http://downloads.sourceforge.net/project/swig/swig/swig-%{version}/swig-%{version}.tar.gz
# Define the part of man page sections
Source1: description.h2m
@ -45,27 +81,15 @@ Source3: ccache-swig.sh
Source4: ccache-swig.csh
%endif
Patch0: swig308-Do-not-use-isystem.patch
Patch1: swig-3.0.12-Fix-testsuite-to-work-without-.-in-INC.patch
# Upstream pull request to support Node v7/v8
Patch2: https://patch-diff.githubusercontent.com/raw/swig/swig/pull/968/swig-node-v7.patch
# Fix generated code for constant expressions containing wchar_t L
# literals.
Patch3: swig-3.0.12-Fix-generated-code-for-constant-expressions-containi.patch
Patch4: swig-3.0.12-Fix-type-promotion-wrapping-some-non-trivial-constan.patch
Patch5: swig-3.0.12-Correct-php-testcase.patch
Patch6: swig-3.0.12-Fix-go-version-matching-in-configure-for-go1.10.patch
# Backport upstream Coverity fixes (BZ# 1570037)
Patch7: swig-3.0.12-Coverity-fix-issue-reported-for-SWIG_Python_FixMetho.patch
Patch8: swig-3.0.12-Fix-Coverity-issue-reported-for-setslice-pycontainer.patch
Patch9: swig-3.0.12-Coverity-fix-issue-reported-for-wrapper-argument-che.patch
Patch10: swig-3.0.12-Coverity-fix-issue-reported-for-SWIG_Python_ConvertF.patch
BuildRequires: perl-interpreter, pcre-devel
BuildRequires: python2-devel, python3-devel
BuildRequires: coreutils
BuildRequires: findutils
BuildRequires: make
BuildRequires: perl-interpreter, pcre2-devel
BuildRequires: python%{python3_pkgversion}-devel
BuildRequires: autoconf, automake, gawk, dos2unix
BuildRequires: gcc-c++
BuildRequires: help2man
BuildRequires: sed
BuildRequires: perl-devel
BuildRequires: perl(base)
BuildRequires: perl(Config)
@ -81,7 +105,7 @@ BuildRequires: boost-devel
# Need when Source/CParse/parser.y is patched
BuildRequires: bison
%if %{tcl}
BuildRequires: tcl-devel
BuildRequires: tcl-devel >= 9.0.0
%endif
%if %{guile}
BuildRequires: guile-devel
@ -91,7 +115,10 @@ BuildRequires: octave-devel
%endif
%if %{golang}
BuildRequires: golang
BuildRequires: golang-bin
%ifnarch s390x
BuildRequires: golang-shared
%endif
BuildRequires: golang-src
%endif
%if %{lualang}
@ -109,21 +136,28 @@ BuildRequires: java, java-devel
%if %{phplang}
BuildRequires: php, php-devel
%endif
%if %{ocamllang}
BuildRequires: ocaml
BuildRequires: ocaml-findlib
%endif
%description
Simplified Wrapper and Interface Generator (SWIG) is a software
development tool for connecting C, C++ and Objective C programs with a
variety of high-level programming languages. SWIG is primarily used
with Perl, Python and Tcl/TK, but it has also been extended to Java,
Eiffel and Guile. SWIG is normally used to create high-level
interpreted programming environments, systems integration, and as a
tool for building user interfaces
variety of high-level programming languages. SWIG is used with different
types of target languages including common scripting languages such as
Javascript, Perl, PHP, Python, Tcl and Ruby. The list of supported
languages also includes non-scripting languages such as C#, D, Go language,
Java including Android, Lua, OCaml, Octave, Scilab and R. Also several
interpreted and compiled Scheme implementations (Guile, MzScheme/Racket)
are supported. SWIG is most commonly used to create high-level interpreted
or compiled programming environments, user interfaces, and as a tool for
testing and prototyping C/C++ software.
%if %{with build_ccache_swig}
%package -n ccache-swig
Summary: Fast compiler cache
License: GPLv2+
Group: Development/Tools
License: GPL-2.0-or-later
Requires: swig
Conflicts: swig < 3.0.8-2
@ -135,8 +169,7 @@ being done again. ccache-swig is ccache plus support for SWIG.
%package doc
Summary: Documentation files for SWIG
License: BSD
Group: Development/Tools
License: BSD-3-Clause
BuildArch: noarch
%description doc
@ -144,7 +177,7 @@ This package contains documentation for SWIG and useful examples
%package gdb
Summary: Commands for easier debugging of SWIG
License: BSD
License: BSD-3-Clause
Requires: swig
%description gdb
@ -152,19 +185,7 @@ This package contains file with commands for easier debugging of SWIG
in gdb.
%prep
%setup -q
%patch0 -p1 -b .isystem
%patch1 -p1
%patch2 -p1 -b .bak
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%autosetup -p1
for all in CHANGES README; do
iconv -f ISO88591 -t UTF8 < $all > $all.new
@ -179,9 +200,26 @@ done
# code produces lots of the warnings demanded by strict ISO C and ISO C++.
# It causes that log had more then 600M.
%configure \
%if %{ocamllang}
--with-ocaml \
%else
--without-ocaml \
%endif
%if %{python3lang}
--with-python3=python3 \
%else
--without-python3 \
%endif
%if %{phplang}
--with-php=%{__php} \
--with-php \
%else
--without-php \
%endif
%if ! %{perllang}
--without-perl5 \
%endif
%if ! %{tcl}
--without-tcl \
%endif
%if ! %{javalang}
--without-java \
@ -192,19 +230,22 @@ done
%if ! %{golang}
--without-go \
%endif
%if ! %{guile}
--without-guile \
%endif
%if %{octave}
--with-octave=/usr/bin/octave \
--with-octave=%{_bindir}/octave \
--without-maximum-compile-warnings \
%endif
%if %{without build_ccache_swig}
--disable-ccache \
%endif
;
make %{?_smp_mflags}
%{make_build}
%if %{with testsuite}
# Test suite
make check
make check PY3=1
%endif
%install
@ -227,7 +268,7 @@ for all in `find -type f`; do
done
popd
make DESTDIR=%{buildroot} install
%{make_install}
#################################################
# Use help output for generating of man page swig
@ -322,6 +363,255 @@ install -pm 644 Tools/swig.gdb %{buildroot}%{_datadir}/%{name}/gdb
%{_datadir}/%{name}/gdb
%changelog
* Mon Dec 08 2025 Jitka Plesnikova <jplesnik@redhat.com> - 4.4.1-1
- 4.4.1 bump (rhbz#2419819, rhbz#2415440)
* Tue Oct 21 2025 Jitka Plesnikova <jplesnik@redhat.com> - 4.4.0-1
- 4.4.0 bump (rhbz#2405182)
* Mon Oct 13 2025 Richard W.M. Jones <rjones@redhat.com> - 4.3.1-6
- OCaml 5.4.0 rebuild
* Thu Aug 07 2025 Orion Poplawski <orion@nwra.com> - 4.3.1-5
- Rebuild for Octave 10.2
* Thu Jul 31 2025 Jitka Plesnikova <jplesnik@redhat.com> - 4.3.1-4
- Fix Python DeprecationWarning
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 4.3.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Wed Jun 25 2025 Yaakov Selkowitz <yselkowi@redhat.com> - 4.3.1-2
- Add Python 3.14 support
* Wed Apr 16 2025 Jitka Plesnikova <jplesnik@redhat.com> - 4.3.1-1
- 4.3.1 bump (rhbz#2360009)
* Mon Feb 17 2025 Jitka Plesnikova <jplesnik@redhat.com> - 4.3.0-5
- Disable R tests, because they need tcl < 9
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 4.3.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Thu Nov 14 2024 Orion Poplawski <orion@nwra.com> - 4.3.0-3
- Rebuild for octave 9.2
* Tue Oct 29 2024 Jitka Plesnikova <jplesnik@redhat.com> - 4.3.0-2
- Fix precedence of casts
* Mon Oct 21 2024 Jitka Plesnikova <jplesnik@redhat.com> - 4.3.0-1
- 4.3.0 bump (rhbz#2320047)
* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 4.2.1-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Sun Jun 23 2024 Yaakov Selkowitz <yselkowi@redhat.com> - 4.2.1-7
- Rebuild for Python 3.13
* Wed Jun 19 2024 Richard W.M. Jones <rjones@redhat.com> - 4.2.1-6
- OCaml 5.2.0 ppc64le fix
* Wed May 29 2024 Richard W.M. Jones <rjones@redhat.com> - 4.2.1-5
- OCaml 5.2.0 for Fedora 41
* Mon Apr 29 2024 Jitka Plesnikova <jplesnik@redhat.com> - 4.2.1-4
- Fix gcc's -Wformat-security warning in R Raise function (rhbz#2277767)
* Fri Apr 12 2024 Remi Collet <remi@remirepo.net> - 4.2.1-3
- disable PHP support on 32-bit
https://fedoraproject.org/wiki/Changes/php_no_32_bit
* Tue Feb 27 2024 Jiri Vanek <jvanek@redhat.com> - 4.2.1-2
- Rebuilt for java-21-openjdk as system jdk
- Temporary disable java tests (rhbz#2266693)
* Mon Feb 26 2024 Jitka Plesnikova <jplesnik@redhat.com> - 4.2.1-1
- 4.2.1 bump (rhbz#2265786)
* Tue Jan 23 2024 Jitka Plesnikova <jplesnik@redhat.com> - 4.2.0-1
- 4.2.0 bump
* Mon Dec 18 2023 Richard W.M. Jones <rjones@redhat.com> - 4.1.1-15
- OCaml 5.1.1 + s390x code gen fix for Fedora 40
* Tue Dec 12 2023 Richard W.M. Jones <rjones@redhat.com> - 4.1.1-14
- OCaml 5.1.1 rebuild for Fedora 40
* Thu Dec 07 2023 Jitka Plesnikova <jplesnik@redhat.com> - 4.1.1-13
- Fix PHP director_classes testcase failures on x86
* Fri Oct 20 2023 Jitka Plesnikova <jplesnik@redhat.com> - 4.1.1-12
- Stop using Python's 2to3
* Wed Oct 11 2023 Jitka Plesnikova <jplesnik@redhat.com> - 4.1.1-11
- Fix PHP test, it fails with PHP 8.3
* Thu Oct 05 2023 Richard W.M. Jones <rjones@redhat.com> - 4.1.1-10
- OCaml 5.1 rebuild for Fedora 40
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 4.1.1-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Wed Jul 12 2023 Jerry James <loganjerry@gmail.com> - 4.1.1-8
- Add patch for python 3.12
* Tue Jul 11 2023 Richard W.M. Jones <rjones@redhat.com> - 4.1.1-8
- OCaml 5.0 rebuild for Fedora 39
* Tue Jun 20 2023 Jerry James <loganjerry@gmail.com> - 4.1.1-7
- Enable OCaml support
- Add patch for OCaml 5.0.0
* Sat Apr 08 2023 Orion Poplawski <orion@nwra.com> - 4.1.1-6
- Rebuild with octave 8.1.0
* Thu Mar 16 2023 Orion Poplawski <orion@nwra.com> - 4.1.1-5
- Add patch to support octave 8.1
* Thu Feb 02 2023 Jitka Plesnikova <jplesnik@redhat.com> - 4.1.1-4
- Disable PHP test on i686
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 4.1.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Thu Jan 12 2023 Florian Weimer <fweimer@redhat.com> - 4.1.1-2
- Port configure script to C99
* Thu Dec 01 2022 Jitka Plesnikova <jplesnik@redhat.com> - 4.1.1-1
- Update to 4.1.1
* Tue Oct 25 2022 Jitka Plesnikova <jplesnik@redhat.com> - 4.1.0-1
- Update to 4.1.0
* Thu Jul 21 2022 Maxwell G <gotmax@e.email> - 4.0.2-18
- Exclude golang extension from i686
* Tue Jul 19 2022 Maxwell G <gotmax@e.email> - 4.0.2-17
- Rebuild for CVE-2022-{1705,32148,30631,30633,28131,30635,30632,30630,1962} in
golang
* Sat Jun 18 2022 Robert-André Mauchin <zebob.m@gmail.com> - 4.0.2-16
- Rebuilt for CVE-2022-1996, CVE-2022-24675, CVE-2022-28327, CVE-2022-27191,
CVE-2022-29526, CVE-2022-30629
* Wed Jun 01 2022 Orion Poplawski <orion@nwra.com> - 4.0.2-15
- Rebuild for octave 7.1
* Thu Feb 24 2022 Jitka Plesnikova <jplesnik@redhat.com> - 4.0.2-14
- Disable Java tests
* Sat Jan 22 2022 Jitka Plesnikova <jplesnik@redhat.com> - 4.0.2-13
- Fix tests against GCC12, enable Guile tests
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 4.0.2-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Wed Nov 24 2021 Jitka Plesnikova <jplesnik@redhat.com> - 4.0.2-11
- Disable PHP test, it fails with PHP 8.1
* Thu Oct 07 2021 Jitka Plesnikova <jplesnik@redhat.com> - 4.0.2-10
- Enable Python tests
* Tue Aug 10 2021 Orion Poplawski <orion@nwra.com> - 4.0.2-9
- Rebuild for octave 6.3.0
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4.0.2-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Thu Jul 15 2021 Jitka Plesnikova <jplesnik@redhat.com> - 4.0.2-7
- Disable Python tests, they fail with 3.10.0~b2
* Mon May 31 2021 Orion Poplawski <orion@nwra.com> - 4.0.2-6
- Add patch for octave 6 support (bz#1919617)
* Fri Mar 05 2021 Jitka Plesnikova <jplesnik@redhat.com> - 4.0.2-5
- Backport support of PHP8 from upstream
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4.0.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Fri Aug 28 2020 Jitka Plesnikova <jplesnik@redhat.com> - 4.0.2-3
- Enable tests for Python 3
* Wed Jul 29 2020 Tom Stellard <tstellar@redhat.com> - 4.0.2-2
- Use make macros
https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro
- Disable Go tests
* Mon Jun 08 2020 Jitka Plesnikova <jplesnik@redhat.com> - 4.0.2-1
- Update to 4.0.2
* Fri Mar 06 2020 Jitka Plesnikova <jplesnik@redhat.com> - 4.0.1-9
- Remove BR for Python 2 (bug#1807547)
* Tue Feb 25 2020 Peter Robinson <pbrobinson@fedoraproject.org> - 4.0.1-8
- Add fix for newer NodeJS version
* Tue Feb 04 2020 Michael Jeanson <mjeanson@efficios.com> - 4.0.1-7
- Fix crash in Python backend when using empty docstrings
* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.0.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Thu Jan 23 2020 Jitka Plesnikova <jplesnik@redhat.com> - 4.0.1-5
- Add support for Ruby 2.7
- Fix code generated for Ruby global variables
* Sat Jan 18 2020 Mamoru TASAKA <mtasaka@fedoraproject.org> - 4.0.1-4
- Backport upstream fixes for ruby 2.7 (as small as possible for now)
* Tue Nov 19 2019 Jitka Plesnikova <jplesnik@redhat.com> - 4.0.1-3
- Disable Ruby tests on all archs
* Thu Oct 17 2019 Jitka Plesnikova <jplesnik@redhat.com> - 4.0.1-2
- Disable Ruby tests on x86_64
* Wed Aug 21 2019 Jitka Plesnikova <jplesnik@redhat.com> - 4.0.1-1
- Update to 4.0.1
- Add Python 3.8 support
- Python Sphinx compatibility added for Doxygen comments
- Fix some C++17 compatibility problems in Python and Ruby generated
code
* Mon Aug 12 2019 Jitka Plesnikova <jplesnik@redhat.com> - 4.0.0-5
- Backport upstream fix for Go tests (BZ#1736731)
* Tue Aug 06 2019 Jitka Plesnikova <jplesnik@redhat.com> - 4.0.0-4
- Disable Go tests, they fail with Go 1.13-beta
* Sat Jul 27 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4.0.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Wed Jun 05 2019 Jitka Plesnikova <jplesnik@redhat.com> - 4.0.0-2
- Updated package description
* Fri May 03 2019 Jitka Plesnikova <jplesnik@redhat.com> - 4.0.0-1
- Update to 4.0.0
* Sat Apr 27 2019 Orion Poplawski <orion@nwra.com> - 3.0.12-25
- Add patches for octave 5.1 support
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.0.12-24
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Jan 25 2019 Jonathan Wakely <jwakely@redhat.com> - 3.0.12-23
- Rebuilt for Boost 1.69
* Thu Nov 15 2018 Jitka Plesnikova <jplesnik@redhat.com> - 3.0.12-22
- Add support for Octave 4.4
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.0.12-21
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Mon Jul 02 2018 Miro Hrončok <mhroncok@redhat.com> - 3.0.12-20
- Rebuilt for Python 3.7
* Fri Jun 22 2018 Jitka Plesnikova <jplesnik@redhat.com> - 3.0.12-19
- Disable using of Python 2
* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - 3.0.12-18
- Rebuilt for Python 3.7
* Tue Apr 24 2018 Jitka Plesnikova <jplesnik@redhat.com> - 3.0.12-17
- Backport upstream Coverity fixes (bug#1570037)
- Do not build ccache-swig on RHEL

View file

@ -1,13 +0,0 @@
diff -up swig-3.0.8/configure.ac.orig swig-3.0.8/configure.ac
--- swig-3.0.8/configure.ac.orig 2016-02-02 16:01:09.094852303 +0100
+++ swig-3.0.8/configure.ac 2016-02-02 16:01:42.096702679 +0100
@@ -131,7 +131,8 @@ AC_SUBST(BOOST_CPPFLAGS)
dnl How to specify include directories that may be system directories.
# -I should not be used on system directories (GCC)
if test "$GCC" = yes; then
- ISYSTEM="-isystem "
+# ISYSTEM="-isystem "
+ ISYSTEM="-I"
else
ISYSTEM="-I"
fi