Resolves: RHEL-32325
- 4.2.1 bump - Fix gcc's -Wformat-security warning in R Raise function - OCaml 5.2.0 ppc64le fix - Add support for Python 3.13
This commit is contained in:
parent
d354737675
commit
13bd2333c5
1
.gitignore
vendored
1
.gitignore
vendored
@ -28,3 +28,4 @@ swig-2.0.0.tar.gz
|
|||||||
/swig-4.1.0.tar.gz
|
/swig-4.1.0.tar.gz
|
||||||
/swig-4.1.1.tar.gz
|
/swig-4.1.1.tar.gz
|
||||||
/swig-4.2.0.tar.gz
|
/swig-4.2.0.tar.gz
|
||||||
|
/swig-4.2.1.tar.gz
|
||||||
|
2
sources
2
sources
@ -1 +1 @@
|
|||||||
SHA512 (swig-4.2.0.tar.gz) = b7f508b25bc6e882ed6123f6c7ad12b02a7b74de09ac6e5789968e9c2f51407d1e3dafd5ea495087b4fb0f447ecce17e6070471479c67c4265166d8342a10862
|
SHA512 (swig-4.2.1.tar.gz) = 019dee5a46d57e1030eef47cd5d007ccaadbdcd4e53cd30d7c795f0118ecf4406a78185534502c81c5f6d7bac0713256e7e19b20b5a2d14e2c552219edbaf5cf
|
||||||
|
@ -1,105 +0,0 @@
|
|||||||
From c7ab6a01c6582b92db9328e2f3daa67081f05f6e Mon Sep 17 00:00:00 2001
|
|
||||||
From: William S Fulton <wsf@fultondesigns.co.uk>
|
|
||||||
Date: Fri, 12 Jan 2024 08:45:26 +0000
|
|
||||||
Subject: [PATCH] Fix seg fault handling friend constructor/destructor
|
|
||||||
declarations
|
|
||||||
|
|
||||||
Closes #2749
|
|
||||||
---
|
|
||||||
CHANGES.current | 3 ++
|
|
||||||
Examples/test-suite/friends.i | 34 +++++++++++++++++++++++
|
|
||||||
Examples/test-suite/php/friends_runme.php | 2 +-
|
|
||||||
Source/CParse/parser.y | 5 +++-
|
|
||||||
4 files changed, 42 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
#diff --git a/CHANGES.current b/CHANGES.current
|
|
||||||
#index 030aa0b19..f235d9a09 100644
|
|
||||||
#--- a/CHANGES.current
|
|
||||||
#+++ b/CHANGES.current
|
|
||||||
#@@ -7,6 +7,9 @@ the issue number to the end of the URL: https://github.com/swig/swig/issues/
|
|
||||||
# Version 4.2.1 (in progress)
|
|
||||||
# ===========================
|
|
||||||
#
|
|
||||||
#+2024-01-12: wsfulton
|
|
||||||
#+ #2749 Fix seg fault handling friend constructor/destructor declarations.
|
|
||||||
#+
|
|
||||||
# 2024-01-12: olly
|
|
||||||
# [Ruby,Tcl] #2751 Fix -external-runtime output to define
|
|
||||||
# SWIG_snprintf (bug introduced in 4.2.0).
|
|
||||||
diff --git a/Examples/test-suite/friends.i b/Examples/test-suite/friends.i
|
|
||||||
index a2a5151e0..879f3b3bc 100644
|
|
||||||
--- a/Examples/test-suite/friends.i
|
|
||||||
+++ b/Examples/test-suite/friends.i
|
|
||||||
@@ -148,6 +148,40 @@
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+%inline %{
|
|
||||||
+ class CModelParameterSpecies;
|
|
||||||
+ class CModelParameterCompartment {
|
|
||||||
+ CModelParameterSpecies *species;
|
|
||||||
+ public:
|
|
||||||
+ int getSpeciesVal();
|
|
||||||
+ CModelParameterCompartment();
|
|
||||||
+ ~CModelParameterCompartment();
|
|
||||||
+ };
|
|
||||||
+ class CModelParameterSpecies
|
|
||||||
+ {
|
|
||||||
+ int private_val;
|
|
||||||
+ public:
|
|
||||||
+ // Friend function-declarations are silently ignored (including constructor and destructor declarations)
|
|
||||||
+ friend CModelParameterCompartment::~CModelParameterCompartment();
|
|
||||||
+ friend CModelParameterCompartment::CModelParameterCompartment();
|
|
||||||
+ friend int CModelParameterCompartment::getSpeciesVal();
|
|
||||||
+ };
|
|
||||||
+%}
|
|
||||||
+
|
|
||||||
+%{
|
|
||||||
+CModelParameterCompartment::~CModelParameterCompartment() {
|
|
||||||
+ species = new CModelParameterSpecies();
|
|
||||||
+ species->private_val = 1;
|
|
||||||
+}
|
|
||||||
+CModelParameterCompartment::CModelParameterCompartment() {
|
|
||||||
+ species->private_val = 0;
|
|
||||||
+ delete species;
|
|
||||||
+}
|
|
||||||
+int CModelParameterCompartment::getSpeciesVal() {
|
|
||||||
+ return species->private_val;
|
|
||||||
+}
|
|
||||||
+%}
|
|
||||||
+
|
|
||||||
// Use this version with extra qualifiers to test SWIG as some compilers accept this
|
|
||||||
namespace ns1 {
|
|
||||||
namespace ns2 {
|
|
||||||
diff --git a/Examples/test-suite/php/friends_runme.php b/Examples/test-suite/php/friends_runme.php
|
|
||||||
index f0ef5df58..2e5d3b1fd 100644
|
|
||||||
--- a/Examples/test-suite/php/friends_runme.php
|
|
||||||
+++ b/Examples/test-suite/php/friends_runme.php
|
|
||||||
@@ -3,7 +3,7 @@
|
|
||||||
require "tests.php";
|
|
||||||
|
|
||||||
check::functions(array('globalscope','mix','get_val2','get_val3','bas','baz','bar','get_val1','set'));
|
|
||||||
-check::classes(array('friends','Foo','A','B','D_i','D_d'));
|
|
||||||
+check::classes(array('friends','Foo','A','B','D_i','D_d','CModelParameterCompartment','CModelParameterSpecies'));
|
|
||||||
// No new vars
|
|
||||||
check::globals(array());
|
|
||||||
|
|
||||||
diff --git a/Source/CParse/parser.y b/Source/CParse/parser.y
|
|
||||||
index e5a79f128..edf38c360 100644
|
|
||||||
--- a/Source/CParse/parser.y
|
|
||||||
+++ b/Source/CParse/parser.y
|
|
||||||
@@ -4732,7 +4732,10 @@ cpp_member : cpp_member_no_dox
|
|
||||||
*/
|
|
||||||
|
|
||||||
cpp_constructor_decl : storage_class type LPAREN parms RPAREN ctor_end {
|
|
||||||
- if (inclass || extendmode) {
|
|
||||||
+ /* Cannot be a constructor declaration/definition if parsed as a friend destructor/constructor
|
|
||||||
+ or a badly declared friend function without return type */
|
|
||||||
+ int isfriend = Strstr($1, "friend") != NULL;
|
|
||||||
+ if (!isfriend && (inclass || extendmode)) {
|
|
||||||
String *name = SwigType_templateprefix($2); /* A constructor can optionally be declared with template parameters before C++20, strip these off */
|
|
||||||
SwigType *decl = NewStringEmpty();
|
|
||||||
$$ = new_node("constructor");
|
|
||||||
--
|
|
||||||
2.43.0
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
|||||||
From 2d39d558734cd49b960410c8894b76aa59af60cc Mon Sep 17 00:00:00 2001
|
|
||||||
From: William S Fulton <wsf@fultondesigns.co.uk>
|
|
||||||
Date: Tue, 16 Jan 2024 08:24:46 +0000
|
|
||||||
Subject: [PATCH] Friends testcase fix
|
|
||||||
|
|
||||||
---
|
|
||||||
Examples/test-suite/friends.i | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/Examples/test-suite/friends.i b/Examples/test-suite/friends.i
|
|
||||||
index e37a8c11f..0efffd1cb 100644
|
|
||||||
--- a/Examples/test-suite/friends.i
|
|
||||||
+++ b/Examples/test-suite/friends.i
|
|
||||||
@@ -166,11 +166,11 @@
|
|
||||||
%}
|
|
||||||
|
|
||||||
%{
|
|
||||||
-CModelParameterCompartment::~CModelParameterCompartment() {
|
|
||||||
+CModelParameterCompartment::CModelParameterCompartment() {
|
|
||||||
species = new CModelParameterSpecies();
|
|
||||||
species->private_val = 1;
|
|
||||||
}
|
|
||||||
-CModelParameterCompartment::CModelParameterCompartment() {
|
|
||||||
+CModelParameterCompartment::~CModelParameterCompartment() {
|
|
||||||
species->private_val = 0;
|
|
||||||
delete species;
|
|
||||||
}
|
|
||||||
--
|
|
||||||
2.43.0
|
|
||||||
|
|
@ -1,39 +0,0 @@
|
|||||||
From 95140fa417a4350e2a0ff51c6933667199949442 Mon Sep 17 00:00:00 2001
|
|
||||||
From: William S Fulton <wsf@fultondesigns.co.uk>
|
|
||||||
Date: Mon, 8 Jan 2024 19:31:49 +0000
|
|
||||||
Subject: [PATCH] Python Regression fix - add in missing SwigPyIterator_T
|
|
||||||
fragment
|
|
||||||
|
|
||||||
Closes #2744
|
|
||||||
---
|
|
||||||
CHANGES.current | 3 +++
|
|
||||||
Lib/python/std_map.i | 2 +-
|
|
||||||
2 files changed, 4 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
#diff --git a/CHANGES.current b/CHANGES.current
|
|
||||||
#index b88b2f563..c925cdda5 100644
|
|
||||||
#--- a/CHANGES.current
|
|
||||||
#+++ b/CHANGES.current
|
|
||||||
#@@ -7,3 +7,6 @@ the issue number to the end of the URL: https://github.com/swig/swig/issues/
|
|
||||||
# Version 4.2.1 (in progress)
|
|
||||||
# ===========================
|
|
||||||
#
|
|
||||||
#+2024-01-06: wsfulton
|
|
||||||
#+ [Python] #2744 Regression fix - add in missing SwigPyIterator_T fragment for
|
|
||||||
#+ SwigPyIteratorClosed_T when using %import on an instantiated std::map.
|
|
||||||
diff --git a/Lib/python/std_map.i b/Lib/python/std_map.i
|
|
||||||
index 3f8f3b06b..954e7eb2d 100644
|
|
||||||
--- a/Lib/python/std_map.i
|
|
||||||
+++ b/Lib/python/std_map.i
|
|
||||||
@@ -2,7 +2,7 @@
|
|
||||||
Maps
|
|
||||||
*/
|
|
||||||
|
|
||||||
-%fragment("StdMapCommonTraits","header",fragment="StdSequenceTraits")
|
|
||||||
+%fragment("StdMapCommonTraits","header",fragment="StdSequenceTraits",fragment="SwigPyIterator_T")
|
|
||||||
{
|
|
||||||
namespace swig {
|
|
||||||
template <class ValueType>
|
|
||||||
--
|
|
||||||
2.43.0
|
|
||||||
|
|
@ -0,0 +1,27 @@
|
|||||||
|
From 3d5157514889c668bc14c245246c388eb23615ea Mon Sep 17 00:00:00 2001
|
||||||
|
From: pekkarr <pekkarr@protonmail.com>
|
||||||
|
Date: Mon, 29 Apr 2024 10:00:38 +0300
|
||||||
|
Subject: [PATCH] Fix gcc's -Wformat-security warning in R Raise function
|
||||||
|
(#2896)
|
||||||
|
|
||||||
|
The `Rf_error` function takes a format string as its first argument.
|
||||||
|
---
|
||||||
|
Lib/r/r.swg | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/Lib/r/r.swg b/Lib/r/r.swg
|
||||||
|
index c1ce37c3e..63b69d8cf 100644
|
||||||
|
--- a/Lib/r/r.swg
|
||||||
|
+++ b/Lib/r/r.swg
|
||||||
|
@@ -28,7 +28,7 @@ SWIGEXPORT void SWIG_init(void) {
|
||||||
|
|
||||||
|
%runtime %{
|
||||||
|
SWIGINTERN void SWIG_R_Raise(SEXP obj, const char *msg) {
|
||||||
|
- Rf_error(Rf_isString(obj) ? CHAR(Rf_asChar(obj)) : msg);
|
||||||
|
+ Rf_error("%s", Rf_isString(obj) ? CHAR(Rf_asChar(obj)) : msg);
|
||||||
|
}
|
||||||
|
%}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.44.0
|
||||||
|
|
@ -1,108 +0,0 @@
|
|||||||
From 84a2c45d66f0334f8fe67077311383af11a2d5c8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Olly Betts <olly@survex.com>
|
|
||||||
Date: Fri, 12 Jan 2024 16:15:31 +1300
|
|
||||||
Subject: [PATCH] Adjust -external-runtime fix
|
|
||||||
|
|
||||||
The original fix broke C#, D and Java which don't seem to include
|
|
||||||
swigrun.swg, so split out the SWIG_snprintf macros into a new file
|
|
||||||
and explicitly include it for the external runtime.
|
|
||||||
|
|
||||||
See #2751.
|
|
||||||
---
|
|
||||||
Lib/swig.swg | 2 ++
|
|
||||||
Lib/swigcompat.swg | 23 +++++++++++++++++++++++
|
|
||||||
Lib/swigrun.swg | 17 -----------------
|
|
||||||
Source/Modules/main.cxx | 9 +++++++++
|
|
||||||
4 files changed, 34 insertions(+), 17 deletions(-)
|
|
||||||
create mode 100644 Lib/swigcompat.swg
|
|
||||||
|
|
||||||
diff --git a/Lib/swig.swg b/Lib/swig.swg
|
|
||||||
index faa75baa9..db7e08cf6 100644
|
|
||||||
--- a/Lib/swig.swg
|
|
||||||
+++ b/Lib/swig.swg
|
|
||||||
@@ -710,3 +710,5 @@ template <typename T> T SwigValueInit() {
|
|
||||||
#endif
|
|
||||||
%}
|
|
||||||
#endif
|
|
||||||
+
|
|
||||||
+%insert("runtime") "swigcompat.swg"
|
|
||||||
diff --git a/Lib/swigcompat.swg b/Lib/swigcompat.swg
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000..7d29b7539
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/Lib/swigcompat.swg
|
|
||||||
@@ -0,0 +1,23 @@
|
|
||||||
+/* -----------------------------------------------------------------------------
|
|
||||||
+ * swigcompat.swg
|
|
||||||
+ *
|
|
||||||
+ * Macros to provide support compatibility with older C and C++ standards.
|
|
||||||
+ * ----------------------------------------------------------------------------- */
|
|
||||||
+
|
|
||||||
+/* C99 and C++11 should provide snprintf, but define SWIG_NO_SNPRINTF
|
|
||||||
+ * if you're missing it.
|
|
||||||
+ */
|
|
||||||
+#if ((defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) || \
|
|
||||||
+ (defined __cplusplus && __cplusplus >= 201103L) || \
|
|
||||||
+ defined SWIG_HAVE_SNPRINTF) && \
|
|
||||||
+ !defined SWIG_NO_SNPRINTF
|
|
||||||
+# define SWIG_snprintf(O,S,F,A) snprintf(O,S,F,A)
|
|
||||||
+# define SWIG_snprintf2(O,S,F,A,B) snprintf(O,S,F,A,B)
|
|
||||||
+#else
|
|
||||||
+/* Fallback versions ignore the buffer size, but most of our uses either have a
|
|
||||||
+ * fixed maximum possible size or dynamically allocate a buffer that's large
|
|
||||||
+ * enough.
|
|
||||||
+ */
|
|
||||||
+# define SWIG_snprintf(O,S,F,A) sprintf(O,F,A)
|
|
||||||
+# define SWIG_snprintf2(O,S,F,A,B) sprintf(O,F,A,B)
|
|
||||||
+#endif
|
|
||||||
diff --git a/Lib/swigrun.swg b/Lib/swigrun.swg
|
|
||||||
index 80e41bb50..824185c02 100644
|
|
||||||
--- a/Lib/swigrun.swg
|
|
||||||
+++ b/Lib/swigrun.swg
|
|
||||||
@@ -181,23 +181,6 @@ SWIGINTERNINLINE int SWIG_CheckState(int r) {
|
|
||||||
# define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
-/* C99 and C++11 should provide snprintf, but define SWIG_NO_SNPRINTF
|
|
||||||
- * if you're missing it.
|
|
||||||
- */
|
|
||||||
-#if ((defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) || \
|
|
||||||
- (defined __cplusplus && __cplusplus >= 201103L) || \
|
|
||||||
- defined SWIG_HAVE_SNPRINTF) && \
|
|
||||||
- !defined SWIG_NO_SNPRINTF
|
|
||||||
-# define SWIG_snprintf(O,S,F,A) snprintf(O,S,F,A)
|
|
||||||
-# define SWIG_snprintf2(O,S,F,A,B) snprintf(O,S,F,A,B)
|
|
||||||
-#else
|
|
||||||
-/* Fallback versions ignore the buffer size, but most of our uses either have a
|
|
||||||
- * fixed maximum possible size or dynamically allocate a buffer that's large
|
|
||||||
- * enough.
|
|
||||||
- */
|
|
||||||
-# define SWIG_snprintf(O,S,F,A) sprintf(O,F,A)
|
|
||||||
-# define SWIG_snprintf2(O,S,F,A,B) sprintf(O,F,A,B)
|
|
||||||
-#endif
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
diff --git a/Source/Modules/main.cxx b/Source/Modules/main.cxx
|
|
||||||
index 8a44921ad..76b4f9d28 100644
|
|
||||||
--- a/Source/Modules/main.cxx
|
|
||||||
+++ b/Source/Modules/main.cxx
|
|
||||||
@@ -379,6 +379,15 @@ static void SWIG_dump_runtime() {
|
|
||||||
Swig_banner(runtime);
|
|
||||||
Printf(runtime, "\n");
|
|
||||||
|
|
||||||
+ s = Swig_include_sys("swigcompat.swg");
|
|
||||||
+ if (!s) {
|
|
||||||
+ Printf(stderr, "*** Unable to open 'swigcompat.swg'\n");
|
|
||||||
+ Delete(runtime);
|
|
||||||
+ Exit(EXIT_FAILURE);
|
|
||||||
+ }
|
|
||||||
+ Printf(runtime, "%s", s);
|
|
||||||
+ Delete(s);
|
|
||||||
+
|
|
||||||
s = Swig_include_sys("swiglabels.swg");
|
|
||||||
if (!s) {
|
|
||||||
Printf(stderr, "*** Unable to open 'swiglabels.swg'\n");
|
|
||||||
--
|
|
||||||
2.43.0
|
|
||||||
|
|
@ -1,90 +0,0 @@
|
|||||||
From db50dc8154c5c63593e80c5cc5f96d6303dd0214 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Olly Betts <olly@survex.com>
|
|
||||||
Date: Fri, 12 Jan 2024 14:08:35 +1300
|
|
||||||
Subject: [PATCH] [Ruby,Tcl] Fix -external-runtime output
|
|
||||||
|
|
||||||
Fix -external-runtime output to define SWIG_snprintf (bug introduced in
|
|
||||||
4.2.0).
|
|
||||||
|
|
||||||
Fixes #2751
|
|
||||||
---
|
|
||||||
CHANGES.current | 4 ++++
|
|
||||||
Lib/swig.swg | 21 ---------------------
|
|
||||||
Lib/swigrun.swg | 17 +++++++++++++++++
|
|
||||||
3 files changed, 21 insertions(+), 21 deletions(-)
|
|
||||||
|
|
||||||
#diff --git a/CHANGES.current b/CHANGES.current
|
|
||||||
#index fefa0f942..8d68a9687 100644
|
|
||||||
#--- a/CHANGES.current
|
|
||||||
#+++ b/CHANGES.current
|
|
||||||
#@@ -7,6 +7,10 @@ the issue number to the end of the URL: https://github.com/swig/swig/issues/
|
|
||||||
# Version 4.2.1 (in progress)
|
|
||||||
# ===========================
|
|
||||||
#
|
|
||||||
#+2024-01-12: olly
|
|
||||||
#+ [Ruby,Tcl] #2751 Fix -external-runtime output to define
|
|
||||||
#+ SWIG_snprintf (bug introduced in 4.2.0).
|
|
||||||
#+
|
|
||||||
# 2024-01-12: olly
|
|
||||||
# Improve preprocessor warning for use of an undefined function-like
|
|
||||||
# macro. SWIG now warns:
|
|
||||||
diff --git a/Lib/swig.swg b/Lib/swig.swg
|
|
||||||
index ce5163685..faa75baa9 100644
|
|
||||||
--- a/Lib/swig.swg
|
|
||||||
+++ b/Lib/swig.swg
|
|
||||||
@@ -710,24 +710,3 @@ template <typename T> T SwigValueInit() {
|
|
||||||
#endif
|
|
||||||
%}
|
|
||||||
#endif
|
|
||||||
-
|
|
||||||
-%insert("runtime") %{
|
|
||||||
-/* C99 and C++11 should provide snprintf, but define SWIG_NO_SNPRINTF
|
|
||||||
- * if you're missing it.
|
|
||||||
- */
|
|
||||||
-#if ((defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) || \
|
|
||||||
- (defined __cplusplus && __cplusplus >= 201103L) || \
|
|
||||||
- defined SWIG_HAVE_SNPRINTF) && \
|
|
||||||
- !defined SWIG_NO_SNPRINTF
|
|
||||||
-# define SWIG_snprintf(O,S,F,A) snprintf(O,S,F,A)
|
|
||||||
-# define SWIG_snprintf2(O,S,F,A,B) snprintf(O,S,F,A,B)
|
|
||||||
-#else
|
|
||||||
-/* Fallback versions ignore the buffer size, but most of our uses either have a
|
|
||||||
- * fixed maximum possible size or dynamically allocate a buffer that's large
|
|
||||||
- * enough.
|
|
||||||
- */
|
|
||||||
-# define SWIG_snprintf(O,S,F,A) sprintf(O,F,A)
|
|
||||||
-# define SWIG_snprintf2(O,S,F,A,B) sprintf(O,F,A,B)
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
-%}
|
|
||||||
diff --git a/Lib/swigrun.swg b/Lib/swigrun.swg
|
|
||||||
index 824185c02..80e41bb50 100644
|
|
||||||
--- a/Lib/swigrun.swg
|
|
||||||
+++ b/Lib/swigrun.swg
|
|
||||||
@@ -181,6 +181,23 @@ SWIGINTERNINLINE int SWIG_CheckState(int r) {
|
|
||||||
# define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+/* C99 and C++11 should provide snprintf, but define SWIG_NO_SNPRINTF
|
|
||||||
+ * if you're missing it.
|
|
||||||
+ */
|
|
||||||
+#if ((defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) || \
|
|
||||||
+ (defined __cplusplus && __cplusplus >= 201103L) || \
|
|
||||||
+ defined SWIG_HAVE_SNPRINTF) && \
|
|
||||||
+ !defined SWIG_NO_SNPRINTF
|
|
||||||
+# define SWIG_snprintf(O,S,F,A) snprintf(O,S,F,A)
|
|
||||||
+# define SWIG_snprintf2(O,S,F,A,B) snprintf(O,S,F,A,B)
|
|
||||||
+#else
|
|
||||||
+/* Fallback versions ignore the buffer size, but most of our uses either have a
|
|
||||||
+ * fixed maximum possible size or dynamically allocate a buffer that's large
|
|
||||||
+ * enough.
|
|
||||||
+ */
|
|
||||||
+# define SWIG_snprintf(O,S,F,A) sprintf(O,F,A)
|
|
||||||
+# define SWIG_snprintf2(O,S,F,A,B) sprintf(O,F,A,B)
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
--
|
|
||||||
2.43.0
|
|
||||||
|
|
@ -0,0 +1,29 @@
|
|||||||
|
From 8a19cb77adfec168236e2c63d1a9d1a310f886cc Mon Sep 17 00:00:00 2001
|
||||||
|
From: Olly Betts <olly@survex.com>
|
||||||
|
Date: Fri, 1 Mar 2024 10:40:12 +1300
|
||||||
|
Subject: [PATCH] [java] Avoid using deprecated API in doxygen example
|
||||||
|
|
||||||
|
Passing a String command to Runtime.exec() has been deprecated since
|
||||||
|
Java 18.
|
||||||
|
---
|
||||||
|
Examples/java/doxygen/runme.java | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Examples/java/doxygen/runme.java b/Examples/java/doxygen/runme.java
|
||||||
|
index 6b7bb3d01..5970521c8 100644
|
||||||
|
--- a/Examples/java/doxygen/runme.java
|
||||||
|
+++ b/Examples/java/doxygen/runme.java
|
||||||
|
@@ -33,8 +33,8 @@ public class runme {
|
||||||
|
System.out.println(" perimeter = " + shapes[i].perimeter());
|
||||||
|
}
|
||||||
|
|
||||||
|
- String command = "javadoc -quiet -public -d javadocs example.java Shape.java Circle.java Square.java RectangleInt.java";
|
||||||
|
- System.out.println("\nRunning: " + command);
|
||||||
|
+ String[] command = {"javadoc", "-quiet", "-public", "-d", "javadocs", "example.java", "Shape.java", "Circle.java", "Square.java", "RectangleInt.java"};
|
||||||
|
+ System.out.println("\nRunning: " + String.join(" ", command));
|
||||||
|
Process p = Runtime.getRuntime().exec(command);
|
||||||
|
int exitCode = p.waitFor();
|
||||||
|
System.out.println("javadoc exited with code " + exitCode);
|
||||||
|
--
|
||||||
|
2.44.0
|
||||||
|
|
118
swig-java-Suppress-System.runFinalization-removal-warning.patch
Normal file
118
swig-java-Suppress-System.runFinalization-removal-warning.patch
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
From ec56bff28d3ad5acf82e139a83da8135aa2dd618 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Olly Betts <olly@survex.com>
|
||||||
|
Date: Fri, 1 Mar 2024 10:42:22 +1300
|
||||||
|
Subject: [PATCH] [java] Suppress System.runFinalization() removal warnings
|
||||||
|
|
||||||
|
These need to be addressed, but meanwhile it makes running the testsuite
|
||||||
|
with OpenJDK 21 or newer unhelpfully noisy so suppressing it seems more
|
||||||
|
helpful than not.
|
||||||
|
|
||||||
|
Closes: #2819
|
||||||
|
---
|
||||||
|
Examples/test-suite/java/cpp11_std_unique_ptr_runme.java | 2 ++
|
||||||
|
Examples/test-suite/java/director_pass_by_value_runme.java | 2 ++
|
||||||
|
Examples/test-suite/java/java_director_runme.java | 2 ++
|
||||||
|
Examples/test-suite/java/li_boost_intrusive_ptr_runme.java | 4 ++++
|
||||||
|
Examples/test-suite/java/li_boost_shared_ptr_runme.java | 4 ++++
|
||||||
|
Examples/test-suite/java/li_std_auto_ptr_runme.java | 2 ++
|
||||||
|
6 files changed, 16 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/Examples/test-suite/java/cpp11_std_unique_ptr_runme.java b/Examples/test-suite/java/cpp11_std_unique_ptr_runme.java
|
||||||
|
index f90ef7041..c5622f65f 100644
|
||||||
|
--- a/Examples/test-suite/java/cpp11_std_unique_ptr_runme.java
|
||||||
|
+++ b/Examples/test-suite/java/cpp11_std_unique_ptr_runme.java
|
||||||
|
@@ -10,6 +10,8 @@ public class cpp11_std_unique_ptr_runme {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // Suppress warning about System.runFinalization() call.
|
||||||
|
+ @SuppressWarnings({"deprecation", "removal"})
|
||||||
|
private static void WaitForGC()
|
||||||
|
{
|
||||||
|
System.gc();
|
||||||
|
diff --git a/Examples/test-suite/java/director_pass_by_value_runme.java b/Examples/test-suite/java/director_pass_by_value_runme.java
|
||||||
|
index 1d34c3b55..48ccabf73 100644
|
||||||
|
--- a/Examples/test-suite/java/director_pass_by_value_runme.java
|
||||||
|
+++ b/Examples/test-suite/java/director_pass_by_value_runme.java
|
||||||
|
@@ -12,6 +12,8 @@ public class director_pass_by_value_runme {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // Suppress warning about System.runFinalization() call.
|
||||||
|
+ @SuppressWarnings({"deprecation", "removal"})
|
||||||
|
private static void WaitForGC() {
|
||||||
|
System.gc();
|
||||||
|
System.runFinalization();
|
||||||
|
diff --git a/Examples/test-suite/java/java_director_runme.java b/Examples/test-suite/java/java_director_runme.java
|
||||||
|
index 2167d2621..40829463b 100644
|
||||||
|
--- a/Examples/test-suite/java/java_director_runme.java
|
||||||
|
+++ b/Examples/test-suite/java/java_director_runme.java
|
||||||
|
@@ -13,6 +13,8 @@ public class java_director_runme {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // Suppress warning about System.runFinalization() call.
|
||||||
|
+ @SuppressWarnings({"deprecation", "removal"})
|
||||||
|
private static void WaitForGC()
|
||||||
|
{
|
||||||
|
System.gc();
|
||||||
|
diff --git a/Examples/test-suite/java/li_boost_intrusive_ptr_runme.java b/Examples/test-suite/java/li_boost_intrusive_ptr_runme.java
|
||||||
|
index 750ec5067..721a78d56 100644
|
||||||
|
--- a/Examples/test-suite/java/li_boost_intrusive_ptr_runme.java
|
||||||
|
+++ b/Examples/test-suite/java/li_boost_intrusive_ptr_runme.java
|
||||||
|
@@ -13,6 +13,8 @@ public class li_boost_intrusive_ptr_runme {
|
||||||
|
// Debugging flag
|
||||||
|
public final static boolean debug = false;
|
||||||
|
|
||||||
|
+ // Suppress warning about System.runFinalization() call.
|
||||||
|
+ @SuppressWarnings({"deprecation", "removal"})
|
||||||
|
private static void WaitForGC()
|
||||||
|
{
|
||||||
|
System.gc();
|
||||||
|
@@ -23,6 +25,8 @@ public class li_boost_intrusive_ptr_runme {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // Suppress warning about System.runFinalization() call.
|
||||||
|
+ @SuppressWarnings({"deprecation", "removal"})
|
||||||
|
public static void main(String argv[])
|
||||||
|
{
|
||||||
|
if (debug)
|
||||||
|
diff --git a/Examples/test-suite/java/li_boost_shared_ptr_runme.java b/Examples/test-suite/java/li_boost_shared_ptr_runme.java
|
||||||
|
index b513fade7..c1ec7f7bf 100644
|
||||||
|
--- a/Examples/test-suite/java/li_boost_shared_ptr_runme.java
|
||||||
|
+++ b/Examples/test-suite/java/li_boost_shared_ptr_runme.java
|
||||||
|
@@ -13,6 +13,8 @@ public class li_boost_shared_ptr_runme {
|
||||||
|
// Debugging flag
|
||||||
|
public final static boolean debug = false;
|
||||||
|
|
||||||
|
+ // Suppress warning about System.runFinalization() call.
|
||||||
|
+ @SuppressWarnings({"deprecation", "removal"})
|
||||||
|
private static void WaitForGC()
|
||||||
|
{
|
||||||
|
System.gc();
|
||||||
|
@@ -23,6 +25,8 @@ public class li_boost_shared_ptr_runme {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // Suppress warning about System.runFinalization() call.
|
||||||
|
+ @SuppressWarnings({"deprecation", "removal"})
|
||||||
|
public static void main(String argv[])
|
||||||
|
{
|
||||||
|
if (debug)
|
||||||
|
diff --git a/Examples/test-suite/java/li_std_auto_ptr_runme.java b/Examples/test-suite/java/li_std_auto_ptr_runme.java
|
||||||
|
index 24e353ddc..978a72504 100644
|
||||||
|
--- a/Examples/test-suite/java/li_std_auto_ptr_runme.java
|
||||||
|
+++ b/Examples/test-suite/java/li_std_auto_ptr_runme.java
|
||||||
|
@@ -10,6 +10,8 @@ public class li_std_auto_ptr_runme {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // Suppress warning about System.runFinalization() call.
|
||||||
|
+ @SuppressWarnings({"deprecation", "removal"})
|
||||||
|
private static void WaitForGC()
|
||||||
|
{
|
||||||
|
System.gc();
|
||||||
|
--
|
||||||
|
2.44.0
|
||||||
|
|
@ -1,43 +0,0 @@
|
|||||||
--- swig-4.1.1/Lib/ocaml/ocamlrundec.swg.orig 2022-11-30 00:35:05.000000000 -0700
|
|
||||||
+++ swig-4.1.1/Lib/ocaml/ocamlrundec.swg 2023-07-04 07:09:10.733716151 -0600
|
|
||||||
@@ -14,7 +14,7 @@ SWIGEXT {
|
|
||||||
#else
|
|
||||||
#define SWIGEXT
|
|
||||||
#endif
|
|
||||||
-#define value caml_value_t
|
|
||||||
+#define caml_value_t value
|
|
||||||
#define CAML_VALUE caml_value_t
|
|
||||||
#define CAML_NAME_SPACE
|
|
||||||
#include <caml/alloc.h>
|
|
||||||
@@ -80,11 +80,15 @@ SWIGEXT {
|
|
||||||
/* Also an l-value. */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#ifndef CAML_LOCAL_ROOTS
|
|
||||||
+#define CAML_LOCAL_ROOTS caml_local_roots
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
#ifdef CAMLreturn0
|
|
||||||
#undef CAMLreturn0
|
|
||||||
#endif
|
|
||||||
#define CAMLreturn0 do{ \
|
|
||||||
- caml_local_roots = caml__frame; \
|
|
||||||
+ CAML_LOCAL_ROOTS = caml__frame; \
|
|
||||||
return; \
|
|
||||||
}while (0)
|
|
||||||
|
|
||||||
@@ -93,12 +97,12 @@ SWIGEXT {
|
|
||||||
#endif
|
|
||||||
#define CAMLreturn(result) do{ \
|
|
||||||
caml_value_t caml__temp_result = (result); \
|
|
||||||
- caml_local_roots = caml__frame; \
|
|
||||||
+ CAML_LOCAL_ROOTS = caml__frame; \
|
|
||||||
return (caml__temp_result); \
|
|
||||||
}while(0)
|
|
||||||
|
|
||||||
#define CAMLreturn_type(result) do{ \
|
|
||||||
- caml_local_roots = caml__frame; \
|
|
||||||
+ CAML_LOCAL_ROOTS = caml__frame; \
|
|
||||||
return result; \
|
|
||||||
}while(0)
|
|
||||||
|
|
@ -0,0 +1,27 @@
|
|||||||
|
From 7f0f267630386c41fbf44a0f6115d2555ba82451 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Julien Schueller <schueller@phimeca.com>
|
||||||
|
Date: Thu, 13 Jun 2024 15:32:46 +0200
|
||||||
|
Subject: [PATCH] Python 3.13 deprecates PyWeakref_GET_OBJECT
|
||||||
|
|
||||||
|
Closes #2863
|
||||||
|
---
|
||||||
|
Lib/python/pyrun.swg | 5 +++++
|
||||||
|
1 file changed, 5 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/Lib/python/pyrun.swg b/Lib/python/pyrun.swg
|
||||||
|
index 8381f16d27f..f7305eff108 100644
|
||||||
|
--- a/Lib/python/pyrun.swg
|
||||||
|
+++ b/Lib/python/pyrun.swg
|
||||||
|
@@ -1343,7 +1343,12 @@ SWIG_Python_GetSwigThis(PyObject *pyobj)
|
||||||
|
(void)obj;
|
||||||
|
# ifdef PyWeakref_CheckProxy
|
||||||
|
if (PyWeakref_CheckProxy(pyobj)) {
|
||||||
|
+#if PY_VERSION_HEX >= 0x030D0000
|
||||||
|
+ PyWeakref_GetRef(pyobj, &pyobj);
|
||||||
|
+ Py_DECREF(pyobj);
|
||||||
|
+#else
|
||||||
|
pyobj = PyWeakref_GET_OBJECT(pyobj);
|
||||||
|
+#endif
|
||||||
|
if (pyobj && SwigPyObject_Check(pyobj))
|
||||||
|
return (SwigPyObject*) pyobj;
|
||||||
|
}
|
34
swig-python-Python-3.13-strips-docstring-indent.patch
Normal file
34
swig-python-Python-3.13-strips-docstring-indent.patch
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
From ffa856c8dc1fa97e6896a2c5d5bd647c15df2284 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Julien Schueller <schueller@phimeca.com>
|
||||||
|
Date: Thu, 13 Jun 2024 15:31:26 +0200
|
||||||
|
Subject: [PATCH] Python 3.13 strips docstring indent
|
||||||
|
|
||||||
|
---
|
||||||
|
Examples/test-suite/python/python_docstring_runme.py | 8 +++++---
|
||||||
|
1 file changed, 5 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Examples/test-suite/python/python_docstring_runme.py b/Examples/test-suite/python/python_docstring_runme.py
|
||||||
|
index a601ecb5430..101f9dd8a30 100644
|
||||||
|
--- a/Examples/test-suite/python/python_docstring_runme.py
|
||||||
|
+++ b/Examples/test-suite/python/python_docstring_runme.py
|
||||||
|
@@ -1,5 +1,6 @@
|
||||||
|
from python_docstring import *
|
||||||
|
import inspect
|
||||||
|
+import sys
|
||||||
|
|
||||||
|
def check(got, expected):
|
||||||
|
expected_list = expected.split("\n")
|
||||||
|
@@ -87,9 +88,10 @@ def check(got, expected):
|
||||||
|
)
|
||||||
|
|
||||||
|
# One line doc special case, use __doc__
|
||||||
|
-check(DocStrings.docstringX.__doc__,
|
||||||
|
- " one line docs"
|
||||||
|
- )
|
||||||
|
+if sys.version_info[0:2] < (3, 13):
|
||||||
|
+ check(DocStrings.docstringX.__doc__, " one line docs")
|
||||||
|
+else:
|
||||||
|
+ check(DocStrings.docstringX.__doc__, "one line docs")
|
||||||
|
|
||||||
|
check(inspect.getdoc(DocStrings.docstringX),
|
||||||
|
"one line docs"
|
42
swig.spec
42
swig.spec
@ -19,9 +19,9 @@
|
|||||||
%{!?tcl:%global tcl 1}
|
%{!?tcl:%global tcl 1}
|
||||||
%{!?lualang:%global lualang 1}
|
%{!?lualang:%global lualang 1}
|
||||||
%{!?perllang:%global perllang 1}
|
%{!?perllang:%global perllang 1}
|
||||||
%{!?phplang:%global phplang 1}
|
|
||||||
%{!?rubylang:%global rubylang 1}
|
%{!?rubylang:%global rubylang 1}
|
||||||
%{!?python3lang:%global python3lang 1}
|
%{!?python3lang:%global python3lang 1}
|
||||||
|
%{!?phplang:%global phplang 1}
|
||||||
# OCaml packages not built on i686 since OCaml 5 / Fedora 39.
|
# OCaml packages not built on i686 since OCaml 5 / Fedora 39.
|
||||||
%ifarch %{ix86}
|
%ifarch %{ix86}
|
||||||
%{!?ocamllang:%global ocamllang 0}
|
%{!?ocamllang:%global ocamllang 0}
|
||||||
@ -42,10 +42,12 @@
|
|||||||
%bcond_without build_ccache_swig
|
%bcond_without build_ccache_swig
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%ifarch i686
|
%ifarch %{ix86}
|
||||||
%{!?javalang:%global javalang 0}
|
%{!?javalang:%global javalang 0}
|
||||||
%else
|
%else
|
||||||
%{!?javalang:%global javalang 1}
|
# Temporary disable java tests, because they doesn't pass with java-21-openjdk
|
||||||
|
# https://github.com/swig/swig/issues/2767
|
||||||
|
%{!?javalang:%global javalang 0}
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
# Do not run Go tests, they failed with 4.0.0 on ppc64le, s390
|
# Do not run Go tests, they failed with 4.0.0 on ppc64le, s390
|
||||||
@ -57,8 +59,8 @@
|
|||||||
|
|
||||||
Summary: Connects C/C++/Objective C to some high-level programming languages
|
Summary: Connects C/C++/Objective C to some high-level programming languages
|
||||||
Name: swig
|
Name: swig
|
||||||
Version: 4.2.0
|
Version: 4.2.1
|
||||||
Release: 2%{?dist}
|
Release: 1%{?dist}
|
||||||
License: GPL-3.0-or-later AND BSD-3-Clause
|
License: GPL-3.0-or-later AND BSD-3-Clause
|
||||||
URL: https://www.swig.org/
|
URL: https://www.swig.org/
|
||||||
Source0: http://downloads.sourceforge.net/project/swig/swig/swig-%{version}/swig-%{version}.tar.gz
|
Source0: http://downloads.sourceforge.net/project/swig/swig/swig-%{version}/swig-%{version}.tar.gz
|
||||||
@ -69,20 +71,15 @@ Source2: description-ccache.h2m
|
|||||||
Source3: ccache-swig.sh
|
Source3: ccache-swig.sh
|
||||||
Source4: ccache-swig.csh
|
Source4: ccache-swig.csh
|
||||||
%endif
|
%endif
|
||||||
# OCaml 5.0 support
|
# Small fixes for java tests, in upstream after 4.2.1
|
||||||
# https://github.com/swig/swig/pull/2649
|
Patch0: swig-java-Avoid-using-deprecated-API-in-doxygen-example.patch
|
||||||
Patch0: swig-ocaml-5.0.patch
|
Patch1: swig-java-Suppress-System.runFinalization-removal-warning.patch
|
||||||
# Fix missing fragment dependency, in upstream since 4.2.1
|
# Fix gcc's -Wformat-security warning in R Raise function
|
||||||
# https://github.com/swig/swig/pull/2744
|
# https://github.com/swig/swig/pull/2896
|
||||||
Patch1: swig-Python-Regression-fix-add-in-missing-SwigPyIterator_.patch
|
Patch2: swig-R-Fix-gcc-s-Wformat-security-warning-in-R-Raise-functi.patch
|
||||||
# Fix -external-runtime output, in upstream since 4.2.1
|
# Python 3.13 support: https://github.com/swig/swig/pull/2925
|
||||||
# https://github.com/swig/swig/pull/2751
|
Patch3: swig-python-Python-3.13-strips-docstring-indent.patch
|
||||||
Patch2: swig-Ruby-Tcl-Fix-external-runtime-output.patch
|
Patch4: swig-python-Python-3.13-deprecates-PyWeakref_GET_OBJECT.patch
|
||||||
Patch3: swig-Ruby-Adjust-external-runtime-fix.patch
|
|
||||||
# Fix seg fault handling friend constructor/destructor declarations
|
|
||||||
# https://github.com/swig/swig/issues/2749
|
|
||||||
Patch4: swig-Fix-seg-fault-handling-friend-constructor-destructor.patch
|
|
||||||
Patch5: swig-Friends-testcase-fix.patch
|
|
||||||
|
|
||||||
BuildRequires: coreutils
|
BuildRequires: coreutils
|
||||||
BuildRequires: findutils
|
BuildRequires: findutils
|
||||||
@ -366,6 +363,13 @@ install -pm 644 Tools/swig.gdb %{buildroot}%{_datadir}/%{name}/gdb
|
|||||||
%{_datadir}/%{name}/gdb
|
%{_datadir}/%{name}/gdb
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Jul 02 2024 Jitka Plesnikova <jplesnik@redhat.com> - 4.2.1-1
|
||||||
|
- Resolves: RHEL-32325
|
||||||
|
- 4.2.1 bump
|
||||||
|
- Fix gcc's -Wformat-security warning in R Raise function
|
||||||
|
- OCaml 5.2.0 ppc64le fix
|
||||||
|
- Add support for Python 3.13
|
||||||
|
|
||||||
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 4.2.0-2
|
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 4.2.0-2
|
||||||
- Bump release for June 2024 mass rebuild
|
- Bump release for June 2024 mass rebuild
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user