[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