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
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# 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
|
||||
# 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
|
||||
# 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
|
||||
# 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: automake
|
||||
BuildRequires: boost-devel
|
||||
@ -141,6 +143,7 @@ understandig SWIG usage.
|
||||
%endif
|
||||
%patch9
|
||||
%patch13 -p1
|
||||
%patch14 -p1
|
||||
|
||||
%build
|
||||
%configure --disable-ccache
|
||||
|
Loading…
Reference in New Issue
Block a user