#4 Update to 4.4.1
Closed 5 years ago by orion. Opened 5 years ago by orion.
rpms/ orion/octave 4.4  into  master

Update to 4.4.1
Orion Poplawski • 5 years ago  
file modified
+2
@@ -28,3 +28,5 @@ 

  /octave-4.2.0.tar.lz

  /octave-4.2.1.tar.lz

  /octave-4.2.2.tar.lz

+ /octave-4.4.1.tar.lz

+ /octave-4.4.1-docs.tar.gz

file modified
+3 -3
@@ -60,9 +60,9 @@ 

  if [ -e %{_builddir}/%{buildsubdir}/build/%{octpkg}-%{version}/*.metainfo.xml ] \

  then \

    echo "Found .metainfo.xml appdata file" \

-   mkdir -p %{buildroot}/%{_datadir}/appdata \

-   cp -p %{_builddir}/%{buildsubdir}/build/%{octpkg}-%{version}/*.metainfo.xml %{buildroot}/%{_datadir}/appdata/ \

-   appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/appdata/*.metainfo.xml \

+   mkdir -p %{buildroot}/%{_metainfodir} \

+   cp -p %{_builddir}/%{buildsubdir}/build/%{octpkg}-%{version}/*.metainfo.xml %{buildroot}/%{_metainfodir}/ \

+   appstream-util validate-relax --nonet %{buildroot}/%{_metainfodir}/*.metainfo.xml \

  else \

    echo "Did not find a .metainfo.xml appdata file" \

  fi \

file removed
-9
@@ -1,9 +0,0 @@ 

- diff -up octave-4.2.1/etc/icons/octave.appdata.xml.in.appdata octave-4.2.1/etc/icons/octave.appdata.xml.in

- --- octave-4.2.1/etc/icons/octave.appdata.xml.in.appdata	2017-02-24 20:46:50.581334701 -0700

- +++ octave-4.2.1/etc/icons/octave.appdata.xml.in	2017-02-24 20:47:29.866515768 -0700

- @@ -58,5 +58,4 @@

-  

-    <url type="homepage">http://www.octave.org</url>

-    <update_contact>maintainers@octave.org</update_contact>

- -  <project_group>GNU</project_group>

-  </component>

file modified
+10 -10
@@ -1,12 +1,12 @@ 

- diff -up octave-4.2.2/libinterp/corefcn/input.cc.crash octave-4.2.2/libinterp/corefcn/input.cc

- --- octave-4.2.2/libinterp/corefcn/input.cc.crash	2018-02-28 11:41:44.000000000 -0700

- +++ octave-4.2.2/libinterp/corefcn/input.cc	2018-06-21 21:29:18.352517844 -0600

- @@ -298,7 +298,7 @@ octave_base_reader::octave_gets (bool& e

+ diff -up octave-4.4.1/libinterp/corefcn/input.cc.crash octave-4.4.1/libinterp/corefcn/input.cc

+ --- octave-4.4.1/libinterp/corefcn/input.cc.crash	2018-11-11 17:27:39.588037444 -0700

+ +++ octave-4.4.1/libinterp/corefcn/input.cc	2018-11-11 17:30:42.344208272 -0700

+ @@ -255,7 +255,7 @@ namespace octave

   

-        octave_diary << retval;

+          octave_diary << retval;

   

- -      if (retval[retval.length () - 1] != '\n')

- +      if (!retval.empty () && retval.back () != '\n')

-          octave_diary << "\n";

-  

-        do_input_echo (retval);

+ -        if (retval.back () != '\n')

+ +        if (!retval.empty () && retval.back () != '\n')

+            octave_diary << "\n";

+        }

+      else

file removed
-11
@@ -1,11 +0,0 @@ 

- 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 {

@@ -1,11 +0,0 @@ 

- diff -up octave-4.2.2/libgui/src/settings-dialog.cc.orig octave-4.2.2/libgui/src/settings-dialog.cc

- --- octave-4.2.2/libgui/src/settings-dialog.cc.orig	2018-02-28 11:41:44.000000000 -0700

- +++ octave-4.2.2/libgui/src/settings-dialog.cc	2018-06-02 14:09:38.138706993 -0600

- @@ -36,6 +36,7 @@ along with Octave; see the file COPYING.

-  #include <QHash>

-  #include <QMessageBox>

-  #include <QTextCodec>

- +#include <QButtonGroup>

-  

-  #if defined (HAVE_QSCINTILLA)

-  #  include "octave-qscintilla.h"

file added
+504
@@ -0,0 +1,504 @@ 

+ diff -up octave-4.4.1/configure.ac.sundials3 octave-4.4.1/configure.ac

+ --- octave-4.4.1/configure.ac.sundials3	2018-08-09 12:20:32.000000000 -0600

+ +++ octave-4.4.1/configure.ac	2018-10-28 14:06:56.907293616 -0600

+ @@ -2315,15 +2315,15 @@ OCTAVE_CHECK_LIB(sundials_ida, [SUNDIALS

+    [], [don't use SUNDIALS IDA library, solvers ode15i and ode15s will be disabled],

+    [warn_sundials_ida=

+     OCTAVE_CHECK_SUNDIALS_SIZEOF_REALTYPE

+ -   OCTAVE_CHECK_SUNDIALS_IDA_DENSE

+ -   OCTAVE_CHECK_SUNDIALS_IDAKLU])

+ +   OCTAVE_CHECK_SUNDIALS_SUNLINSOL_DENSE

+ +   OCTAVE_CHECK_SUNDIALS_SUNLINSOL_KLU])

+  LIBS="$save_LIBS"

+  

+  dnl Define this way instead of with an #if in oct-conf-post.h so that

+  dnl the build features script will get the correct value.

+  if test -n "$SUNDIALS_IDA_LIBS" \

+      && test -n "$SUNDIALS_NVECSERIAL_LIBS" \

+ -    && test $octave_cv_sundials_ida_dense = yes \

+ +    && test $octave_cv_sundials_sunlinsol_dense = yes \

+      && test $octave_cv_sundials_realtype_is_double = yes; then

+    AC_DEFINE(HAVE_SUNDIALS, 1, [Define to 1 if SUNDIALS is available.])

+  fi

+ diff -up octave-4.4.1/libinterp/dldfcn/__ode15__.cc.sundials3 octave-4.4.1/libinterp/dldfcn/__ode15__.cc

+ --- octave-4.4.1/libinterp/dldfcn/__ode15__.cc.sundials3	2018-08-09 12:20:32.000000000 -0600

+ +++ octave-4.4.1/libinterp/dldfcn/__ode15__.cc	2018-10-28 14:26:11.482248630 -0600

+ @@ -1,6 +1,7 @@

+  /*

+  

+  Copyright (C) 2016-2018 Francesco Faccio <francesco.faccio@mail.polimi.it>

+ +Copyright (C) 2018 William Greene <w.h.greene@gmail.com>

+  

+  This file is part of Octave.

+  

+ @@ -43,15 +44,34 @@ along with Octave; see the file COPYING.

+  #    include <ida/ida.h>

+  #  endif

+  

+ -#  if defined (HAVE_IDA_IDA_DENSE_H)

+ -#    include <ida/ida_dense.h>

+ +#  if defined (HAVE_SUNDIALS_SUNDIALS_MATRIX_H)

+ +#    include <sundials/sundials_matrix.h>

+  #  endif

+  

+ -#  if defined (HAVE_IDA_IDA_KLU_H)

+ -#    include <ida/ida_klu.h>

+ +#  if defined (HAVE_SUNDIALS_SUNDIALS_LINEARSOLVER_H)

+ +#    include <sundials/sundials_linearsolver.h>

+ +#  endif

+ +

+ +#  if defined (HAVE_SUNLINSOL_SUNLINSOL_DENSE_H)

+ +#    include <sunlinsol/sunlinsol_dense.h>

+ +#  endif

+ +

+ +#  if defined (HAVE_IDA_IDA_DIRECT_H)

+ +#    include <ida/ida_direct.h>

+ +#  endif

+ +

+ +#  if defined (HAVE_SUNDIALS_SUNDIALS_SPARSE_H)

+  #    include <sundials/sundials_sparse.h>

+  #  endif

+  

+ +#  if defined (HAVE_SUNLINSOL_SUNLINSOL_KLU_H)

+ +#    include <sunlinsol/sunlinsol_klu.h>

+ +#  endif

+ +

+ +#  if defined (HAVE_SUNMATRIX_SUNMATRIX_SPARSE_H)

+ +#    include <sunmatrix/sunmatrix_sparse.h>

+ +#  endif

+ +

+  #  if defined (HAVE_NVECTOR_NVECTOR_SERIAL_H)

+  #    include <nvector/nvector_serial.h>

+  #  endif

+ @@ -111,7 +131,8 @@ namespace octave

+          havejacsparse (false), mem (nullptr), num (), ida_fun (nullptr),

+          ida_jac (nullptr), dfdy (nullptr), dfdyp (nullptr), spdfdy (nullptr),

+          spdfdyp (nullptr), fun (nullptr), jacfun (nullptr), jacspfun (nullptr),

+ -        jacdcell (nullptr), jacspcell (nullptr)

+ +        jacdcell (nullptr), jacspcell (nullptr),

+ +        sunJacMatrix (nullptr), sunLinearSolver (nullptr)

+      { }

+  

+  

+ @@ -121,11 +142,17 @@ namespace octave

+          havejacsparse (false), mem (nullptr), num (), ida_fun (ida_fcn),

+          ida_jac (nullptr), dfdy (nullptr), dfdyp (nullptr), spdfdy (nullptr),

+          spdfdyp (nullptr), fun (daefun), jacfun (nullptr), jacspfun (nullptr),

+ -        jacdcell (nullptr), jacspcell (nullptr)

+ +        jacdcell (nullptr), jacspcell (nullptr),

+ +        sunJacMatrix (nullptr), sunLinearSolver (nullptr)

+      { }

+  

+  

+ -    ~IDA (void) { IDAFree (&mem); }

+ +    ~IDA (void)

+ +    {

+ +      IDAFree (&mem);

+ +      SUNLinSolFree(sunLinearSolver);

+ +      SUNMatDestroy(sunJacMatrix);

+ +    }

+  

+      IDA&

+      set_jacobian (octave_function *jac, DAEJacFuncDense j)

+ @@ -183,7 +210,7 @@ namespace octave

+      static N_Vector ColToNVec (const ColumnVector& data, long int n);

+  

+      void

+ -    set_up (void);

+ +    set_up (const ColumnVector& y);

+  

+      void

+      set_tolerance (ColumnVector& abstol, realtype reltol);

+ @@ -198,25 +225,24 @@ namespace octave

+      void

+      resfun_impl (realtype t, N_Vector& yy,

+                   N_Vector& yyp, N_Vector& rr);

+ -

+      static int

+ -    jacdense (long int Neq, realtype t,  realtype cj, N_Vector yy,

+ -              N_Vector yyp, N_Vector, DlsMat JJ, void *user_data,

+ +    jacdense (realtype t, realtype cj, N_Vector yy,

+ +              N_Vector yyp, N_Vector, SUNMatrix JJ, void *user_data,

+                N_Vector, N_Vector, N_Vector)

+      {

+        IDA *self = static_cast <IDA *> (user_data);

+ -      self->jacdense_impl (Neq, t, cj, yy, yyp, JJ);

+ +      self->jacdense_impl (t, cj, yy, yyp, JJ);

+        return 0;

+      }

+  

+      void

+ -    jacdense_impl (long int Neq, realtype t, realtype cj,

+ -                   N_Vector& yy, N_Vector& yyp, DlsMat& JJ);

+ +    jacdense_impl (realtype t, realtype cj,

+ +                   N_Vector& yy, N_Vector& yyp, SUNMatrix& JJ);

+  

+ -#  if defined (HAVE_SUNDIALS_IDAKLU)

+ +#  if defined (HAVE_SUNDIALS_SUNLINSOL_KLU)

+      static int

+      jacsparse (realtype t, realtype cj, N_Vector yy, N_Vector yyp,

+ -               N_Vector, SlsMat Jac, void *user_data, N_Vector,

+ +               N_Vector, SUNMatrix Jac, void *user_data, N_Vector,

+                 N_Vector, N_Vector)

+      {

+        IDA *self = static_cast <IDA *> (user_data);

+ @@ -226,7 +252,7 @@ namespace octave

+  

+      void

+      jacsparse_impl (realtype t, realtype cj, N_Vector& yy,

+ -                    N_Vector& yyp, SlsMat& Jac);

+ +                    N_Vector& yyp, SUNMatrix& Jac);

+  #endif

+  

+      void set_maxstep (realtype maxstep);

+ @@ -290,6 +316,8 @@ namespace octave

+      DAEJacFuncSparse jacspfun;

+      DAEJacCellDense jacdcell;

+      DAEJacCellSparse jacspcell;

+ +    SUNMatrix sunJacMatrix;

+ +    SUNLinearSolver sunLinearSolver;

+    };

+  

+    int

+ @@ -322,36 +350,61 @@ namespace octave

+    }

+  

+    void

+ -  IDA::set_up (void)

+ +  IDA::set_up (const ColumnVector& y)

+    {

+ +    N_Vector yy = ColToNVec(y, num);

+ +

+      if (havejacsparse)

+        {

+ -#  if defined (HAVE_SUNDIALS_IDAKLU)

+ -        if (IDAKLU (mem, num, num*num, CSC_MAT) != 0)

+ -          error ("IDAKLU solver not initialized");

+ +#if defined (HAVE_SUNDIALS_SUNLINSOL_KLU)

+ +

+ +        sunJacMatrix = SUNSparseMatrix (num, num, num*num, CSC_MAT);

+ +        if (! sunJacMatrix)

+ +          error ("Unable to create sparse Jacobian for Sundials");

+ +

+ +        sunLinearSolver = SUNKLU (yy, sunJacMatrix);

+ +        if (! sunLinearSolver)

+ +          error ("Unable to create KLU sparse solver");

+ +

+ +        if (IDADlsSetLinearSolver (mem, sunLinearSolver, sunJacMatrix))

+ +          error ("Unable to set sparse linear solver");

+ +

+ +        IDADlsSetJacFn(mem, IDA::jacsparse);

+  

+ -        IDASlsSetSparseJacFn (mem, IDA::jacsparse);

+  #  else

+ -        error ("IDAKLU is not available in this version of Octave");

+ +        error ("SUNDIALS SUNLINSOL KLU is not available in this version of Octave");

+  #  endif

+ +

+        }

+      else

+        {

+ -        if (IDADense (mem, num) != 0)

+ -          error ("IDADense solver not initialized");

+  

+ -        if (havejac && IDADlsSetDenseJacFn (mem, IDA::jacdense) != 0)

+ -          error ("Dense Jacobian not set");

+ +        sunJacMatrix = SUNDenseMatrix (num, num);

+ +        if (! sunJacMatrix)

+ +          error ("Unable to create dense Jacobian for Sundials");

+ +

+ +        sunLinearSolver = SUNDenseLinearSolver(yy, sunJacMatrix);

+ +        if (! sunLinearSolver)

+ +          error ("Unable to create dense linear solver");

+ +

+ +        if (IDADlsSetLinearSolver (mem, sunLinearSolver, sunJacMatrix))

+ +          error ("Unable to set dense linear solver");

+ +

+ +        if (havejac && IDADlsSetJacFn (mem, IDA::jacdense) != 0)

+ +          error("Unable to set dense Jacobian function");

+ +

+        }

+    }

+  

+    void

+ -  IDA::jacdense_impl (long int Neq, realtype t, realtype cj,

+ -                      N_Vector& yy, N_Vector& yyp, DlsMat& JJ)

+ +  IDA::jacdense_impl (realtype t, realtype cj,

+ +                      N_Vector& yy, N_Vector& yyp, SUNMatrix& JJ)

+  

+    {

+      BEGIN_INTERRUPT_WITH_EXCEPTIONS;

+  

+ +    long int Neq = NV_LENGTH_S(yy);

+ +

+      ColumnVector y = NVecToCol (yy, Neq);

+  

+      ColumnVector yp = NVecToCol (yyp, Neq);

+ @@ -365,15 +418,15 @@ namespace octave

+  

+      std::copy (jac.fortran_vec (),

+                 jac.fortran_vec () + jac.numel (),

+ -               JJ->data);

+ +      SUNDenseMatrix_Data(JJ));

+  

+      END_INTERRUPT_WITH_EXCEPTIONS;

+    }

+  

+ -#  if defined (HAVE_SUNDIALS_IDAKLU)

+ +#  if defined (HAVE_SUNDIALS_SUNLINSOL_KLU)

+    void

+    IDA::jacsparse_impl (realtype t, realtype cj, N_Vector& yy, N_Vector& yyp,

+ -                       SlsMat& Jac)

+ +                       SUNMatrix& Jac)

+  

+    {

+      BEGIN_INTERRUPT_WITH_EXCEPTIONS;

+ @@ -389,17 +442,18 @@ namespace octave

+      else

+        jac = (*jacspcell) (spdfdy, spdfdyp, cj);

+  

+ -    SparseSetMatToZero (Jac);

+ -    int *colptrs = *(Jac->colptrs);

+ -    int *rowvals = *(Jac->rowvals);

+ +    SUNMatZero_Sparse (Jac);

+ +    sunindextype *colptrs = SUNSparseMatrix_IndexPointers (Jac);

+ +    sunindextype *rowvals = SUNSparseMatrix_IndexValues (Jac);

+  

+      for (int i = 0; i < num + 1; i++)

+        colptrs[i] = jac.cidx(i);

+  

+ +    double *d = SUNSparseMatrix_Data (Jac);

+      for (int i = 0; i < jac.nnz (); i++)

+        {

+          rowvals[i] = jac.ridx(i);

+ -        Jac->data[i] = jac.data(i);

+ +        d[i] = jac.data(i);

+        }

+  

+      END_INTERRUPT_WITH_EXCEPTIONS;

+ @@ -566,7 +620,7 @@ namespace octave

+  

+          //main loop

+          while (((posdirection == 1 && tsol < tend)

+ -                || (posdirection == 0 && tsol > tend))

+ +               || (posdirection == 0 && tsol > tend))

+                 && status == 0)

+            {

+              if (IDASolve (mem, tend, &tsol, yy, yyp, IDA_ONE_STEP) != 0)

+ @@ -691,7 +745,7 @@ namespace octave

+              // Linear interpolation

+              ie(0) = index(0);

+              te(0) = tsol - val (index(0)) * (tsol - told)

+ -                    / (val (index(0)) - oldval (index(0)));

+ +              / (val (index(0)) - oldval (index(0)));

+  

+              ColumnVector ytemp

+                = y - ((tsol - te(0)) * (y - yold) / (tsol - told));

+ @@ -716,7 +770,7 @@ namespace octave

+                  // Linear interpolation

+                  ie(temp+i) = index(i);

+                  te(temp+i) = tsol - val(index(i)) * (tsol - told)

+ -                             / (val(index(i)) - oldval(index(i)));

+ +                  / (val(index(i)) - oldval(index(i)));

+  

+                  ColumnVector ytemp

+                    = y - (tsol - te (temp + i)) * (y - yold) / (tsol - told);

+ @@ -1095,7 +1149,7 @@ namespace octave

+        event_fcn = options.getfield("Events").function_value ();

+  

+      // Set up linear solver

+ -    dae.set_up ();

+ +    dae.set_up (y0);

+  

+      // Integrate

+      retval = dae.integrate (numt, tspan, y0, yp0, refine,

+ diff -up octave-4.4.1/m4/acinclude.m4.sundials3 octave-4.4.1/m4/acinclude.m4

+ --- octave-4.4.1/m4/acinclude.m4.sundials3	2018-08-09 12:20:32.000000000 -0600

+ +++ octave-4.4.1/m4/acinclude.m4	2018-10-28 14:06:56.909293633 -0600

+ @@ -2174,14 +2174,11 @@ dnl Check whether SUNDIALS IDA library i

+  dnl precision realtype.

+  dnl

+  AC_DEFUN([OCTAVE_CHECK_SUNDIALS_SIZEOF_REALTYPE], [

+ -  AC_CHECK_HEADERS([ida/ida.h ida.h])

+    AC_CACHE_CHECK([whether SUNDIALS IDA is configured with double precision realtype],

+      [octave_cv_sundials_realtype_is_double],

+      [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[

+          #if defined (HAVE_IDA_IDA_H)

+          #include <ida/ida.h>

+ -        #else

+ -        #include <ida.h>

+          #endif

+          #include <assert.h>

+          ]], [[

+ @@ -2197,61 +2194,72 @@ AC_DEFUN([OCTAVE_CHECK_SUNDIALS_SIZEOF_R

+    fi

+  ])

+  dnl

+ -dnl Check whether SUNDIALS IDA library is configured with IDAKLU

+ +dnl Check whether SUNDIALS IDA library is configured with SUNLINSOL_KLU

+  dnl enabled.

+  dnl

+ -AC_DEFUN([OCTAVE_CHECK_SUNDIALS_IDAKLU], [

+ -  AC_CHECK_HEADERS([ida/ida_klu.h ida_klu.h])

+ -  AC_CACHE_CHECK([whether SUNDIALS IDA is configured with IDAKLU enabled],

+ -    [octave_cv_sundials_idaklu],

+ +AC_DEFUN([OCTAVE_CHECK_SUNDIALS_SUNLINSOL_KLU], [

+ +  AC_CHECK_HEADERS([sundials/sundials_sparse.h sunlinsol/sunlinsol_klu.h sunmatrix/sunmatrix_sparse.h])

+ +  AC_CACHE_CHECK([whether SUNDIALS IDA is configured with SUNLINSOL_KLU enabled],

+ +    [octave_cv_sundials_sunlinsol_klu],

+      [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[

+ -         #if defined (HAVE_IDA_IDA_KLU_H)

+ -         #include <ida/ida_klu.h>

+ -         #else

+ -         #include <ida_klu.h>

+ +         #if defined (HAVE_IDA_IDA_H)

+ +         #include <ida/ida.h>

+ +         #endif

+ +         #if defined (HAVE_SUNDIALS_SUNDIALS_SPARSE_H)

+ +         #include <sundials/sundials_sparse.h>

+ +         #endif

+ +         #if defined (HAVE_SUNLINSOL_SUNLINSOL_KLU_H)

+ +         #include <sunlinsol/sunlinsol_klu.h>

+           #endif

+           ]], [[

+ -         IDAKLU (0, 0, 0, 0);

+ +         SUNKLU (0, 0);

+        ]])],

+ -      octave_cv_sundials_idaklu=yes,

+ -      octave_cv_sundials_idaklu=no)

+ +      octave_cv_sundials_sunlinsol_klu=yes,

+ +      octave_cv_sundials_sunlinsol_klu=no)

+      ])

+ -  if test $octave_cv_sundials_idaklu = yes; then

+ -    AC_DEFINE(HAVE_SUNDIALS_IDAKLU, 1,

+ -      [Define to 1 if SUNDIALS IDA is configured with IDAKLU enabled.])

+ +  if test $octave_cv_sundials_sunlinsol_klu = yes; then

+ +    AC_DEFINE(HAVE_SUNDIALS_SUNLINSOL_KLU, 1,

+ +      [Define to 1 if SUNDIALS IDA is configured with SUNLINSOL_KLU enabled.])

+    else

+ -    warn_sundials_idaklu="SUNDIALS IDA library not configured with IDAKLU, ode15i and ode15s will not support the sparse Jacobian feature"

+ -    OCTAVE_CONFIGURE_WARNING([warn_sundials_idaklu])

+ +    warn_sundials_idaklu="SUNDIALS IDA library not configured with SUNLINSOL_KLU, ode15i and ode15s will not support the sparse Jacobian feature"

+ +    OCTAVE_CONFIGURE_WARNING([warn_sundials_sunlinsol_klu])

+    fi

+  ])

+  dnl

+ -dnl Check whether SUNDIALS IDA library has the IDADENSE linear solver.

+ +dnl Check whether SUNDIALS IDA library has the SUNLINSOL_DENSE linear solver.

+  dnl The IDADENSE API was removed in SUNDIALS version 3.0.0.

+  dnl

+ -AC_DEFUN([OCTAVE_CHECK_SUNDIALS_IDA_DENSE], [

+ -  AC_CHECK_HEADERS([ida/ida_dense.h ida_dense.h])

+ -  AC_CACHE_CHECK([whether SUNDIALS IDA includes the IDADENSE linear solver],

+ -    [octave_cv_sundials_ida_dense],

+ +AC_DEFUN([OCTAVE_CHECK_SUNDIALS_SUNLINSOL_DENSE], [

+ +  AC_CHECK_HEADERS([sunlinsol/sunlinsol_dense.h sundials/sundials_matrix.h sundials/sundials_linearsolver.h ida/ida_direct.h])

+ +  AC_CACHE_CHECK([whether SUNDIALS IDA includes the SUNLINSOL_DENSE linear solver],

+ +    [octave_cv_sundials_sunlinsol_dense],

+      [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[

+ -         #if defined (HAVE_IDA_IDA_DENSE_H)

+ -         #include <ida/ida_dense.h>

+ -         #else

+ -         #include <ida_dense.h>

+ +         #if defined (HAVE_IDA_IDA_H)

+ +         #include <ida/ida.h>

+ +         #endif

+ +         #if defined (HAVE_SUNDIALS_SUNDIALS_MATRIX_H)

+ +         #include <sundials/sundials_matrix.h>

+ +         #endif

+ +         #if defined (HAVE_SUNDIALS_SUNDIALS_LINEARSOLVER_H)

+ +         #include <sundials/sundials_linearsolver.h>

+           #endif

+ +         #if defined (HAVE_IDA_IDA_DIRECT_H)

+ +         #include <ida/ida_direct.h>

+ +         #endif         

+           ]], [[

+           void *mem = 0;

+           long int num = 0;

+           IDADense (mem, num);

+        ]])],

+ -      octave_cv_sundials_ida_dense=yes,

+ -      octave_cv_sundials_ida_dense=no)

+ +      octave_cv_sundials_sunlinsol_dense=yes,

+ +      octave_cv_sundials_sunlinsol_dense=no)

+      ])

+ -  if test $octave_cv_sundials_ida_dense = yes; then

+ -    AC_DEFINE(HAVE_SUNDIALS_IDADENSE, 1,

+ -      [Define to 1 if SUNDIALS IDA includes the IDADENSE linear solver.])

+ +  if test $octave_cv_sundials_sunlinsol_dense = yes; then

+ +    AC_DEFINE(HAVE_SUNDIALS_SUNLINSOL_DENSE, 1,

+ +      [Define to 1 if SUNDIALS IDA includes the SUNLINSOL_DENSE linear solver.])

+    else

+ -    warn_sundials_ida_dense="SUNDIALS IDA library does not include the IDADENSE linear solver, ode15i and ode15s will be disabled"

+ -    OCTAVE_CONFIGURE_WARNING([warn_sundials_ida_dense])

+ +    warn_sundials_ida_dense="SUNDIALS IDA library does not include the SUNLINSOL_DENSE linear solver, ode15i and ode15s will be disabled"

+ +    OCTAVE_CONFIGURE_WARNING([warn_sundials_sunlinsol_dense])

+    fi

+  ])

+  dnl

+ diff -up octave-4.4.1/scripts/ode/ode15i.m.sundials3 octave-4.4.1/scripts/ode/ode15i.m

+ --- octave-4.4.1/scripts/ode/ode15i.m.sundials3	2018-08-09 12:20:32.000000000 -0600

+ +++ octave-4.4.1/scripts/ode/ode15i.m	2018-10-28 14:06:56.909293633 -0600

+ @@ -452,7 +452,7 @@ endfunction

+  %! assert ([t(end), y(end,:)], fref, 1e-3);

+  

+  ## Jacobian fun sparse

+ -%!testif HAVE_SUNDIALS_IDAKLU

+ +%!testif HAVE_SUNDIALS_SUNLINSOL_KLU

+  %! opt = odeset ("Jacobian", @jacfunsparse, "AbsTol", 1e-7, "RelTol", 1e-7);

+  %! [t, y] = ode15i (@rob, [0, 100], [1; 0; 0], [-1e-4; 1e-4; 0], opt);

+  %! assert ([t(end), y(end,:)], fref, 1e-3);

+ @@ -545,7 +545,7 @@ endfunction

+  %!       "invalid value assigned to field 'Jacobian'");

+  

+  ## Jacobian cell sparse wrong dimension

+ -%!testif HAVE_SUNDIALS_IDAKLU

+ +%!testif HAVE_SUNDIALS_SUNLINSOL_KLU

+  %! DFDY = sparse ([-0.04, 1;

+  %!                  0.04, 1]);

+  %! DFDYP = sparse ([-1,  0, 0;

+ diff -up octave-4.4.1/scripts/ode/ode15s.m.sundials3 octave-4.4.1/scripts/ode/ode15s.m

+ --- octave-4.4.1/scripts/ode/ode15s.m.sundials3	2018-08-09 12:20:32.000000000 -0600

+ +++ octave-4.4.1/scripts/ode/ode15s.m	2018-10-28 14:06:56.910293641 -0600

+ @@ -545,21 +545,21 @@ endfunction

+  %! [t, y] = ode15s (@rob, [0, 100], [1; 0; 0], opt);

+  %! assert ([t(end), y(end,:)], frefrob, 1e-3);

+  

+ -%!testif HAVE_SUNDIALS_IDAKLU

+ +%!testif HAVE_SUNDIALS_SUNLINSOL_KLU

+  %! opt = odeset ("MStateDependence", "none",

+  %!               "Mass", [1, 0, 0; 0, 1, 0; 0, 0, 0],

+  %!               "Jacobian", @jacfunsparse);

+  %! [t, y] = ode15s (@rob, [0, 100], [1; 0; 0], opt);

+  %! assert ([t(end), y(end,:)], frefrob, 1e-3);

+  

+ -%!testif HAVE_SUNDIALS_IDAKLU

+ +%!testif HAVE_SUNDIALS_SUNLINSOL_KLU

+  %! opt = odeset ("MStateDependence", "none",

+  %!               "Mass", sparse ([1, 0, 0; 0, 1, 0; 0, 0, 0]),

+  %!               "Jacobian", @jacfunsparse);

+  %! [t, y] = ode15s (@rob, [0, 100], [1; 0; 0], opt);

+  %! assert ([t(end), y(end,:)], frefrob, 1e-3);

+  

+ -%!testif HAVE_SUNDIALS_IDAKLU

+ +%!testif HAVE_SUNDIALS_SUNLINSOL_KLU

+  %! warning ("off", "ode15s:mass_state_dependent_provided", "local");

+  %! opt = odeset ("MStateDependence", "none",

+  %!               "Mass", @massdensefunstate,

+ @@ -575,14 +575,14 @@ endfunction

+  %! [t, y] = ode15s (@rob, [0, 100], [1; 0; 0], opt);

+  %! assert ([t(end), y(end,:)], frefrob, 1e-3);

+  

+ -%!testif HAVE_SUNDIALS_IDAKLU

+ +%!testif HAVE_SUNDIALS_SUNLINSOL_KLU

+  %! opt = odeset ("MStateDependence", "none",

+  %!               "Mass", @massdensefuntime,

+  %!               "Jacobian", @jacfunsparse);

+  %! [t, y] = ode15s (@rob, [0, 100], [1; 0; 0], opt);

+  %! assert ([t(end), y(end,:)], frefrob, 1e-3);

+  

+ -%!testif HAVE_SUNDIALS_IDAKLU

+ +%!testif HAVE_SUNDIALS_SUNLINSOL_KLU

+  %! opt = odeset ("MStateDependence", "none",

+  %!               "Mass", @masssparsefuntime,

+  %!               "Jacobian", @jacfunsparse);

file modified
+40 -35
@@ -1,5 +1,5 @@ 

  # From src/version.h:#define OCTAVE_API_VERSION

- %global octave_api api-v51

+ %global octave_api api-v52

  

  %global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d)

  
@@ -20,8 +20,8 @@ 

  

  Name:           octave

  Epoch:          6

- Version:        4.2.2

- Release:        6%{?rcver:.rc%{rcver}}%{?dist}.1

+ Version:        4.4.1

+ Release:        1%{?rcver:.rc%{rcver}}%{?dist}

  Summary:        A high-level language for numerical computations

  License:        GPLv3+

  URL:            http://www.octave.org
@@ -34,16 +34,14 @@ 

  # RPM macros for helping to build Octave packages

  Source1:        macros.octave

  Source2:        xorg.conf

+ # Prebuilt docs from Fedora for EPEL

+ Source3:        octave-4.4.1-docs.tar.gz

  # Fix crash with Ctrl-D

  # https://bugzilla.redhat.com/show_bug.cgi?id=1589460

  Patch0:         octave-crash.patch

- # Remove project_group from appdata.xml file

- # https://bugzilla.redhat.com/show_bug.cgi?id=1293561

- Patch2:         octave-appdata.patch

- # Add needed #include <math.h> to bring in gnulib

- Patch4:         octave-gnulib.patch

- # Add #include <QButtonGroup> to fix build with latest Qt

- Patch5:         octave-qbuttongroup.patch

+ # SUNDIALS 3 support

+ # https://savannah.gnu.org/bugs/?52475

+ Patch1:         octave-sundials3.patch

  

  Provides:       octave(api) = %{octave_api}

  Provides:       bundled(gnulib)
@@ -67,6 +65,7 @@ 

  BuildRequires:  lzip

  

  # For autoreconf

+ BuildRequires:  automake

  BuildRequires:  libtool

  # For validating desktop and appdata files

  BuildRequires:  desktop-file-utils
@@ -81,6 +80,7 @@ 

  BuildRequires:  atlas-devel

  %endif

  BuildRequires:  bison

+ BuildRequires:  bzip2-devel

  BuildRequires:  curl-devel

  BuildRequires:  fftw-devel

  BuildRequires:  flex
@@ -96,6 +96,9 @@ 

  BuildRequires:  GraphicsMagick-c++-devel

  BuildRequires:  hdf5-devel

  BuildRequires:  java-devel

+ %if 0%{?fedora}

+ BuildRequires:  javapackages-local

+ %endif

  BuildRequires:  less

  BuildRequires:  libsndfile-devel

  BuildRequires:  libX11-devel
@@ -111,11 +114,13 @@ 

  %if %{with qt5}

  BuildRequires:  qscintilla-qt5-devel

  BuildRequires:  qt5-linguist

+ BuildRequires:  qt5-qttools-devel

  %else

  BuildRequires:  qscintilla-devel

  %endif

  BuildRequires:  readline-devel

  BuildRequires:  suitesparse-devel

+ BuildRequires:  sundials-devel

  BuildRequires:  tex(dvips)

  BuildRequires:  texinfo

  BuildRequires:  texinfo-tex
@@ -209,30 +214,19 @@ 

  %prep

  %setup -q -n %{name}-%{version}%{?rctag}

  %patch0 -p1 -b .crash

- %patch2 -p1 -b .appdata

- %patch4 -p1 -b .gnulib

- %patch5 -p1 -b .qbuttongroup

- # __osmesa_print__ test is triggering a crash in libgcc, disable it

- # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78409

- #sed -i -e '/^%!/d' libinterp/dldfcn/__osmesa_print__.cc

- # Explicitly use gnulib headers

- %if 0%{?fedora} >= 24

- #find -name \*.cc -o -name \*.h -o -name \*.yy | xargs sed -i -e 's/#include <c\(math\|stdlib\)>/#include <\1.h>/'

- %endif

- #find -name \*.h -o -name \*.cc | xargs sed -i -e 's/<config.h>/"config.h"/' -e 's/<base-list.h>/"base-list.h"/'

- 

- # Check permissions

- find -name *.cc -exec chmod 644 {} \;

+ # EPEL7's autoconf/automake is too old so don't do

+ # unneeded patches there

+ %if 0%{?fedora}

+ %patch1 -p1 -b .sundials3

  

  # Remove unused fftpack

- sed -i -e '/fftpack/d' liboctave/cruft/module.mk

- rm -r liboctave/cruft/fftpack

- 

- # libinterp/dldfcn/__osmesa_print__.cc-tst is segfaulting

- # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78409

- sed -i -e '/^%/d' libinterp/dldfcn/__osmesa_print__.cc scripts/plot/util/{__opengl_info__,__pltopt__,allchild}.m test/publish/publish.tst

+ sed -i -e '/fftpack/d' liboctave/external/module.mk

+ rm -r liboctave/external/fftpack

  

+ # Touching module.mk appears to trigger the need for this

  autoreconf -i

+ %endif

+ 

  

  %build

  %global enable64 no
@@ -254,6 +248,8 @@ 

  export JAVA_HOME=%{java_home}

  # JIT support is still experimental, and causes a segfault on ARM.

  # --enable-float-truncate - https://savannah.gnu.org/bugs/?40560

+ # sundials headers need to know where to find suitesparse headers

+ export CPPFLAGS=-I%{_includedir}/suitesparse

  %configure --enable-shared --disable-static --enable-64=%enable64 \

   --enable-float-truncate \

   %{?disabledocs} \
@@ -262,6 +258,7 @@ 

   --with-blas="-L%{_libdir}/atlas %{atlasblaslib}" \

   --with-lapack="-L%{_libdir}/atlas %{atlaslapacklib}" \

  %endif

+  --with-java-includedir=/usr/lib/jvm/java/include \

   --with-java-libdir=$libjvm \

   --with-qrupdate \

   --with-amd --with-umfpack --with-colamd --with-ccolamd --with-cholmod \
@@ -290,6 +287,9 @@ 

  # No info directory

  rm -f %{buildroot}%{_infodir}/dir

  

+ # EL7's makeinfo doesn't support @sortas, so use prebuilt docs

+ %{?el7:tar xvf %SOURCE3 -C %{buildroot}}

+ 

  # Make library links

  mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d

  echo "%{_libdir}/octave/%{version}%{?rctag}" > %{buildroot}%{_sysconfdir}/ld.so.conf.d/octave-%{_arch}.conf
@@ -300,9 +300,11 @@ 

  # Make sure ls-R exists

  touch %{buildroot}%{_datadir}/%{name}/ls-R

  

- desktop-file-validate %{buildroot}%{_datadir}/applications/www.octave.org-octave.desktop

+ desktop-file-validate %{buildroot}%{_datadir}/applications/org.octave.Octave.desktop

+ # RHEL7 still doesn't like the GNU project_group

+ %{?el7:sed -i -e /project_group/d %{buildroot}/%{_datadir}/metainfo/org.octave.Octave.appdata.xml}

  %if 0%{?fedora} || 0%{?rhel} >= 7

- appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/appdata/*.appdata.xml

+ appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/metainfo/org.octave.Octave.appdata.xml

  %endif

  

  # Create directories for add-on packages
@@ -314,7 +316,7 @@ 

  touch %{buildroot}%{_datadir}/%{name}/octave_packages

  

  # Fix multilib installs

- for include in config defaults

+ for include in octave-config defaults

  do

     mv %{buildroot}%{_includedir}/%{name}-%{version}%{?rctag}/%{name}/${include}.h \

        %{buildroot}%{_includedir}/%{name}-%{version}%{?rctag}/%{name}/${include}-%{__isa_bits}.h
@@ -417,10 +419,10 @@ 

  %{_mandir}/man1/octave*.1.*

  %{_infodir}/liboctave.info*

  %{_infodir}/octave.info*

- %{_datadir}/appdata/www.octave.org-octave.appdata.xml

- %{_datadir}/applications/www.octave.org-octave.desktop

+ %{_datadir}/applications/org.octave.Octave.desktop

  %{_datadir}/icons/hicolor/*/apps/octave.png

  %{_datadir}/icons/hicolor/scalable/apps/octave.svg

+ %{_datadir}/metainfo/org.octave.Octave.appdata.xml

  # octave_packages is %ghost, so need to list everything else separately

  %dir %{_datadir}/octave

  %{_datadir}/octave/%{version}%{?rctag}/
@@ -445,6 +447,9 @@ 

  %{_pkgdocdir}/refcard*.pdf

  

  %changelog

+ * Sun Nov 11 2018 Orion Poplawski <orion@nwra.com> - 6:4.4.1-1

+ - Update to 4.4.1

+ 

  * Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 6:4.2.2-6.1

  - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild

  

file modified
+2 -1
@@ -1,1 +1,2 @@ 

- SHA512 (octave-4.2.2.tar.lz) = 694453eeda99047a216c047f0d0147ce7ec89497cba766927734bb9e82eb9f9c00a5c2ddc7f9af6796fcec8f85c8102ece20db6f8ba0a7d5e9a486bcff3ab069

+ SHA512 (octave-4.4.1.tar.lz) = 8fbc6d35ae2bcd14b5cd52c30f761c87940c25ad514984fdb4baa6c99d6d371cb76e07cc50b020eb19470348674b3cd7069ed0eb20010dc3826a6e78781c0fa0

+ SHA512 (octave-4.4.1-docs.tar.gz) = e970d512bb036f5954e3b8c9ac246c1624e9964fa2aeadc0f84dac01cc37af7f8fe5e93329d11ccc9ae442bfbaa1625dd2a21bc157c99d0992f5e1feada6f620