summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlbert Graef2018-03-03 13:39:35 +0100
committerAlbert Graef2018-03-03 13:39:35 +0100
commitbeb75b30bdab296b3368389ed4721683f459c8f8 (patch)
tree19117f722fc753b9f1e5d0d62bfe204ca65e903f
downloadaur-beb75b30bdab296b3368389ed4721683f459c8f8.tar.gz
Initial upload
-rw-r--r--.SRCINFO46
-rw-r--r--PKGBUILD64
-rw-r--r--octave-gcc6.patch38
-rw-r--r--octave-gnulib-fixes.diff592
4 files changed, 740 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..500aa6c09663
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,46 @@
+# Generated by mksrcinfo v8
+# Sat Mar 3 12:39:06 UTC 2018
+pkgbase = octave40
+ pkgdesc = A high-level language, primarily intended for numerical computations.
+ pkgver = 4.0.3
+ pkgrel = 1
+ url = http://www.octave.org
+ arch = i686
+ arch = x86_64
+ license = GPL
+ makedepends = gcc-fortran
+ makedepends = texlive-core
+ makedepends = suitesparse
+ makedepends = texinfo
+ makedepends = gnuplot
+ makedepends = qscintilla
+ depends = fftw
+ depends = curl
+ depends = graphicsmagick
+ depends = glpk
+ depends = hdf5
+ depends = qhull
+ depends = fltk
+ depends = arpack
+ depends = ghostscript
+ depends = suitesparse
+ depends = gl2ps
+ depends = qt4
+ depends = qscintilla
+ depends = libsndfile
+ depends = portaudio
+ optdepends = texinfo: for help-support in octave
+ optdepends = gnuplot: alternative plotting
+ optdepends = java-environment: Java support
+ provides = octave
+ conflicts = octave
+ options = !emptydirs
+ source = ftp://ftp.gnu.org/gnu/octave/octave-4.0.3.tar.xz
+ source = octave-gcc6.patch
+ source = octave-gnulib-fixes.diff
+ sha1sums = c798346a8271e0141d9dbe5610584dabb8311277
+ sha1sums = 646a285266faf054ae72b1897e575f08da779d6e
+ sha1sums = 99ade424bf4f866e4b7e9b948711f120e9960671
+
+pkgname = octave40
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..a9deacb2e8a8
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,64 @@
+# Maintainer: Albert Graef <aggraef@gmail.com>
+# Contributor : Ronald van Haren <ronald.archlinux.org>
+# Contributor : shining <shiningxc.at.gmail.com>
+# Contributor : cyberdune <cyberdune@gmail.com>
+
+pkgname=octave40
+_pkgname=octave
+pkgver=4.0.3
+pkgrel=1
+pkgdesc="A high-level language, primarily intended for numerical computations."
+arch=('i686' 'x86_64')
+url="http://www.octave.org"
+license=('GPL')
+depends=('fftw' 'curl' 'graphicsmagick' 'glpk' 'hdf5' 'qhull' 'fltk' 'arpack'
+ 'ghostscript' 'suitesparse' 'gl2ps' 'qt4' 'qscintilla'
+ 'libsndfile' 'portaudio')
+makedepends=('gcc-fortran' 'texlive-core' 'suitesparse' 'texinfo' 'gnuplot'
+ 'qscintilla')
+optdepends=('texinfo: for help-support in octave'
+ 'gnuplot: alternative plotting'
+ 'java-environment: Java support')
+provides=('octave')
+conflicts=('octave')
+source=(ftp://ftp.gnu.org/gnu/octave/$_pkgname-$pkgver.tar.xz
+ octave-gcc6.patch octave-gnulib-fixes.diff)
+options=('!emptydirs')
+sha1sums=('c798346a8271e0141d9dbe5610584dabb8311277'
+ '646a285266faf054ae72b1897e575f08da779d6e'
+ '99ade424bf4f866e4b7e9b948711f120e9960671')
+
+prepare() {
+ cd "${_pkgname}-${pkgver}"
+ # ag: fix various compile issues (mostly gnulib)
+ patch -p1 -i ../octave-gnulib-fixes.diff
+ # Fix build with GCC 6 (Fedora)
+ patch -p1 -i ../octave-gcc6.patch
+ find -name \*.cc -o -name \*.h -o -name \*.yy | xargs sed -i -e 's/#include <c\(math\|stdlib\)>/#include <\1.h>/'
+ find -name \*.h -o -name \*.cc | xargs sed -i -e 's/<config.h>/"config.h"/' -e 's/<base-list.h>/"base-list.h"/'
+}
+
+build() {
+ cd "${srcdir}/${_pkgname}-${pkgver}"
+
+ autoreconf -vfi
+
+ ./configure --prefix=/usr --libexecdir=/usr/lib \
+ --enable-shared --disable-static \
+ --with-quantum-depth=16 \
+ --with-umfpack="-lumfpack -lsuitesparseconfig" \
+ MOC=moc-qt4 UIC=uic-qt4
+# https://mailman.cae.wisc.edu/pipermail/help-octave/2012-September/053991.html
+
+ LANG=C make
+}
+
+package(){
+ cd "${srcdir}/${_pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ # add octave library path to ld.so.conf.d
+ install -d "${pkgdir}/etc/ld.so.conf.d"
+ echo "/usr/lib/${_pkgname}/${pkgver}" > "${pkgdir}/etc/ld.so.conf.d/${_pkgname}.conf"
+}
diff --git a/octave-gcc6.patch b/octave-gcc6.patch
new file mode 100644
index 000000000000..2c59c42f4b07
--- /dev/null
+++ b/octave-gcc6.patch
@@ -0,0 +1,38 @@
+diff -up octave-4.0.0/libinterp/corefcn/pr-output.cc.abs octave-4.0.0/libinterp/corefcn/pr-output.cc
+--- octave-4.0.0/libinterp/corefcn/pr-output.cc.abs 2015-05-23 08:21:53.000000000 -0600
++++ octave-4.0.0/libinterp/corefcn/pr-output.cc 2016-02-21 08:59:30.966291273 -0700
+@@ -21,7 +21,7 @@ along with Octave; see the file COPYING.
+ */
+
+ #ifdef HAVE_CONFIG_H
+-#include <config.h>
++#include "config.h"
+ #endif
+
+ #include <cfloat>
+@@ -3145,6 +3145,14 @@ PRINT_INT_SCALAR_INTERNAL (uint32_t)
+ PRINT_INT_SCALAR_INTERNAL (int64_t)
+ PRINT_INT_SCALAR_INTERNAL (uint64_t)
+
++inline unsigned int abs (unsigned int x) { return x; }
++inline long unsigned int abs (long unsigned int x) { return x; }
++inline long long unsigned int abs (long long unsigned int x) { return x; }
++inline short unsigned int abs (short unsigned int x) { return x; }
++inline unsigned char abs (unsigned char x) { return x; }
++inline signed char abs (signed char x) { return abs((int)x); }
++inline short int abs (short int x) { return abs((int)x); }
++
+ template <class T>
+ /* static */ inline void
+ octave_print_internal_template (std::ostream& os, const intNDArray<T>& nda,
+diff -up octave-4.0.0/liboctave/cruft/Faddeeva/Faddeeva.hh.gnulib octave-4.0.0/liboctave/cruft/Faddeeva/Faddeeva.hh
+--- octave-4.0.0/liboctave/cruft/Faddeeva/Faddeeva.hh.gnulib 2015-05-23 08:21:53.000000000 -0600
++++ octave-4.0.0/liboctave/cruft/Faddeeva/Faddeeva.hh 2016-02-19 19:50:04.693811663 -0700
+@@ -27,6 +27,7 @@
+ #ifndef FADDEEVA_HH
+ #define FADDEEVA_HH 1
+
++#include <math.h>
+ #include <complex>
+
+ namespace Faddeeva {
diff --git a/octave-gnulib-fixes.diff b/octave-gnulib-fixes.diff
new file mode 100644
index 000000000000..038c2239bd70
--- /dev/null
+++ b/octave-gnulib-fixes.diff
@@ -0,0 +1,592 @@
+diff -ru octave-4.0.3.orig/libgnu/Makefile.in octave-4.0.3/libgnu/Makefile.in
+--- octave-4.0.3.orig/libgnu/Makefile.in 2016-07-01 20:44:48.000000000 +0200
++++ octave-4.0.3/libgnu/Makefile.in 2018-03-01 11:26:53.437030700 +0100
+@@ -932,7 +932,7 @@
+ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
+ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
+ HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@
+-HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@
++HAVE_DECL_LOCALTIME_R = 1
+ HAVE_DECL_LOG10L = @HAVE_DECL_LOG10L@
+ HAVE_DECL_LOG2 = @HAVE_DECL_LOG2@
+ HAVE_DECL_LOG2F = @HAVE_DECL_LOG2F@
+diff -ru octave-4.0.3.orig/libgnu/mktime.c octave-4.0.3/libgnu/mktime.c
+--- octave-4.0.3.orig/libgnu/mktime.c 2016-07-01 20:43:44.000000000 +0200
++++ octave-4.0.3/libgnu/mktime.c 2018-03-01 08:51:30.571844300 +0100
+@@ -34,6 +34,7 @@
+ # define LEAP_SECONDS_POSSIBLE 1
+ #endif
+
++#define _POSIX_C_SOURCE 1
+ #include <time.h>
+
+ #include <limits.h>
+diff -ru octave-4.0.3.orig/libgnu/strptime.c octave-4.0.3/libgnu/strptime.c
+--- octave-4.0.3.orig/libgnu/strptime.c 2016-07-01 20:43:45.000000000 +0200
++++ octave-4.0.3/libgnu/strptime.c 2018-03-01 08:53:08.758545200 +0100
+@@ -19,6 +19,7 @@
+ # include <config.h>
+ #endif
+
++#define _POSIX_C_SOURCE 1
+ #include <time.h>
+
+ #include <assert.h>
+diff -ru octave-4.0.3.orig/libgnu/time.in.h octave-4.0.3/libgnu/time.in.h
+--- octave-4.0.3.orig/libgnu/time.in.h 2016-07-01 20:43:45.000000000 +0200
++++ octave-4.0.3/libgnu/time.in.h 2018-03-01 09:27:49.362764000 +0100
+@@ -31,12 +31,14 @@
+ && !defined __MINGW32__) \
+ || defined _@GUARD_PREFIX@_TIME_H)
+
++#define _POSIX_C_SOURCE 1
+ # @INCLUDE_NEXT@ @NEXT_TIME_H@
+
+ #else
+
+ # define _@GUARD_PREFIX@_TIME_H
+
++#define _POSIX_C_SOURCE 1
+ # @INCLUDE_NEXT@ @NEXT_TIME_H@
+
+ /* NetBSD 5.0 mis-defines NULL. */
+diff -ru octave-4.0.3.orig/libgnu/time_rz.c octave-4.0.3/libgnu/time_rz.c
+--- octave-4.0.3.orig/libgnu/time_rz.c 2016-07-01 20:43:42.000000000 +0200
++++ octave-4.0.3/libgnu/time_rz.c 2018-03-01 08:53:45.508591900 +0100
+@@ -24,6 +24,7 @@
+
+ #include <config.h>
+
++#define _POSIX_C_SOURCE 1
+ #include <time.h>
+
+ #include <errno.h>
+diff -ru octave-4.0.3.orig/libgnu/timegm.c octave-4.0.3/libgnu/timegm.c
+--- octave-4.0.3.orig/libgnu/timegm.c 2016-07-01 20:43:42.000000000 +0200
++++ octave-4.0.3/libgnu/timegm.c 2018-03-01 08:54:31.977398700 +0100
+@@ -20,6 +20,7 @@
+ # include <config.h>
+ #endif
+
++#define _POSIX_C_SOURCE 1
+ #include <time.h>
+
+ #ifdef _LIBC
+diff -ru octave-4.0.3.orig/libinterp/corefcn/data.cc octave-4.0.3/libinterp/corefcn/data.cc
+--- octave-4.0.3.orig/libinterp/corefcn/data.cc 2016-07-01 20:40:27.000000000 +0200
++++ octave-4.0.3/libinterp/corefcn/data.cc 2018-03-01 08:13:34.078298700 +0100
+@@ -4718,7 +4718,7 @@
+ else
+ {
+ int expon;
+- gnulib::frexpf (val, &expon);
++ frexpf (val, &expon);
+ epsval(i) = std::pow (2.0f,
+ static_cast<float> (expon - 24));
+ }
+@@ -4744,7 +4744,7 @@
+ else
+ {
+ int expon;
+- gnulib::frexp (val, &expon);
++ frexp (val, &expon);
+ epsval(i) = std::pow (2.0,
+ static_cast<double> (expon - 53));
+ }
+diff -ru octave-4.0.3.orig/libinterp/corefcn/gcd.cc octave-4.0.3/libinterp/corefcn/gcd.cc
+--- octave-4.0.3.orig/libinterp/corefcn/gcd.cc 2016-04-20 20:23:57.000000000 +0200
++++ octave-4.0.3/libinterp/corefcn/gcd.cc 2018-03-01 08:13:34.092947000 +0100
+@@ -64,8 +64,8 @@
+ divide (const std::complex<FP>& a, const std::complex<FP>& b,
+ std::complex<FP>& q, std::complex<FP>& r)
+ {
+- FP qr = gnulib::floor ((a/b).real () + 0.5);
+- FP qi = gnulib::floor ((a/b).imag () + 0.5);
++ FP qr = floor ((a/b).real () + 0.5);
++ FP qi = floor ((a/b).imag () + 0.5);
+
+ q = std::complex<FP> (qr, qi);
+
+@@ -131,7 +131,7 @@
+
+ while (bb != 0)
+ {
+- double qq = gnulib::floor (aa / bb);
++ double qq = floor (aa / bb);
+ double tt = fmod (aa, bb);
+
+ aa = bb;
+diff -ru octave-4.0.3.orig/libinterp/corefcn/graphics.cc octave-4.0.3/libinterp/corefcn/graphics.cc
+--- octave-4.0.3.orig/libinterp/corefcn/graphics.cc 2016-04-20 20:23:57.000000000 +0200
++++ octave-4.0.3/libinterp/corefcn/graphics.cc 2018-03-01 08:13:34.124344800 +0100
+@@ -6876,7 +6876,7 @@
+ }
+ else
+ {
+- b = static_cast<int> (gnulib::floor (std::log10 (std::abs (x))));
++ b = static_cast<int> (floor (std::log10 (std::abs (x))));
+ a = x / std::pow (10.0, b);
+ }
+ }
+@@ -6974,14 +6974,14 @@
+ if (min_val > 0)
+ {
+ // Log plots with all positive data
+- min_val = pow (10, gnulib::floor (log10 (min_val)));
++ min_val = pow (10, floor (log10 (min_val)));
+ max_val = pow (10, std::ceil (log10 (max_val)));
+ }
+ else
+ {
+ // Log plots with all negative data
+ min_val = -pow (10, std::ceil (log10 (-min_val)));
+- max_val = -pow (10, gnulib::floor (log10 (-max_val)));
++ max_val = -pow (10, floor (log10 (-max_val)));
+ }
+ }
+ else
+@@ -7000,7 +7000,7 @@
+ }
+
+ double tick_sep = calc_tick_sep (min_val , max_val);
+- double min_tick = gnulib::floor (min_val / tick_sep);
++ double min_tick = floor (min_val / tick_sep);
+ double max_tick = std::ceil (max_val / tick_sep);
+ // Prevent round-off from cropping ticks
+ min_val = std::min (min_val, tick_sep * min_tick);
+@@ -7062,7 +7062,7 @@
+ else
+ tick_sep = calc_tick_sep (lo , hi);
+
+- int i1 = static_cast<int> (gnulib::floor (lo / tick_sep));
++ int i1 = static_cast<int> (floor (lo / tick_sep));
+ int i2 = static_cast<int> (std::ceil (hi / tick_sep));
+
+ if (limmode_is_auto)
+@@ -7143,9 +7143,9 @@
+ for (int i = 0; i < values.numel (); i++)
+ {
+ if (values(i) < 0.)
+- exponent = gnulib::floor (std::log10 (-values(i)));
++ exponent = floor (std::log10 (-values(i)));
+ else
+- exponent = gnulib::floor (std::log10 (values(i)));
++ exponent = floor (std::log10 (values(i)));
+ significand = values(i) * std::pow (10., -exponent);
+ os.str (std::string ());
+ os << significand;
+diff -ru octave-4.0.3.orig/libinterp/corefcn/pr-output.cc octave-4.0.3/libinterp/corefcn/pr-output.cc
+--- octave-4.0.3.orig/libinterp/corefcn/pr-output.cc 2016-04-20 20:23:56.000000000 +0200
++++ octave-4.0.3/libinterp/corefcn/pr-output.cc 2018-03-01 08:13:34.139958300 +0100
+@@ -238,7 +238,7 @@
+ if (x != 0)
+ {
+ double absval = (x < 0.0 ? -x : x);
+- int logabsval = static_cast<int> (gnulib::floor (log10 (absval)));
++ int logabsval = static_cast<int> (floor (log10 (absval)));
+ /* Avoid using modulo function with negative arguments for portability.
+ * See extended comment at calc_scale_exp */
+ if (logabsval < 0.0)
+@@ -254,7 +254,7 @@
+ {
+ return 1 + (print_eng
+ ? engineering_exponent (x)
+- : static_cast<int> (gnulib::floor (log10 (x))));
++ : static_cast<int> (floor (log10 (x))));
+ }
+
+ class
+@@ -3258,7 +3258,7 @@
+ {
+ int new_digits
+ = static_cast<int>
+- (gnulib::floor (log10 (double (abs (nda(i).value ()))) + 1.0));
++ (floor (log10 (double (abs (nda(i).value ()))) + 1.0));
+
+ if (new_digits > digits)
+ digits = new_digits;
+diff -ru octave-4.0.3.orig/libinterp/corefcn/quadcc.cc octave-4.0.3/libinterp/corefcn/quadcc.cc
+--- octave-4.0.3.orig/libinterp/corefcn/quadcc.cc 2016-04-20 20:23:56.000000000 +0200
++++ octave-4.0.3/libinterp/corefcn/quadcc.cc 2018-03-01 08:13:34.155680300 +0100
+@@ -1673,7 +1673,7 @@
+ wrap = true;
+ for (i = 0; i < nivals + 1; i++)
+ if (xisinf (iivals[i]))
+- iivals[i] = gnulib::copysign (1.0, iivals[i]);
++ iivals[i] = copysign (1.0, iivals[i]);
+ else
+ iivals[i] = 2.0 * atan (iivals[i]) / M_PI;
+ }
+@@ -2037,7 +2037,7 @@
+ && ivl->c[0] / iv->c[0] > 2);
+ if (ivl->ndiv > ndiv_max && 2 * ivl->ndiv > ivl->rdepth)
+ {
+- igral = gnulib::copysign (octave_Inf, igral);
++ igral = copysign (octave_Inf, igral);
+ warning ("quadcc: divergent integral detected");
+ break;
+ }
+@@ -2133,7 +2133,7 @@
+ && ivr->c[0] / iv->c[0] > 2);
+ if (ivr->ndiv > ndiv_max && 2 * ivr->ndiv > ivr->rdepth)
+ {
+- igral = gnulib::copysign (octave_Inf, igral);
++ igral = copysign (octave_Inf, igral);
+ warning ("quadcc: divergent integral detected");
+ break;
+ }
+diff -ru octave-4.0.3.orig/libinterp/corefcn/rand.cc octave-4.0.3/libinterp/corefcn/rand.cc
+--- octave-4.0.3.orig/libinterp/corefcn/rand.cc 2016-04-20 20:23:56.000000000 +0200
++++ octave-4.0.3/libinterp/corefcn/rand.cc 2018-03-01 08:13:34.186606100 +0100
+@@ -1205,7 +1205,7 @@
+ for (octave_idx_type i = 0; i < m; i++)
+ {
+ octave_idx_type k = i +
+- gnulib::floor (rvec[i] * (n - i));
++ floor (rvec[i] * (n - i));
+
+ //For shuffling first m entries, no need to use extra
+ //storage
+@@ -1229,7 +1229,7 @@
+ for (octave_idx_type i = 0; i < m; i++)
+ {
+ octave_idx_type k = i +
+- gnulib::floor (rvec[i] * (n - i));
++ floor (rvec[i] * (n - i));
+ std::swap (ivec[i], ivec[k]);
+ }
+ }
+diff -ru octave-4.0.3.orig/libinterp/octave-value/ov-cell.cc octave-4.0.3/libinterp/octave-value/ov-cell.cc
+--- octave-4.0.3.orig/libinterp/octave-value/ov-cell.cc 2016-04-20 20:23:57.000000000 +0200
++++ octave-4.0.3/libinterp/octave-value/ov-cell.cc 2018-03-01 08:13:34.202242900 +0100
+@@ -1141,7 +1141,7 @@
+ for (octave_idx_type i = 0; i < nel; i++)
+ {
+ std::ostringstream buf;
+- int digits = static_cast<int> (gnulib::floor (::log10 (static_cast<double>
++ int digits = static_cast<int> (floor (::log10 (static_cast<double>
+ (nel)) + 1.0));
+ buf << "_" << std::setw (digits) << std::setfill ('0') << i;
+ std::string s = buf.str ();
+diff -ru octave-4.0.3.orig/libinterp/octave-value/ov-float.cc octave-4.0.3/libinterp/octave-value/ov-float.cc
+--- octave-4.0.3.orig/libinterp/octave-value/ov-float.cc 2016-04-20 20:23:57.000000000 +0200
++++ octave-4.0.3/libinterp/octave-value/ov-float.cc 2018-03-01 08:13:34.218031200 +0100
+@@ -318,7 +318,7 @@
+ SCALAR_MAPPER (exp, ::expf);
+ SCALAR_MAPPER (expm1, ::expm1f);
+ SCALAR_MAPPER (fix, ::fix);
+- SCALAR_MAPPER (floor, gnulib::floorf);
++ SCALAR_MAPPER (floor, floorf);
+ SCALAR_MAPPER (log, rc_log);
+ SCALAR_MAPPER (log2, rc_log2);
+ SCALAR_MAPPER (log10, rc_log10);
+diff -ru octave-4.0.3.orig/libinterp/octave-value/ov-scalar.cc octave-4.0.3/libinterp/octave-value/ov-scalar.cc
+--- octave-4.0.3.orig/libinterp/octave-value/ov-scalar.cc 2016-04-20 20:23:57.000000000 +0200
++++ octave-4.0.3/libinterp/octave-value/ov-scalar.cc 2018-03-01 08:13:34.233708600 +0100
+@@ -340,7 +340,7 @@
+ SCALAR_MAPPER (exp, ::exp);
+ SCALAR_MAPPER (expm1, ::expm1);
+ SCALAR_MAPPER (fix, ::fix);
+- SCALAR_MAPPER (floor, gnulib::floor);
++ SCALAR_MAPPER (floor, floor);
+ SCALAR_MAPPER (log, rc_log);
+ SCALAR_MAPPER (log2, rc_log2);
+ SCALAR_MAPPER (log10, rc_log10);
+diff -ru octave-4.0.3.orig/liboctave/array/Range.cc octave-4.0.3/liboctave/array/Range.cc
+--- octave-4.0.3.orig/liboctave/array/Range.cc 2016-04-20 20:23:56.000000000 +0200
++++ octave-4.0.3/liboctave/array/Range.cc 2018-03-01 08:13:34.249575500 +0100
+@@ -495,11 +495,11 @@
+
+ double rmax = q / (2.0 - ct);
+
+- double t1 = 1.0 + gnulib::floor (x);
++ double t1 = 1.0 + floor (x);
+ t1 = (ct / q) * (t1 < 0.0 ? -t1 : t1);
+ t1 = rmax < t1 ? rmax : t1;
+ t1 = ct > t1 ? ct : t1;
+- t1 = gnulib::floor (x + t1);
++ t1 = floor (x + t1);
+
+ if (x <= 0.0 || (t1 - x) < rmax)
+ return t1;
+diff -ru octave-4.0.3.orig/liboctave/cruft/Faddeeva/Faddeeva.cc octave-4.0.3/liboctave/cruft/Faddeeva/Faddeeva.cc
+--- octave-4.0.3.orig/liboctave/cruft/Faddeeva/Faddeeva.cc 2016-04-20 20:23:56.000000000 +0200
++++ octave-4.0.3/liboctave/cruft/Faddeeva/Faddeeva.cc 2018-03-01 08:13:34.265323200 +0100
+@@ -210,8 +210,8 @@
+ // has to do with floor(-0), which doesn't occur in the usage below, but
+ // the Octave developers prefer that we silence the warning.
+ # ifdef GNULIB_NAMESPACE
+-# define floor GNULIB_NAMESPACE::floor
+-# define log GNULIB_NAMESPACE::log
++# define floor ::floor
++# define log ::log
+ # endif
+
+ #else // !__cplusplus, i.e. pure C (requires C99 features)
+diff -ru octave-4.0.3.orig/liboctave/numeric/lo-mappers.cc octave-4.0.3/liboctave/numeric/lo-mappers.cc
+--- octave-4.0.3.orig/liboctave/numeric/lo-mappers.cc 2016-04-20 20:23:57.000000000 +0200
++++ octave-4.0.3/liboctave/numeric/lo-mappers.cc 2018-03-01 08:13:34.280819400 +0100
+@@ -45,24 +45,24 @@
+ double
+ xtrunc (double x)
+ {
+- return gnulib::trunc (x);
++ return trunc (x);
+ }
+
+ double
+ xcopysign (double x, double y)
+ {
+- return gnulib::copysign (x, y);
++ return copysign (x, y);
+ }
+
+ double xfloor (double x)
+ {
+- return gnulib::floor (x);
++ return floor (x);
+ }
+
+ double
+ xround (double x)
+ {
+- return gnulib::round (x);
++ return round (x);
+ }
+
+ double
+@@ -92,7 +92,7 @@
+ double
+ xlog2 (double x)
+ {
+- return gnulib::log2 (x);
++ return log2 (x);
+ }
+
+ Complex
+@@ -101,7 +101,7 @@
+ #if defined (M_LN2)
+ static double ln2 = M_LN2;
+ #else
+- static double ln2 = gnulib::log (2);
++ static double ln2 = log (2);
+ #endif
+
+ return std::log (x) / ln2;
+@@ -116,7 +116,7 @@
+ #if defined (M_LN2)
+ static double ln2 = M_LN2;
+ #else
+- static double ln2 = gnulib::log (2);
++ static double ln2 = log (2);
+ #endif
+
+ return exp (x * ln2);
+@@ -126,7 +126,7 @@
+ double
+ xlog2 (double x, int& exp)
+ {
+- return gnulib::frexp (x, &exp);
++ return frexp (x, &exp);
+ }
+
+ Complex
+@@ -280,24 +280,24 @@
+ float
+ xtrunc (float x)
+ {
+- return gnulib::truncf (x);
++ return truncf (x);
+ }
+
+ float
+ xcopysign (float x, float y)
+ {
+- return gnulib::copysignf (x, y);
++ return copysignf (x, y);
+ }
+
+ float xfloor (float x)
+ {
+- return gnulib::floorf (x);
++ return floorf (x);
+ }
+
+ float
+ xround (float x)
+ {
+- return gnulib::roundf (x);
++ return roundf (x);
+ }
+
+ float
+@@ -327,7 +327,7 @@
+ float
+ xlog2 (float x)
+ {
+- return gnulib::log2f (x);
++ return log2f (x);
+ }
+
+ FloatComplex
+@@ -363,7 +363,7 @@
+ float
+ xlog2 (float x, int& exp)
+ {
+- return gnulib::frexpf (x, &exp);
++ return frexpf (x, &exp);
+ }
+
+ FloatComplex
+@@ -561,7 +561,7 @@
+ rc_log (double x)
+ {
+ const double pi = 3.14159265358979323846;
+- return x < 0.0 ? Complex (gnulib::log (-x), pi) : Complex (gnulib::log (x));
++ return x < 0.0 ? Complex (log (-x), pi) : Complex (log (x));
+ }
+
+ FloatComplex
+@@ -569,8 +569,8 @@
+ {
+ const float pi = 3.14159265358979323846f;
+ return (x < 0.0f
+- ? FloatComplex (gnulib::logf (-x), pi)
+- : FloatComplex (gnulib::logf (x)));
++ ? FloatComplex (logf (-x), pi)
++ : FloatComplex (logf (x)));
+ }
+
+ Complex
+diff -ru octave-4.0.3.orig/liboctave/numeric/lo-mappers.h octave-4.0.3/liboctave/numeric/lo-mappers.h
+--- octave-4.0.3.orig/liboctave/numeric/lo-mappers.h 2016-04-20 20:23:57.000000000 +0200
++++ octave-4.0.3/liboctave/numeric/lo-mappers.h 2018-03-01 08:13:34.296672500 +0100
+@@ -377,7 +377,7 @@
+ T
+ xsignbit (T x)
+ {
+- return signbit (x);
++ return std::signbit (x);
+ }
+
+ #endif
+diff -ru octave-4.0.3.orig/liboctave/numeric/lo-specfun.cc octave-4.0.3/liboctave/numeric/lo-specfun.cc
+--- octave-4.0.3.orig/liboctave/numeric/lo-specfun.cc 2016-04-20 20:23:57.000000000 +0200
++++ octave-4.0.3/liboctave/numeric/lo-specfun.cc 2018-03-01 08:13:34.312276100 +0100
+@@ -633,7 +633,7 @@
+ retval = 2 * (s + 1) * u;
+ }
+ else
+- retval = gnulib::log (1 + x);
++ retval = log (1 + x);
+
+ return retval;
+ }
+@@ -692,7 +692,7 @@
+ retval = 2 * (s + 1.0f) * u;
+ }
+ else
+- retval = gnulib::logf (1.0f + x);
++ retval = logf (1.0f + x);
+
+ return retval;
+ }
+@@ -2978,7 +2978,7 @@
+ {
+ const double pi = 3.14159265358979323846;
+ return (x < -1.0
+- ? Complex (gnulib::log (-(1.0 + x)), pi)
++ ? Complex (log (-(1.0 + x)), pi)
+ : Complex (log1p (x)));
+ }
+
+@@ -2986,7 +2986,7 @@
+ {
+ const float pi = 3.14159265358979323846f;
+ return (x < -1.0f
+- ? FloatComplex (gnulib::logf (-(1.0f + x)), pi)
++ ? FloatComplex (logf (-(1.0f + x)), pi)
+ : FloatComplex (log1pf (x)));
+ }
+
+@@ -3040,7 +3040,7 @@
+ else if (ax < 1.0)
+ {
+ // Tail region.
+- const double q = sqrt (-2*gnulib::log (0.5*(1-ax)));
++ const double q = sqrt (-2*log (0.5*(1-ax)));
+ const double yn = ((((c[0]*q + c[1])*q + c[2])*q + c[3])*q + c[4])*q + c[5];
+ const double yd = (((d[0]*q + d[1])*q + d[2])*q + d[3])*q + 1.0;
+ y = yn / yd * signum (-x);
+@@ -3119,8 +3119,8 @@
+ {
+ // Tail region.
+ const double q = (x < 1
+- ? sqrt (-2*gnulib::log (0.5*x))
+- : sqrt (-2*gnulib::log (0.5*(2-x))));
++ ? sqrt (-2*log (0.5*x))
++ : sqrt (-2*log (0.5*(2-x))));
+
+ const double yn = ((((c[0]*q + c[1])*q + c[2])*q + c[3])*q + c[4])*q + c[5];
+
+@@ -3243,8 +3243,8 @@
+
+ if (temp <= acu && temp <= acu * value)
+ {
+- value = value * exp (pp * gnulib::log (xx)
+- + (qq - 1.0) * gnulib::log (cx) - beta) / pp;
++ value = value * exp (pp * log (xx)
++ + (qq - 1.0) * log (cx) - beta) / pp;
+
+ if (indx)
+ {
+@@ -3342,7 +3342,7 @@
+
+ // Calculate the initial approximation.
+
+- r = sqrt (- gnulib::log (a * a));
++ r = sqrt (- log (a * a));
+
+ ycur = r - (2.30753 + 0.27061 * r) / (1.0 + (0.99229 + 0.04481 * r) * r);
+
+@@ -3363,7 +3363,7 @@
+
+ if (t <= 0.0)
+ {
+- value = 1.0 - exp ((gnulib::log ((1.0 - a) * qq) + beta) / qq);
++ value = 1.0 - exp ((log ((1.0 - a) * qq) + beta) / qq);
+ }
+ else
+ {
+@@ -3371,7 +3371,7 @@
+
+ if (t <= 1.0)
+ {
+- value = exp ((gnulib::log (a * pp) + beta) / pp);
++ value = exp ((log (a * pp) + beta) / pp);
+ }
+ else
+ {
+@@ -3413,8 +3413,8 @@
+ }
+
+ xin = value;
+- ycur = (ycur - a) * exp (beta + r * gnulib::log (xin)
+- + t * gnulib::log (1.0 - xin));
++ ycur = (ycur - a) * exp (beta + r * log (xin)
++ + t * log (1.0 - xin));
+
+ if (ycur * yprev <= 0.0)
+ {
+diff -ru octave-4.0.3.orig/src/Makefile.in octave-4.0.3/src/Makefile.in
+--- octave-4.0.3.orig/src/Makefile.in 2016-07-01 20:44:53.000000000 +0200
++++ octave-4.0.3/src/Makefile.in 2018-03-02 03:32:36.955223700 +0100
+@@ -1334,7 +1334,7 @@
+ # List of libraries and their special compilation flags
+ LIBOCTINTERP = @LIBOCTINTERP@
+ LIBPRE = @LIBPRE@
+-LIBS = @LIBS@
++LIBS = @LIBS@ -lz
+ LIBSOCKET = @LIBSOCKET@
+ LIBTOOL = @LIBTOOL@
+ LIB_CRYPTO = @LIB_CRYPTO@