[Pkg-octave-commit] [octave-communications] 04/06: d/p/octave-4.2.patch: new patch, fixes FTBFS against Octave 4.2.
Sébastien Villemot
sebastien at debian.org
Mon Jul 3 13:49:55 UTC 2017
This is an automated email from the git hooks/post-receive script.
sebastien pushed a commit to branch master
in repository octave-communications.
commit 9384715ae617900d7fc95168306d8ebcbc45465d
Author: Sébastien Villemot <sebastien at debian.org>
Date: Mon Jul 3 15:38:57 2017 +0200
d/p/octave-4.2.patch: new patch, fixes FTBFS against Octave 4.2.
Closes: #867014
---
debian/patches/octave-4.2.patch | 579 ++++++++++++++++++++++++++++++++++++++++
debian/patches/series | 1 +
2 files changed, 580 insertions(+)
diff --git a/debian/patches/octave-4.2.patch b/debian/patches/octave-4.2.patch
new file mode 100644
index 0000000..6e471f9
--- /dev/null
+++ b/debian/patches/octave-4.2.patch
@@ -0,0 +1,579 @@
+Description: Fix FTBFS against Octave 4.2
+ This patch includes temporary fixes applied to MXE octave, until a better fix
+ is implemented upstream.
+Origin: http://hg.octave.org/mxe-octave/file/f7fce04ebafa/src/of-communications-1-fixes.patch
+ http://hg.octave.org/mxe-octave/file/f7fce04ebafa/src/of-communications-2-fixes.patch
+Bug: https://savannah.gnu.org/bugs/?func=detailitem&item_id=47267
+Bug-Debian: https://bugs.debian.org/867014
+Reviewed-by: Sébastien Villemot <sebastien at debian.org>
+Last-Update: 2017-07-03
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- /dev/null
++++ b/src/base-lu.cc
+@@ -0,0 +1,191 @@
++/*
++
++Copyright (C) 1996-2015 John W. Eaton
++Copyright (C) 2009 VZLU Prague
++
++This file is part of Octave.
++
++Octave 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 of the License, or (at your
++option) any later version.
++
++Octave is distributed in the hope that it will be useful, but WITHOUT
++ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++for more details.
++
++You should have received a copy of the GNU General Public License
++along with Octave; see the file COPYING. If not, see
++<http://www.gnu.org/licenses/>.
++
++*/
++
++#ifdef HAVE_CONFIG_H
++#include <config.h>
++#endif
++
++#include "base-lu.h"
++
++template <class lu_type>
++base_lu<lu_type>::base_lu (const lu_type& l, const lu_type& u,
++ const PermMatrix& p)
++ : a_fact (u), l_fact (l), ipvt (p.transpose ().col_perm_vec ())
++{
++ if (l.columns () != u.rows ())
++ (*current_liboctave_error_handler) ("lu: dimension mismatch");
++}
++
++template <class lu_type>
++bool
++base_lu <lu_type> :: packed (void) const
++{
++ return l_fact.dims () == dim_vector ();
++}
++
++template <class lu_type>
++void
++base_lu <lu_type> :: unpack (void)
++{
++ if (packed ())
++ {
++ l_fact = L ();
++ a_fact = U (); // FIXME: sub-optimal
++ ipvt = getp ();
++ }
++}
++
++template <class lu_type>
++lu_type
++base_lu <lu_type> :: L (void) const
++{
++ if (packed ())
++ {
++ octave_idx_type a_nr = a_fact.rows ();
++ octave_idx_type a_nc = a_fact.cols ();
++ octave_idx_type mn = (a_nr < a_nc ? a_nr : a_nc);
++
++ lu_type l (a_nr, mn, lu_elt_type (0.0));
++
++ for (octave_idx_type i = 0; i < a_nr; i++)
++ {
++ if (i < a_nc)
++ l.xelem (i, i) = 1.0;
++
++ for (octave_idx_type j = 0; j < (i < a_nc ? i : a_nc); j++)
++ l.xelem (i, j) = a_fact.xelem (i, j);
++ }
++
++ return l;
++ }
++ else
++ return l_fact;
++}
++
++template <class lu_type>
++lu_type
++base_lu <lu_type> :: U (void) const
++{
++ if (packed ())
++ {
++ octave_idx_type a_nr = a_fact.rows ();
++ octave_idx_type a_nc = a_fact.cols ();
++ octave_idx_type mn = (a_nr < a_nc ? a_nr : a_nc);
++
++ lu_type u (mn, a_nc, lu_elt_type (0.0));
++
++ for (octave_idx_type i = 0; i < mn; i++)
++ {
++ for (octave_idx_type j = i; j < a_nc; j++)
++ u.xelem (i, j) = a_fact.xelem (i, j);
++ }
++
++ return u;
++ }
++ else
++ return a_fact;
++}
++
++template <class lu_type>
++lu_type
++base_lu <lu_type> :: Y (void) const
++{
++ if (! packed ())
++ (*current_liboctave_error_handler)
++ ("lu: Y () not implemented for unpacked form");
++ return a_fact;
++}
++
++template <class lu_type>
++Array<octave_idx_type>
++base_lu <lu_type> :: getp (void) const
++{
++ if (packed ())
++ {
++ octave_idx_type a_nr = a_fact.rows ();
++
++ Array<octave_idx_type> pvt (dim_vector (a_nr, 1));
++
++ for (octave_idx_type i = 0; i < a_nr; i++)
++ pvt.xelem (i) = i;
++
++ for (octave_idx_type i = 0; i < ipvt.length (); i++)
++ {
++ octave_idx_type k = ipvt.xelem (i);
++
++ if (k != i)
++ {
++ octave_idx_type tmp = pvt.xelem (k);
++ pvt.xelem (k) = pvt.xelem (i);
++ pvt.xelem (i) = tmp;
++ }
++ }
++
++ return pvt;
++ }
++ else
++ return ipvt;
++}
++
++template <class lu_type>
++PermMatrix
++base_lu <lu_type> :: P (void) const
++{
++ return PermMatrix (getp (), false);
++}
++
++template <class lu_type>
++ColumnVector
++base_lu <lu_type> :: P_vec (void) const
++{
++ octave_idx_type a_nr = a_fact.rows ();
++
++ ColumnVector p (a_nr);
++
++ Array<octave_idx_type> pvt = getp ();
++
++ for (octave_idx_type i = 0; i < a_nr; i++)
++ p.xelem (i) = static_cast<double> (pvt.xelem (i) + 1);
++
++ return p;
++}
++
++template <class lu_type>
++bool
++base_lu<lu_type>::regular (void) const
++{
++ bool retval = true;
++
++ octave_idx_type k = std::min (a_fact.rows (), a_fact.columns ());
++
++ for (octave_idx_type i = 0; i < k; i++)
++ {
++ if (a_fact(i, i) == lu_elt_type ())
++ {
++ retval = false;
++ break;
++ }
++ }
++
++ return retval;
++}
+--- /dev/null
++++ b/src/base-lu.h
+@@ -0,0 +1,87 @@
++/*
++
++Copyright (C) 1996-2015 John W. Eaton
++Copyright (C) 2009 VZLU Prague
++
++This file is part of Octave.
++
++Octave 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 of the License, or (at your
++option) any later version.
++
++Octave is distributed in the hope that it will be useful, but WITHOUT
++ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++for more details.
++
++You should have received a copy of the GNU General Public License
++along with Octave; see the file COPYING. If not, see
++<http://www.gnu.org/licenses/>.
++
++*/
++
++#if !defined (octave_base_lu_h)
++#define octave_base_lu_h 1
++
++#include "MArray.h"
++#include "dColVector.h"
++#include "PermMatrix.h"
++
++template <class lu_type>
++class
++base_lu
++{
++public:
++
++ typedef typename lu_type::element_type lu_elt_type;
++
++ base_lu (void)
++ : a_fact (), l_fact (), ipvt () { }
++
++ base_lu (const base_lu& a)
++ : a_fact (a.a_fact), l_fact (a.l_fact), ipvt (a.ipvt) { }
++
++ base_lu (const lu_type& l, const lu_type& u,
++ const PermMatrix& p);
++
++ base_lu& operator = (const base_lu& a)
++ {
++ if (this != &a)
++ {
++ a_fact = a.a_fact;
++ l_fact = a.l_fact;
++ ipvt = a.ipvt;
++ }
++ return *this;
++ }
++
++ virtual ~base_lu (void) { }
++
++ bool packed (void) const;
++
++ void unpack (void);
++
++ lu_type L (void) const;
++
++ lu_type U (void) const;
++
++ lu_type Y (void) const;
++
++ PermMatrix P (void) const;
++
++ ColumnVector P_vec (void) const;
++
++ bool regular (void) const;
++
++protected:
++
++ Array<octave_idx_type> getp (void) const;
++
++ lu_type a_fact;
++ lu_type l_fact;
++
++ Array<octave_idx_type> ipvt;
++};
++
++#endif
+--- a/src/galois-ops.h
++++ b/src/galois-ops.h
+@@ -21,6 +21,32 @@
+ #if !defined (galois_octave_ops_h)
+ #define galois_octave_ops_h 1
+
++#if ! defined (CAST_BINOP_ARGS)
++# define CAST_BINOP_ARGS(t1, t2) \
++ t1 v1 = dynamic_cast<t1> (a1); \
++ t2 v2 = dynamic_cast<t2> (a2)
++#endif
++
++#if ! defined (CAST_UNOP_ARG)
++# define CAST_UNOP_ARG(t) \
++ t v = dynamic_cast<t> (a)
++#endif
++
++#if ! defined (BINOPDECL)
++# define BINOPDECL(name, a1, a2) \
++ static octave_value \
++ CONCAT2(oct_binop_, name) (const octave_base_value& a1, \
++ const octave_base_value& a2)
++#endif
++
++#if ! defined (CATOPDECL)
++# define CATOPDECL(name, a1, a2) \
++ static octave_value \
++ CONCAT2(oct_catop_, name) (octave_base_value& a1, \
++ const octave_base_value& a2, \
++ const Array<octave_idx_type>& ra_idx)
++#endif
++
+ // Override the operator and function definition defines from Octave
+
+ #define DEFBINOP_OP_G(name, t1, t2, op) \
+--- a/src/galois.cc
++++ b/src/galois.cc
+@@ -27,7 +27,7 @@
+ #include "galoisfield.h"
+ #include "galois-def.h"
+
+-#include <octave/base-lu.cc>
++#include "base-lu.cc"
+
+ galois_field_list stored_galois_fields;
+
+--- a/src/galois.h
++++ b/src/galois.h
+@@ -22,10 +22,10 @@
+ #define octave_galois_int_h 1
+
+ #include <octave/config.h>
+-#include <octave/base-lu.h>
+ #include <octave/mx-base.h>
+
+ #include "galoisfield.h"
++#include "base-lu.h"
+
+ typedef void (*solve_singularity_handler) (double rcond);
+
+--- a/src/ov-galois.cc
++++ b/src/ov-galois.cc
+@@ -24,17 +24,37 @@
+ #include <octave/byte-swap.h>
+ #include <octave/gripes.h>
+ #include <octave/lo-ieee.h>
+-#include <octave/oct-hdf5.h>
+ #include <octave/oct-locbuf.h>
+ #include <octave/oct-obj.h>
+ #include <octave/ov.h>
+ #include <octave/pr-output.h>
+
+-#include <octave/ls-oct-ascii.h>
++
++#if defined(HAVE_OCTAVE_TEXT_H)
++# include <octave/ls-oct-text.h>
++#else
++# include <octave/ls-oct-ascii.h>
++#endif
+
+ #include "galois.h"
+ #include "ov-galois.h"
+
++#if defined (HAVE_HDF5)
++# if defined (HAVE_HDF5_H)
++# include <hdf5.h>
++# endif
++# include "oct-hdf5-types.h"
++# if defined (OCTAVE_ENABLE_64)
++# define H5T_NATIVE_IDX H5T_NATIVE_INT64
++# else
++# define H5T_NATIVE_IDX H5T_NATIVE_INT
++# endif
++#endif
++
++#if ! defined (X_CAST)
++# define X_CAST(T, E) (T) (E)
++#endif
++
+ #if defined (DEFINE_OCTAVE_ALLOCATOR)
+ DEFINE_OCTAVE_ALLOCATOR (octave_galois);
+ #endif
+--- a/src/syndtable.cc
++++ b/src/syndtable.cc
+@@ -20,8 +20,8 @@
+
+ #include <octave/oct.h>
+
+-#define COL_MAJ(N) (N / (SIZEOF_INT << 3))
+-#define COL_MIN(N) (N % (SIZEOF_INT << 3))
++#define COL_MAJ(N) (N / (sizeof (int) << 3))
++#define COL_MIN(N) (N % (sizeof (int) << 3))
+
+ Array<int>
+ get_errs (const int& nmin, const int& nmax, const int &nerrs)
+--- a/src/configure.ac
++++ b/src/configure.ac
+@@ -99,5 +99,21 @@ if test $comm_cv_octave_base_value_print
+ PKG_CPPFLAGS="$PKG_CPPFLAGS -DHAVE_OCTAVE_BASE_VALUE_PRINT_CONST=1"
+ fi
+
++comm_save_CXXFLAGS=$CXXFLAGS
++CXXFLAGS="$CXXFLAGS $comm_CXXFLAGS"
++AC_LANG_PUSH(C++)
++AC_CHECK_HEADER([octave/ls-oct-ascii.h], [PKG_CPPFLAGS="$PKG_CPPFLAGS -DHAVE_OCTAVE_ASCII_H=1"], [],
++[
++#include <octave/config.h>
++#incude <octave/ov.h>
++])
++AC_CHECK_HEADER([octave/ls-oct-text.h], [PKG_CPPFLAGS="$PKG_CPPFLAGS -DHAVE_OCTAVE_TEXT_H=1"], [],
++[
++#include <octave/config.h>
++#include <octave/ov.h>
++])
++AC_LANG_POP(C++)
++CXXFLAGS=$comm_save_CXXFLAGS
++
+ AC_CONFIG_FILES([Makefile])
+ AC_OUTPUT
+--- a/src/ov-galois.h
++++ b/src/ov-galois.h
+@@ -44,6 +44,10 @@ typedef int octave_hdf5_id;
+ #endif
+ #endif
+
++#if ! defined (OV_REP_TYPE)
++# define OV_REP_TYPE octave_base_value
++#endif
++
+ class octave_value_list;
+ class tree_walker;
+
+--- a/src/configure
++++ b/src/configure
+@@ -617,6 +617,7 @@ infodir
+ docdir
+ oldincludedir
+ includedir
++runstatedir
+ localstatedir
+ sharedstatedir
+ sysconfdir
+@@ -689,6 +690,7 @@ datadir='${datarootdir}'
+ sysconfdir='${prefix}/etc'
+ sharedstatedir='${prefix}/com'
+ localstatedir='${prefix}/var'
++runstatedir='${localstatedir}/run'
+ includedir='${prefix}/include'
+ oldincludedir='/usr/include'
+ docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+@@ -941,6 +943,15 @@ do
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
++ -runstatedir | --runstatedir | --runstatedi | --runstated \
++ | --runstate | --runstat | --runsta | --runst | --runs \
++ | --run | --ru | --r)
++ ac_prev=runstatedir ;;
++ -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
++ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
++ | --run=* | --ru=* | --r=*)
++ runstatedir=$ac_optarg ;;
++
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+@@ -1078,7 +1089,7 @@ fi
+ for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
+ datadir sysconfdir sharedstatedir localstatedir includedir \
+ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+- libdir localedir mandir
++ libdir localedir mandir runstatedir
+ do
+ eval ac_val=\$$ac_var
+ # Remove trailing slashes.
+@@ -1231,6 +1242,7 @@ Fine tuning of the installation director
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
++ --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+@@ -1385,6 +1397,37 @@ fi
+ as_fn_set_status $ac_retval
+
+ } # ac_fn_cxx_try_compile
++
++# ac_fn_cxx_check_header_compile LINENO HEADER VAR INCLUDES
++# ---------------------------------------------------------
++# Tests whether HEADER exists and can be compiled using the include files in
++# INCLUDES, setting the cache variable VAR accordingly.
++ac_fn_cxx_check_header_compile ()
++{
++ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
++$as_echo_n "checking for $2... " >&6; }
++if eval \${$3+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++$4
++#include <$2>
++_ACEOF
++if ac_fn_cxx_try_compile "$LINENO"; then :
++ eval "$3=yes"
++else
++ eval "$3=no"
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++fi
++eval ac_res=\$$3
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
++$as_echo "$ac_res" >&6; }
++ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
++
++} # ac_fn_cxx_check_header_compile
+ cat >config.log <<_ACEOF
+ This file contains any messages produced by compilers while
+ running configure, to aid debugging if configure makes a mistake.
+@@ -2595,6 +2638,42 @@ if test $comm_cv_octave_base_value_print
+ PKG_CPPFLAGS="$PKG_CPPFLAGS -DHAVE_OCTAVE_BASE_VALUE_PRINT_CONST=1"
+ fi
+
++comm_save_CXXFLAGS=$CXXFLAGS
++CXXFLAGS="$CXXFLAGS $comm_CXXFLAGS"
++ac_ext=cpp
++ac_cpp='$CXXCPP $CPPFLAGS'
++ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
++ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
++ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
++
++ac_fn_cxx_check_header_compile "$LINENO" "octave/ls-oct-ascii.h" "ac_cv_header_octave_ls_oct_ascii_h" "
++#include <octave/config.h>
++#incude <octave/ov.h>
++
++"
++if test "x$ac_cv_header_octave_ls_oct_ascii_h" = xyes; then :
++ PKG_CPPFLAGS="$PKG_CPPFLAGS -DHAVE_OCTAVE_ASCII_H=1"
++fi
++
++
++ac_fn_cxx_check_header_compile "$LINENO" "octave/ls-oct-text.h" "ac_cv_header_octave_ls_oct_text_h" "
++#include <octave/config.h>
++#include <octave/ov.h>
++
++"
++if test "x$ac_cv_header_octave_ls_oct_text_h" = xyes; then :
++ PKG_CPPFLAGS="$PKG_CPPFLAGS -DHAVE_OCTAVE_TEXT_H=1"
++fi
++
++
++ac_ext=c
++ac_cpp='$CPP $CPPFLAGS'
++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
++ac_compiler_gnu=$ac_cv_c_compiler_gnu
++
++CXXFLAGS=$comm_save_CXXFLAGS
++
+ ac_config_files="$ac_config_files Makefile"
+
+ cat >confcache <<\_ACEOF
diff --git a/debian/patches/series b/debian/patches/series
index 829ceb3..99ac092 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,2 +1,3 @@
info-dir-section.patch
random-seed-for-pdf-doc.patch
+octave-4.2.patch
--
Alioth's /home/groups/pkg-octave/bin/git-commit-notice on /srv/git.debian.org/git/pkg-octave/octave-communications.git
More information about the Pkg-octave-commit
mailing list