Add patch for octave 4.0.0 support

This commit is contained in:
Orion Poplawski 2015-07-10 11:59:05 -06:00
parent e971d9a497
commit bf560fda6f
2 changed files with 235 additions and 1 deletions

227
swig-octave4.patch Normal file
View File

@ -0,0 +1,227 @@
diff --git a/Examples/test-suite/octave/default_constructor_runme.m b/Examples/test-suite/octave/default_constructor_runme.m
index 2f8bb39..ebe553b 100644
--- a/Examples/test-suite/octave/default_constructor_runme.m
+++ b/Examples/test-suite/octave/default_constructor_runme.m
@@ -14,24 +14,18 @@ try
catch
end_try_catch
-del_b = dc.delete_B;
-
try
bb = dc.new_BB();
error("Whoa. new_BB created.")
catch
end_try_catch
-del_bb = dc.delete_BB;
-
try
c = dc.new_C();
error("Whoa. new_C created.")
catch
end_try_catch
-del_c = dc.delete_C;
-
cc = dc.new_CC();
dc.delete_CC(cc);
@@ -41,24 +35,18 @@ try
catch
end_try_catch
-del_d = dc.delete_D;
-
try
dd = dc.new_DD();
error("Whoa. new_DD created")
catch
end_try_catch
-dd = dc.delete_DD;
-
try
ad = dc.new_AD();
error("Whoa. new_AD created")
catch
end_try_catch
-del_ad = dc.delete_AD;
-
e = dc.new_E();
dc.delete_E(e);
@@ -71,12 +59,10 @@ try
catch
end_try_catch
-del_eb = dc.delete_EB;
-
f = dc.new_F();
try
- del_f = dc.delete_F;
+ del_f = dc.delete_F(f);
error("Whoa. delete_F created")
catch
end_try_catch
@@ -86,7 +72,7 @@ dc.F_destroy(f);
g = dc.new_G();
try
- del_g = dc.delete_G;
+ del_g = dc.delete_G(g);
error("Whoa. delete_G created")
catch
end_try_catch
diff --git a/Lib/octave/octcontainer.swg b/Lib/octave/octcontainer.swg
index 723256c..0211b33 100644
--- a/Lib/octave/octcontainer.swg
+++ b/Lib/octave/octcontainer.swg
@@ -12,6 +12,7 @@
* ----------------------------------------------------------------------------- */
%{
+#include <climits>
#include <iostream>
%}
diff --git a/Lib/octave/octrun.swg b/Lib/octave/octrun.swg
index b5c3e5d..ddfd489 100644
--- a/Lib/octave/octrun.swg
+++ b/Lib/octave/octrun.swg
@@ -868,6 +868,17 @@ SWIGRUNTIME void swig_acquire_ownership_obj(void *vptr, int own);
}
#if defined (HAVE_HDF5)
+# if SWIG_OCTAVE_PREREQ(4,0,0)
+ virtual bool
+ save_hdf5 (octave_hdf5_id loc_id, const char *name, bool save_as_floats) {
+ return true;
+ }
+
+ virtual bool
+ load_hdf5 (octave_hdf5_id loc_id, const char *name, bool have_h5giterate_bug) {
+ return true;
+ }
+# else
virtual bool
save_hdf5 (hid_t loc_id, const char *name, bool save_as_floats) {
return true;
@@ -877,6 +888,7 @@ SWIGRUNTIME void swig_acquire_ownership_obj(void *vptr, int own);
load_hdf5 (hid_t loc_id, const char *name, bool have_h5giterate_bug) {
return true;
}
+# endif
#endif
virtual octave_value convert_to_str(bool pad = false, bool force = false, char type = '"') const {
@@ -969,7 +981,11 @@ SWIGRUNTIME void swig_acquire_ownership_obj(void *vptr, int own);
return octave_value();
}
+#if SWIG_OCTAVE_PREREQ(4,0,0)
+ void print(std::ostream &os, bool pr_as_read_syntax = false) {
+#else
void print(std::ostream &os, bool pr_as_read_syntax = false) const {
+#endif
if (is_string()) {
os << string_value();
return;
@@ -1089,6 +1105,15 @@ SWIGRUNTIME void swig_acquire_ownership_obj(void *vptr, int own);
{ return ptr->load_binary(is, swap, fmt); }
#if defined (HAVE_HDF5)
+# if SWIG_OCTAVE_PREREQ(4,0,0)
+ virtual bool
+ save_hdf5 (octave_hdf5_id loc_id, const char *name, bool save_as_floats)
+ { return ptr->save_hdf5(loc_id, name, save_as_floats); }
+
+ virtual bool
+ load_hdf5 (octave_hdf5_id loc_id, const char *name, bool have_h5giterate_bug)
+ { return ptr->load_hdf5(loc_id, name, have_h5giterate_bug); }
+# else
virtual bool
save_hdf5 (hid_t loc_id, const char *name, bool save_as_floats)
{ return ptr->save_hdf5(loc_id, name, save_as_floats); }
@@ -1096,6 +1121,7 @@ SWIGRUNTIME void swig_acquire_ownership_obj(void *vptr, int own);
virtual bool
load_hdf5 (hid_t loc_id, const char *name, bool have_h5giterate_bug)
{ return ptr->load_hdf5(loc_id, name, have_h5giterate_bug); }
+# endif
#endif
virtual octave_value convert_to_str(bool pad = false, bool force = false, char type = '"') const
@@ -1104,14 +1130,22 @@ SWIGRUNTIME void swig_acquire_ownership_obj(void *vptr, int own);
virtual octave_value convert_to_str_internal(bool pad, bool force, char type) const
{ return ptr->convert_to_str_internal(pad, force, type); }
+#if SWIG_OCTAVE_PREREQ(4,0,0)
+ void print(std::ostream &os, bool pr_as_read_syntax = false)
+#else
void print(std::ostream &os, bool pr_as_read_syntax = false) const
+#endif
{ return ptr->print(os, pr_as_read_syntax); }
private:
+#if !SWIG_OCTAVE_PREREQ(4,0,0)
DECLARE_OCTAVE_ALLOCATOR;
+#endif
DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA;
};
+#if !SWIG_OCTAVE_PREREQ(4,0,0)
DEFINE_OCTAVE_ALLOCATOR(octave_swig_ref);
+#endif
DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA(octave_swig_ref, "swig_ref", "swig_ref");
class octave_swig_packed:public octave_base_value {
@@ -1143,7 +1177,11 @@ SWIGRUNTIME void swig_acquire_ownership_obj(void *vptr, int own);
return true;
}
+#if SWIG_OCTAVE_PREREQ(4,0,0)
+ void print(std::ostream &os, bool pr_as_read_syntax = false) {
+#else
void print(std::ostream &os, bool pr_as_read_syntax = false) const {
+#endif
indent(os);
os << "swig packed type: name = " << (type ? type->name : std::string()) << ", len = " << buf.size(); newline(os);
}
@@ -1167,6 +1205,17 @@ SWIGRUNTIME void swig_acquire_ownership_obj(void *vptr, int own);
}
#if defined (HAVE_HDF5)
+# if SWIG_OCTAVE_PREREQ(4,0,0)
+ virtual bool
+ save_hdf5 (octave_hdf5_id loc_id, const char *name, bool save_as_floats) {
+ return true;
+ }
+
+ virtual bool
+ load_hdf5 (octave_hdf5_id loc_id, const char *name, bool have_h5giterate_bug) {
+ return true;
+ }
+# else
virtual bool
save_hdf5 (hid_t loc_id, const char *name, bool save_as_floats) {
return true;
@@ -1176,13 +1225,18 @@ SWIGRUNTIME void swig_acquire_ownership_obj(void *vptr, int own);
load_hdf5 (hid_t loc_id, const char *name, bool have_h5giterate_bug) {
return true;
}
+# endif
#endif
private:
+#if !SWIG_OCTAVE_PREREQ(4,0,0)
DECLARE_OCTAVE_ALLOCATOR;
+#endif
DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA;
};
+#if !SWIG_OCTAVE_PREREQ(4,0,0)
DEFINE_OCTAVE_ALLOCATOR(octave_swig_packed);
+#endif
DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA(octave_swig_packed, "swig_packed", "swig_packed");
SWIGRUNTIME octave_value_list octave_set_immutable(const octave_value_list &args, int nargout) {

View File

@ -39,13 +39,16 @@
Summary: Connects C/C++/Objective C to some high-level programming languages
Name: swig
Version: 3.0.6
Release: 1%{?dist}
Release: 2%{?dist}
License: GPLv3+ and BSD
URL: http://swig.sourceforge.net/
Source0: http://downloads.sourceforge.net/project/swig/swig/swig-%{version}/swig-%{version}.tar.gz
# Define the part of man page sections
Source1: description.h2m
Patch1: swig207-setools.patch
# Octave 4.0.0 support
# https://github.com/swig/swig/pull/460
Patch2: swig-octave4.patch
BuildRequires: perl, python2-devel, pcre-devel
BuildRequires: autoconf, automake, gawk, dos2unix
@ -100,6 +103,7 @@ This package contains documentation for SWIG and useful examples
%setup -q -n swig-%{version}
%patch1 -p1 -b .setools
%patch2 -p1 -b .octave4
for all in CHANGES README; do
iconv -f ISO88591 -t UTF8 < $all > $all.new
@ -197,6 +201,9 @@ ln -fs ../../bin/ccache-swig %{buildroot}%{_libdir}/ccache/swig
%doc Doc Examples LICENSE LICENSE-GPL LICENSE-UNIVERSITIES COPYRIGHT
%changelog
* Fri Jul 10 2015 Orion Poplawski <orion@cora.nwra.com> - 3.0.6-2
- Add patch for octave 4.0.0 support
* Mon Jul 06 2015 Björn Esser <bjoern.esser@gmail.com> - 3.0.6-1
- Update to 3.0.6 (#1240107)
- Dropped Patch2 and Patch3, changes applied in upstream tarball