summaryrefslogtreecommitdiff
path: root/testing/octave
diff options
context:
space:
mode:
Diffstat (limited to 'testing/octave')
-rw-r--r--testing/octave/PKGBUILD54
-rw-r--r--testing/octave/buildfix.diff85
-rw-r--r--testing/octave/curlfix.patch10
-rw-r--r--testing/octave/imread.patch29
-rw-r--r--testing/octave/octave-3.4.0-gcc46.patch24
-rw-r--r--testing/octave/octave-gethelp.patch13
-rw-r--r--testing/octave/octave.install18
7 files changed, 233 insertions, 0 deletions
diff --git a/testing/octave/PKGBUILD b/testing/octave/PKGBUILD
new file mode 100644
index 000000000..cc4149860
--- /dev/null
+++ b/testing/octave/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 168503 2012-10-12 21:20:37Z andyrtr $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor : shining <shiningxc.at.gmail.com>
+# Contributor : cyberdune <cyberdune@gmail.com>
+
+pkgname=octave
+pkgver=3.6.2
+pkgrel=2
+pkgdesc="A high-level language, primarily intended for numerical computations."
+arch=('i686' 'x86_64')
+url="http://www.octave.org"
+license=('GPL')
+depends=('fftw' 'pcre' 'curl' 'lapack' 'libx11' 'graphicsmagick' 'glpk' 'hdf5' 'gcc-libs' 'qhull' 'fltk' 'suitesparse')
+makedepends=('texinfo' 'graphicsmagick' 'gcc-fortran' 'suitesparse' 'texlive-core')
+optdepends=('texinfo: for help-support in octave'
+ 'gnuplot: alternative plotting')
+source=("ftp://ftp.gnu.org/gnu/octave/octave-$pkgver.tar.bz2"
+ buildfix.diff
+ octave-gethelp.patch)
+options=('!emptydirs')
+install=octave.install
+sha1sums=('145fef0122268086727a60e1c33e29d56fd546d7'
+ 'a7cdba1e05fbdd182facdd804aeec37729255551'
+ 'd39d54763ac86114029f8bc5d60763d2adce27bb')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # patch by Gentoo http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/sci-mathematics/octave/files/octave-3.4.3-gets.patch?view=log
+ patch -Np0 -i ${srcdir}/buildfix.diff
+ # http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/sci-mathematics/octave/files/octave-3.4.3-help.patch?view=log
+ patch -Np0 -i ${srcdir}/octave-gethelp.patch
+
+ autoreconf -vfi
+
+ # http://www.nabble.com/Random-rounding-errors-td16010966.html
+ FFLAGS="-O -ffloat-store" \
+
+ ./configure --prefix=/usr --libexecdir=/usr/lib \
+ --enable-shared --disable-static \
+ --with-umfpack="-lumfpack -lsuitesparseconfig" # 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/testing/octave/buildfix.diff b/testing/octave/buildfix.diff
new file mode 100644
index 000000000..8288b7bec
--- /dev/null
+++ b/testing/octave/buildfix.diff
@@ -0,0 +1,85 @@
+--- libgnu/stdio.in.h.origs 2012-05-24 12:46:13.000000000 -0600
++++ libgnu/stdio.in.h 2012-05-24 16:29:54.813734894 -0600
+@@ -1,12 +1,10 @@
+-/* -*- buffer-read-only: t -*- vi: set ro: */
+-/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+ /* A GNU-like <stdio.h>.
+
+ Copyright (C) 2004, 2007-2012 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+- the Free Software Foundation; either version 3, or (at your option)
++ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+@@ -15,8 +13,7 @@
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+- along with this program; if not, write to the Free Software Foundation,
+- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
++ along with this program; if not, see <http://www.gnu.org/licenses/>. */
+
+ #if __GNUC__ >= 3
+ @PRAGMA_SYSTEM_HEADER@
+@@ -55,7 +52,8 @@
+ #include <stddef.h>
+
+ /* Get off_t and ssize_t. Needed on many systems, including glibc 2.8
+- and eglibc 2.11.2. */
++ and eglibc 2.11.2.
++ May also define off_t to a 64-bit type on native Windows. */
+ #include <sys/types.h>
+
+ /* The __attribute__ feature is available in gcc versions 2.5 and later.
+@@ -701,22 +699,11 @@ _GL_WARN_ON_USE (getline, "getline is un
+ # endif
+ #endif
+
+-#if @GNULIB_GETS@
+-# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
+-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+-# undef gets
+-# define gets rpl_gets
+-# endif
+-_GL_FUNCDECL_RPL (gets, char *, (char *s) _GL_ARG_NONNULL ((1)));
+-_GL_CXXALIAS_RPL (gets, char *, (char *s));
+-# else
+-_GL_CXXALIAS_SYS (gets, char *, (char *s));
+-# undef gets
+-# endif
+-_GL_CXXALIASWARN (gets);
+ /* It is very rare that the developer ever has full control of stdin,
+- so any use of gets warrants an unconditional warning. Assume it is
+- always declared, since it is required by C89. */
++ so any use of gets warrants an unconditional warning; besides, C11
++ removed it. */
++#undef gets
++#if HAVE_RAW_DECL_GETS
+ _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
+ #endif
+
+@@ -781,7 +768,7 @@ _GL_CXXALIASWARN (pclose);
+ #elif defined GNULIB_POSIXCHECK
+ # undef pclose
+ # if HAVE_RAW_DECL_PCLOSE
+-_GL_WARN_ON_USE (pclose, "popen is unportable - "
++_GL_WARN_ON_USE (pclose, "pclose is unportable - "
+ "use gnulib module pclose for more portability");
+ # endif
+ #endif
+@@ -1056,9 +1043,9 @@ _GL_WARN_ON_USE (snprintf, "snprintf is
+ # endif
+ #endif
+
+-/* Some people would argue that sprintf should be handled like gets
+- (for example, OpenBSD issues a link warning for both functions),
+- since both can cause security holes due to buffer overruns.
++/* Some people would argue that all sprintf uses should be warned about
++ (for example, OpenBSD issues a link warning for it),
++ since it can cause security holes due to buffer overruns.
+ However, we believe that sprintf can be used safely, and is more
+ efficient than snprintf in those safe cases; and as proof of our
+ belief, we use sprintf in several gnulib modules. So this header
diff --git a/testing/octave/curlfix.patch b/testing/octave/curlfix.patch
new file mode 100644
index 000000000..26f3d92f9
--- /dev/null
+++ b/testing/octave/curlfix.patch
@@ -0,0 +1,10 @@
+--- src/DLD-FUNCTIONS/urlwrite.cc.old 2011-07-02 16:39:22.466603778 +0200
++++ src/DLD-FUNCTIONS/urlwrite.cc 2011-07-02 16:39:54.543269859 +0200
+@@ -52,7 +52,6 @@
+
+ #include <curl/curl.h>
+ #include <curl/curlver.h>
+-#include <curl/types.h>
+ #include <curl/easy.h>
+
+ static int
diff --git a/testing/octave/imread.patch b/testing/octave/imread.patch
new file mode 100644
index 000000000..4a7b73ea0
--- /dev/null
+++ b/testing/octave/imread.patch
@@ -0,0 +1,29 @@
+--- src/DLD-FUNCTIONS/__magick_read__.cc.orig 2010-03-06 08:05:25.000000000 +0000
++++ src/DLD-FUNCTIONS/__magick_read__.cc 2009-08-25 09:26:01.000000000 +0100
+@@ -30,6 +30,7 @@
+ #include "defun-dld.h"
+ #include "error.h"
+ #include "ov-struct.h"
++#include "oct-env.h"
+
+ #ifdef HAVE_MAGICK
+
+@@ -359,6 +358,18 @@
+
+ #ifdef HAVE_MAGICK
+
++ static bool initialized = false;
++
++ if (! initialized)
++ {
++ std::string program_name = octave_env::get_program_invocation_name ();
++
++ Magick::InitializeMagick (program_name.c_str ());
++
++ initialized = true;
++ }
++
++
+ if (args.length () > 2 || args.length () < 1 || ! args(0).is_string ()
+ || nargout > 3)
+ {
diff --git a/testing/octave/octave-3.4.0-gcc46.patch b/testing/octave/octave-3.4.0-gcc46.patch
new file mode 100644
index 000000000..c174204ac
--- /dev/null
+++ b/testing/octave/octave-3.4.0-gcc46.patch
@@ -0,0 +1,24 @@
+diff -up octave-3.4.0/liboctave/oct-alloc.h.gcc46 octave-3.4.0/liboctave/oct-alloc.h
+--- octave-3.4.0/liboctave/oct-alloc.h.gcc46 2011-02-08 03:00:51.000000000 -0700
++++ octave-3.4.0/liboctave/oct-alloc.h 2011-02-08 09:41:23.984081687 -0700
+@@ -23,6 +23,8 @@ along with Octave; see the file COPYING.
+ #if !defined (octave_oct_alloc_h)
+ #define octave_oct_alloc_h 1
+
++#include <cstddef>
++
+ class
+ OCTAVE_API
+ octave_allocator
+diff -up octave-3.4.0/src/pr-output.cc.gcc46 octave-3.4.0/src/pr-output.cc
+--- octave-3.4.0/src/pr-output.cc.gcc46 2011-02-08 03:00:52.000000000 -0700
++++ octave-3.4.0/src/pr-output.cc 2011-02-08 09:55:16.149662744 -0700
+@@ -3024,7 +3024,7 @@ abs (T x)
+ }
+
+ #define INSTANTIATE_ABS(T) \
+- template /* static */ inline T abs (T)
++ template /* static */ T abs (T)
+
+ INSTANTIATE_ABS(signed char);
+ INSTANTIATE_ABS(short);
diff --git a/testing/octave/octave-gethelp.patch b/testing/octave/octave-gethelp.patch
new file mode 100644
index 000000000..c0e693abc
--- /dev/null
+++ b/testing/octave/octave-gethelp.patch
@@ -0,0 +1,13 @@
+Help parallel compilation
+patch by Sebastien Fabbro
+--- scripts/Makefile.am.orig 2011-06-09 22:27:22.688268651 +0100
++++ scripts/Makefile.am 2011-02-08 10:00:51.000000000 +0000
+@@ -316,7 +316,7 @@
+
+ gethelp_SOURCES = gethelp.cc
+
+-.DOCSTRINGS: $(FCN_FILES) $(GEN_FCN_FILES) mkdoc $(gethelp_SOURCES) Makefile
++.DOCSTRINGS: $(FCN_FILES) $(GEN_FCN_FILES) mkdoc $(gethelp_SOURCES) Makefile gethelp
+ @$(MAKE) $(AM_MAKEFLAGS) gethelp$(BUILD_EXEEXT)
+ if [ "x$(srcdir)" != "x." ] && [ -f $(srcdir)/DOCSTRINGS ] && [ ! -f DOCSTRINGS ]; then \
+ cp $(srcdir)/DOCSTRINGS DOCSTRINGS; \
diff --git a/testing/octave/octave.install b/testing/octave/octave.install
new file mode 100644
index 000000000..8ee77c430
--- /dev/null
+++ b/testing/octave/octave.install
@@ -0,0 +1,18 @@
+info_dir=/usr/share/info
+info_files=(octave.info octave.info-1 octave.info-2 octave.info-3 octave.info-4 octave.info-5)
+
+post_install() {
+ for f in ${info_files[@]}; do
+ install-info ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ for f in ${info_files[@]}; do
+ install-info --delete ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}