diff options
author | Albert Graef | 2017-11-11 21:54:11 +0100 |
---|---|---|
committer | Albert Graef | 2017-11-11 21:56:16 +0100 |
commit | aaa0d062346ad86ff4c93a40e11d4e9c99b779e3 (patch) | |
tree | b178da1810b8236a0e4217d93ee641daa3702969 | |
parent | 8eaef0bc957ddbb6b1574c99ef723c5a29b7b374 (diff) | |
download | aur-aaa0d062346ad86ff4c93a40e11d4e9c99b779e3.tar.gz |
Rebuild for latest Octave (currently needs Octave 4.3.0+ from git, use package octave-hg in AUR; embedded interface of Octave 4.2 is broken).
-rw-r--r-- | .SRCINFO | 8 | ||||
-rw-r--r-- | PKGBUILD | 13 | ||||
-rw-r--r-- | octave-4.3-compat.diff | 53 |
3 files changed, 68 insertions, 6 deletions
@@ -1,9 +1,9 @@ # Generated by mksrcinfo v8 -# Wed Mar 1 23:03:50 UTC 2017 +# Sat Nov 11 20:51:34 UTC 2017 pkgbase = pure-octave pkgdesc = embed an Octave interpreter into Pure. pkgver = 0.9 - pkgrel = 1 + pkgrel = 2 url = http://purelang.bitbucket.org/ arch = i686 arch = x86_64 @@ -12,8 +12,10 @@ pkgbase = pure-octave license = GPL3 depends = pure depends = octave - source = https://bitbucket.org/purelang/pure-lang/downloads/pure-octave-0.9.tar.gz + source = https://github.com/agraef/pure-lang/releases/download/pure-octave-0.9/pure-octave-0.9.tar.gz + source = octave-4.3-compat.diff sha1sums = 2d4b3cad23aadcd33925cea04661e2eab6109423 + sha1sums = db422de2b028ec284e19e2d8fd5e840540875d48 pkgname = pure-octave @@ -3,16 +3,23 @@ pkgname=pure-octave pkgver=0.9 -pkgrel=1 +pkgrel=2 pkgdesc="embed an Octave interpreter into Pure." arch=("i686" "x86_64") license=('GPL3') url="http://purelang.bitbucket.org/" +# NB: Currently requires octave-hg (4.3.0+) to build, Octave 4.2 is broken. depends=('pure' 'octave') makedepends=() groups=(pure-complete pure-math) -source=("https://bitbucket.org/purelang/pure-lang/downloads/$pkgname-$pkgver.tar.gz") -sha1sums=('2d4b3cad23aadcd33925cea04661e2eab6109423') +source=("https://github.com/agraef/pure-lang/releases/download/$pkgname-$pkgver/$pkgname-$pkgver.tar.gz" octave-4.3-compat.diff) +sha1sums=('2d4b3cad23aadcd33925cea04661e2eab6109423' + 'db422de2b028ec284e19e2d8fd5e840540875d48') + +prepare() { + cd $srcdir/$pkgname-$pkgver + patch -p2 < ../octave-4.3-compat.diff +} build() { cd $srcdir/$pkgname-$pkgver diff --git a/octave-4.3-compat.diff b/octave-4.3-compat.diff new file mode 100644 index 000000000000..3db5404425b0 --- /dev/null +++ b/octave-4.3-compat.diff @@ -0,0 +1,53 @@ +diff --git a/pure-octave/embed.cc b/pure-octave/embed.cc +index 94bb666b..bae774f6 100644 +--- a/pure-octave/embed.cc ++++ b/pure-octave/embed.cc +@@ -98,6 +98,35 @@ static void my_clean_up_and_exit(int exit_status, bool safe_to_return) + embedded_interpreter = 0; + } + } ++ ++// other recent breakage in the 4.3 API: ++#define is_bool_type islogical ++#define is_integer_type isinteger ++#define is_complex_type iscomplex ++ ++#define get_global_value myget_global_value ++#define set_global_value myset_global_value ++ ++octave_value ++get_global_value (const std::string& nm, bool silent) ++{ ++ octave::symbol_table& symtab = embedded_interpreter->get_symbol_table(); ++ ++ octave_value val = symtab.global_varval (nm); ++ ++ if (val.is_undefined () && ! silent) ++ error ("get_global_value: undefined symbol '%s'", nm.c_str ()); ++ ++ return val; ++} ++ ++void ++set_global_value (const std::string& nm, const octave_value& val) ++{ ++ octave::symbol_table& symtab = embedded_interpreter->get_symbol_table(); ++ ++ symtab.global_assign (nm, val); ++} + #endif + + static void install_builtins(); +@@ -843,7 +872,12 @@ pure_expr *octave_func(pure_expr *fun) + // First try to find an ordinary function handle. + char *s; + if (pure_is_cstring_dup(fun, &s)) { ++#if OCTAVE_MAJOR>4 || OCTAVE_MAJOR>=4 && OCTAVE_MINOR>=3 ++ octave::symbol_table& symtab = embedded_interpreter->get_symbol_table(); ++ octave_value f = symtab.find_function(s); ++#else + octave_value f = symbol_table::find_function(s); ++#endif + free(s); + if (f.is_defined()) { + pure_expr *f = pure_string_dup("str2func"), |