Accepting request 215615 from home:badshah400:branches:devel:tools:building
Add patch to make swig support octave >= 3.8.0 OBS-URL: https://build.opensuse.org/request/show/215615 OBS-URL: https://build.opensuse.org/package/show/devel:tools:building/swig?expand=0&rev=58
This commit is contained in:
parent
9108068fca
commit
536cb6b5d2
224
swig-support-octave-3.8.0.patch
Normal file
224
swig-support-octave-3.8.0.patch
Normal file
@ -0,0 +1,224 @@
|
|||||||
|
https://github.com/swig/swig/commit/5b167cc12daf9ea275c17fedaefc975450613ab2
|
||||||
|
|
||||||
|
From 5b167cc12daf9ea275c17fedaefc975450613ab2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Karl Wette <karl.wette@ligo.org>
|
||||||
|
Date: Mon, 13 Jan 2014 18:24:17 +1300
|
||||||
|
Subject: [PATCH] octave: update support to Octave version 3.8.0
|
||||||
|
|
||||||
|
diff --git a/Lib/octave/octrun.swg b/Lib/octave/octrun.swg
|
||||||
|
index 41d1c7a..2174a0f 100644
|
||||||
|
--- a/Lib/octave/octrun.swg
|
||||||
|
+++ b/Lib/octave/octrun.swg
|
||||||
|
@@ -1,20 +1,88 @@
|
||||||
|
|
||||||
|
#include <octave/version.h>
|
||||||
|
-#ifndef OCTAVE_API_VERSION_NUMBER
|
||||||
|
-
|
||||||
|
- // Hack to distinguish between Octave 3.2 and earlier versions before OCTAVE_API_VERSION_NUMBER existed
|
||||||
|
- #define ComplexLU __ignore
|
||||||
|
- #include <octave/CmplxLU.h>
|
||||||
|
- #undef ComplexLU
|
||||||
|
- #ifdef octave_Complex_LU_h
|
||||||
|
- # define OCTAVE_API_VERSION_NUMBER 36
|
||||||
|
- #else
|
||||||
|
- # define OCTAVE_API_VERSION_NUMBER 37
|
||||||
|
- #endif
|
||||||
|
|
||||||
|
-#endif
|
||||||
|
+// Macro for enabling features which require Octave version >= major.minor.patch
|
||||||
|
+#define SWIG_OCTAVE_PREREQ(major, minor, patch) \
|
||||||
|
+ ( (OCTAVE_MAJOR_VERSION<<16) + (OCTAVE_MINOR_VERSION<<8) + OCTAVE_PATCH_VERSION >= ((major)<<16) + ((minor)<<8) + (patch) )
|
||||||
|
+
|
||||||
|
+// Reconstruct Octave major, minor, and patch versions for releases prior to 3.8.1
|
||||||
|
+#if !defined(OCTAVE_MAJOR_VERSION)
|
||||||
|
+
|
||||||
|
+# if !defined(OCTAVE_API_VERSION_NUMBER)
|
||||||
|
+
|
||||||
|
+// Hack to distinguish between Octave 3.8.0, which removed OCTAVE_API_VERSION_NUMBER but did not yet
|
||||||
|
+// introduce OCTAVE_MAJOR_VERSION, and Octave <= 3.2, which did not define OCTAVE_API_VERSION_NUMBER
|
||||||
|
+# include <octave/ov.h>
|
||||||
|
+# if defined(octave_ov_h)
|
||||||
|
+# define OCTAVE_MAJOR_VERSION 3
|
||||||
|
+# define OCTAVE_MINOR_VERSION 8
|
||||||
|
+# define OCTAVE_PATCH_VERSION 0
|
||||||
|
+# else
|
||||||
|
+
|
||||||
|
+// Hack to distinguish between Octave 3.2 and earlier versions, before OCTAVE_API_VERSION_NUMBER existed
|
||||||
|
+# define ComplexLU __ignore
|
||||||
|
+# include <octave/CmplxLU.h>
|
||||||
|
+# undef ComplexLU
|
||||||
|
+# if defined(octave_Complex_LU_h)
|
||||||
|
+
|
||||||
|
+// We know only that this version is prior to Octave 3.2, i.e. OCTAVE_API_VERSION_NUMBER < 37
|
||||||
|
+# define OCTAVE_MAJOR_VERSION 3
|
||||||
|
+# define OCTAVE_MINOR_VERSION 1
|
||||||
|
+# define OCTAVE_PATCH_VERSION 99
|
||||||
|
+
|
||||||
|
+# else
|
||||||
|
+
|
||||||
|
+// OCTAVE_API_VERSION_NUMBER == 37
|
||||||
|
+# define OCTAVE_MAJOR_VERSION 3
|
||||||
|
+# define OCTAVE_MINOR_VERSION 2
|
||||||
|
+# define OCTAVE_PATCH_VERSION 0
|
||||||
|
+
|
||||||
|
+# endif // defined(octave_Complex_LU_h)
|
||||||
|
+
|
||||||
|
+# endif // defined(octave_ov_h)
|
||||||
|
|
||||||
|
-#if OCTAVE_API_VERSION_NUMBER < 37
|
||||||
|
+// Correlation between Octave API and version numbers extracted from Octave's
|
||||||
|
+// ChangeLogs; version is the *earliest* released Octave with that API number
|
||||||
|
+# elif OCTAVE_API_VERSION_NUMBER >= 48
|
||||||
|
+# define OCTAVE_MAJOR_VERSION 3
|
||||||
|
+# define OCTAVE_MINOR_VERSION 6
|
||||||
|
+# define OCTAVE_PATCH_VERSION 0
|
||||||
|
+
|
||||||
|
+# elif OCTAVE_API_VERSION_NUMBER >= 45
|
||||||
|
+# define OCTAVE_MAJOR_VERSION 3
|
||||||
|
+# define OCTAVE_MINOR_VERSION 4
|
||||||
|
+# define OCTAVE_PATCH_VERSION 1
|
||||||
|
+
|
||||||
|
+# elif OCTAVE_API_VERSION_NUMBER >= 42
|
||||||
|
+# define OCTAVE_MAJOR_VERSION 3
|
||||||
|
+# define OCTAVE_MINOR_VERSION 3
|
||||||
|
+# define OCTAVE_PATCH_VERSION 54
|
||||||
|
+
|
||||||
|
+# elif OCTAVE_API_VERSION_NUMBER >= 41
|
||||||
|
+# define OCTAVE_MAJOR_VERSION 3
|
||||||
|
+# define OCTAVE_MINOR_VERSION 3
|
||||||
|
+# define OCTAVE_PATCH_VERSION 53
|
||||||
|
+
|
||||||
|
+# elif OCTAVE_API_VERSION_NUMBER >= 40
|
||||||
|
+# define OCTAVE_MAJOR_VERSION 3
|
||||||
|
+# define OCTAVE_MINOR_VERSION 3
|
||||||
|
+# define OCTAVE_PATCH_VERSION 52
|
||||||
|
+
|
||||||
|
+# elif OCTAVE_API_VERSION_NUMBER >= 39
|
||||||
|
+# define OCTAVE_MAJOR_VERSION 3
|
||||||
|
+# define OCTAVE_MINOR_VERSION 3
|
||||||
|
+# define OCTAVE_PATCH_VERSION 51
|
||||||
|
+
|
||||||
|
+# else // OCTAVE_API_VERSION_NUMBER == 38
|
||||||
|
+# define OCTAVE_MAJOR_VERSION 3
|
||||||
|
+# define OCTAVE_MINOR_VERSION 3
|
||||||
|
+# define OCTAVE_PATCH_VERSION 50
|
||||||
|
+
|
||||||
|
+# endif // !defined(OCTAVE_API_VERSION_NUMBER)
|
||||||
|
+
|
||||||
|
+#endif // !defined(OCTAVE_MAJOR_VERSION)
|
||||||
|
+
|
||||||
|
+#if !SWIG_OCTAVE_PREREQ(3,2,0)
|
||||||
|
#define SWIG_DEFUN(cname, wname, doc) DEFUNX_DLD(#cname, wname, FS ## cname, args, nargout, doc)
|
||||||
|
#else
|
||||||
|
#define SWIG_DEFUN(cname, wname, doc) DEFUNX_DLD(#cname, wname, G ## cname, args, nargout, doc)
|
||||||
|
@@ -427,7 +495,7 @@ SWIGRUNTIME void swig_acquire_ownership_obj(void *vptr, int own);
|
||||||
|
if (error_state) return dim_vector(1,1);
|
||||||
|
}
|
||||||
|
return d;
|
||||||
|
- } else if (out.is_matrix_type() || out.is_real_nd_array() || out.is_numeric_type() ) {
|
||||||
|
+ } else if (out.is_matrix_type() || out.is_numeric_type() ) {
|
||||||
|
if (out.rows()==1 || out.columns()==1) {
|
||||||
|
Array<int> a = out.int_vector_value();
|
||||||
|
if (error_state) return dim_vector(1,1);
|
||||||
|
@@ -746,7 +814,7 @@ SWIGRUNTIME void swig_acquire_ownership_obj(void *vptr, int own);
|
||||||
|
return outarg(0).string_value();
|
||||||
|
}
|
||||||
|
|
||||||
|
-#if OCTAVE_API_VERSION_NUMBER >= 40
|
||||||
|
+#if SWIG_OCTAVE_PREREQ(3,3,52)
|
||||||
|
virtual octave_map map_value() const {
|
||||||
|
return octave_map();
|
||||||
|
}
|
||||||
|
@@ -982,7 +1050,7 @@ SWIGRUNTIME void swig_acquire_ownership_obj(void *vptr, int own);
|
||||||
|
virtual std::string string_value(bool force = false) const
|
||||||
|
{ return ptr->string_value(force); }
|
||||||
|
|
||||||
|
-#if OCTAVE_API_VERSION_NUMBER >= 40
|
||||||
|
+#if SWIG_OCTAVE_PREREQ(3,3,52)
|
||||||
|
virtual octave_map map_value() const
|
||||||
|
{ return ptr->map_value(); }
|
||||||
|
#else
|
||||||
|
@@ -1293,10 +1361,12 @@ SWIGRUNTIME void SWIG_Octave_SetGlobalValue(std::string name, const octave_value
|
||||||
|
}
|
||||||
|
|
||||||
|
SWIGRUNTIME void SWIG_Octave_LinkGlobalValue(std::string name) {
|
||||||
|
-#if OCTAVE_API_VERSION_NUMBER < 37
|
||||||
|
+#if !SWIG_OCTAVE_PREREQ(3,2,0)
|
||||||
|
link_to_global_variable(curr_sym_tab->lookup(name, true));
|
||||||
|
#else
|
||||||
|
+#if !SWIG_OCTAVE_PREREQ(3,8,0)
|
||||||
|
symbol_table::varref(name);
|
||||||
|
+#endif
|
||||||
|
symbol_table::mark_global(name);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
diff --git a/Lib/octave/octruntime.swg b/Lib/octave/octruntime.swg
|
||||||
|
index 43313c3..fbf2007 100644
|
||||||
|
--- a/Lib/octave/octruntime.swg
|
||||||
|
+++ b/Lib/octave/octruntime.swg
|
||||||
|
@@ -25,7 +25,7 @@ static bool SWIG_init_user(octave_swig_type* module_ns);
|
||||||
|
SWIGINTERN bool SWIG_Octave_LoadModule(std::string name) {
|
||||||
|
bool retn;
|
||||||
|
{
|
||||||
|
-#if OCTAVE_API_VERSION_NUMBER < 38
|
||||||
|
+#if !SWIG_OCTAVE_PREREQ(3,3,50)
|
||||||
|
unwind_protect::begin_frame("SWIG_Octave_LoadModule");
|
||||||
|
unwind_protect_int(error_state);
|
||||||
|
unwind_protect_int(warning_state);
|
||||||
|
@@ -44,7 +44,7 @@ SWIGINTERN bool SWIG_Octave_LoadModule(std::string name) {
|
||||||
|
discard_warning_messages = true;
|
||||||
|
feval(name, octave_value_list(), 0);
|
||||||
|
retn = (error_state == 0);
|
||||||
|
-#if OCTAVE_API_VERSION_NUMBER < 38
|
||||||
|
+#if !SWIG_OCTAVE_PREREQ(3,3,50)
|
||||||
|
unwind_protect::run_frame("SWIG_Octave_LoadModule");
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
@@ -57,7 +57,7 @@ SWIGINTERN bool SWIG_Octave_LoadModule(std::string name) {
|
||||||
|
SWIGINTERN bool SWIG_Octave_InstallFunction(octave_function *octloadfcn, std::string name) {
|
||||||
|
bool retn;
|
||||||
|
{
|
||||||
|
-#if OCTAVE_API_VERSION_NUMBER < 38
|
||||||
|
+#if !SWIG_OCTAVE_PREREQ(3,3,50)
|
||||||
|
unwind_protect::begin_frame("SWIG_Octave_InstallFunction");
|
||||||
|
unwind_protect_int(error_state);
|
||||||
|
unwind_protect_int(warning_state);
|
||||||
|
@@ -80,7 +80,7 @@ SWIGINTERN bool SWIG_Octave_InstallFunction(octave_function *octloadfcn, std::st
|
||||||
|
error_state = 0;
|
||||||
|
feval("autoload", args, 0);
|
||||||
|
retn = (error_state == 0);
|
||||||
|
-#if OCTAVE_API_VERSION_NUMBER < 38
|
||||||
|
+#if !SWIG_OCTAVE_PREREQ(3,3,50)
|
||||||
|
unwind_protect::run_frame("SWIG_Octave_InstallFunction");
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
@@ -196,7 +196,7 @@ DEFUN_DLD( SWIG_name, args, nargout, SWIG_name_usage ) {
|
||||||
|
// definitely affects version 3.2.*, not sure about 3.3.*, seems to be fixed in
|
||||||
|
// version 3.4.* and above. can be turned off with macro definition.
|
||||||
|
#ifndef SWIG_OCTAVE_NO_SEGFAULT_HACK
|
||||||
|
-#if 36 < OCTAVE_API_VERSION_NUMBER && OCTAVE_API_VERSION_NUMBER < 45
|
||||||
|
+#if SWIG_OCTAVE_PREREQ(3,2,0) && !SWIG_OCTAVE_PREREQ(3,4,1)
|
||||||
|
octave_exit = ::_Exit;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
@@ -212,7 +212,7 @@ DEFUN_DLD( SWIG_name, args, nargout, SWIG_name_usage ) {
|
||||||
|
|
||||||
|
// workaround bug in octave where installing global variable of custom type and then
|
||||||
|
// exiting without explicitly clearing the variable causes octave to segfault.
|
||||||
|
-#if OCTAVE_API_VERSION_NUMBER > 36
|
||||||
|
+#if SWIG_OCTAVE_PREREQ(3,2,0)
|
||||||
|
octave_value_list eval_args;
|
||||||
|
eval_args.append("base");
|
||||||
|
eval_args.append("function __swig_atexit__; "
|
||||||
|
@@ -297,7 +297,7 @@ DEFUN_DLD( SWIG_name, args, nargout, SWIG_name_usage ) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
-#if OCTAVE_API_VERSION_NUMBER < 37
|
||||||
|
+#if !SWIG_OCTAVE_PREREQ(3,2,0)
|
||||||
|
mlock(me->name());
|
||||||
|
#else
|
||||||
|
mlock();
|
||||||
|
--
|
||||||
|
1.8.5.1
|
||||||
|
|
@ -1,3 +1,10 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Jan 29 19:57:02 UTC 2014 - badshah400@gmail.com
|
||||||
|
|
||||||
|
- Add patch swig-support-octave-3.8.0.patch: adds support for
|
||||||
|
octave version 3.8.0 to swig; patch taken from upstream git
|
||||||
|
and rebased for present version.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Sep 30 20:18:08 UTC 2013 - badshah400@gmail.com
|
Mon Sep 30 20:18:08 UTC 2013 - badshah400@gmail.com
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package swig
|
# spec file for package swig
|
||||||
#
|
#
|
||||||
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -35,6 +35,8 @@ Patch11: 0001-Fix-Ruby-tracking-code-to-use-C-hash.patch
|
|||||||
Patch12: ruby-1.8.6-newobject.patch
|
Patch12: ruby-1.8.6-newobject.patch
|
||||||
# PATCH-FIX-UPSTREAM swig-lua-fix-void-return-for-int-functions.patch bnc#843310 badshah400@gmail.com -- Fix functions returning void when int is expected for lua bindings
|
# PATCH-FIX-UPSTREAM swig-lua-fix-void-return-for-int-functions.patch bnc#843310 badshah400@gmail.com -- Fix functions returning void when int is expected for lua bindings
|
||||||
Patch13: swig-lua-fix-void-return-for-int-functions.patch
|
Patch13: swig-lua-fix-void-return-for-int-functions.patch
|
||||||
|
# PATCH-FIX-UPSTREAM swig-support-octave-3.8.0.patch badshah400@gmail.com -- Support octave 3.8.0 (this fixes octave 3.8.0 bindings of several packages failing to build in Factory such as mathgl, plplot, etc.), patch taken from upstream and rebased for current version.
|
||||||
|
Patch14: swig-support-octave-3.8.0.patch
|
||||||
BuildRequires: autoconf
|
BuildRequires: autoconf
|
||||||
BuildRequires: automake
|
BuildRequires: automake
|
||||||
BuildRequires: boost-devel
|
BuildRequires: boost-devel
|
||||||
@ -141,6 +143,7 @@ understandig SWIG usage.
|
|||||||
%endif
|
%endif
|
||||||
%patch9
|
%patch9
|
||||||
%patch13 -p1
|
%patch13 -p1
|
||||||
|
%patch14 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%configure --disable-ccache
|
%configure --disable-ccache
|
||||||
|
Loading…
Reference in New Issue
Block a user