Compare commits
44 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
36ac824c44 | ||
|
6f237bc2ed | ||
|
73d4b70c55 | ||
|
93e5fb4a81 | ||
|
797a124cb4 | ||
|
4612d8c128 | ||
|
86aa2cf030 | ||
|
05ff2329ce | ||
|
8691dc29dc | ||
|
4ec8055c68 | ||
|
69ae45eadf | ||
|
6e0f7eae89 | ||
|
2d9eb03a84 | ||
|
6e5bf0d512 | ||
|
fdb892c23b | ||
|
f016c5866a | ||
|
d8840441f4 | ||
|
1ef35b6275 | ||
|
9c0483f765 | ||
|
66154bafb2 | ||
|
f16d5f212d | ||
|
928bdda92c | ||
|
a28ba48aa8 | ||
|
3fece7d82f | ||
|
48c10ba011 | ||
|
6e6a468c74 | ||
|
488d26821f | ||
|
e398d9c7e7 | ||
|
61b2f46ac0 | ||
|
2621de214a | ||
|
c3b96d5a03 | ||
|
a67f79d80a | ||
|
e1cf3afa97 | ||
|
0f98426a15 | ||
|
f82faf5f58 | ||
|
f89a01037a | ||
|
4161884180 | ||
|
be55d20164 | ||
|
b1d97f35c3 | ||
|
733302f86a | ||
|
104f111ea2 | ||
|
e6e1baf1c0 | ||
|
2c1fd845b6 | ||
|
fe99995595 |
11
.gitignore
vendored
11
.gitignore
vendored
@ -32,3 +32,14 @@ octave-3.2.4.tar.bz2
|
||||
/octave-4.4.1-docs.tar.gz
|
||||
/octave-5.1.0.tar.lz
|
||||
/octave-5.1.0-docs.tar.lz
|
||||
/octave-5.2.0.tar.lz
|
||||
/octave-5.2.0-docs.tar.lz
|
||||
/octave-6.1.0.tar.lz
|
||||
/octave-6.1.0-docs.tar.lz
|
||||
/octave-6.2.0.tar.lz
|
||||
/octave-6.3.0.tar.lz
|
||||
/octave-6.4.0.tar.lz
|
||||
/octave-7.1.0.tar.lz
|
||||
/octave-7.2.0.tar.lz
|
||||
/octave-7.3.0.tar.lz
|
||||
/octave-7.3.0-docs.tar.xz
|
||||
|
43
ab6d276f6fcb
Normal file
43
ab6d276f6fcb
Normal file
@ -0,0 +1,43 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User Rik <rik@octave.org>
|
||||
# Date 1668451079 28800
|
||||
# Node ID ab6d276f6fcb90631131eeb6668efd4f54a36204
|
||||
# Parent 662499ba0d21173006f99fc3b14b9a76a0e8670a
|
||||
build: Enable building of Qt documentation with Texinfo >= 7.0 (bug #62648).
|
||||
|
||||
* doc/interpreter/mk-qthelp.pl: Update regular expressions that find the start
|
||||
of data in index.html and Function-index.html to include additional pattern
|
||||
generated by Texinfo 7.0.
|
||||
|
||||
diff --git a/doc/interpreter/mk-qthelp.pl b/doc/interpreter/mk-qthelp.pl
|
||||
--- a/doc/interpreter/mk-qthelp.pl
|
||||
+++ b/doc/interpreter/mk-qthelp.pl
|
||||
@@ -26,8 +26,11 @@
|
||||
open (my $HTML, "<", $htmlfname) or die "Unable to open $htmlfname";
|
||||
|
||||
# Skip through preamble of file to find start of list
|
||||
-while (($_ = <$HTML>) !~ /^<div class="contents">/ ) {;}
|
||||
-while (($_ = <$HTML>) !~ /^<ul class="no-bullet">/ ) {;}
|
||||
+while (defined ($_ = <$HTML>) and ! /^<div class="contents">/ ) {;}
|
||||
+while (defined ($_ = <$HTML>)
|
||||
+ and ! /^<ul class="(?:no-bullet|toc-numbered-mark)">/ ) {;}
|
||||
+
|
||||
+die "index.html: reached EOF without finding data start pattern" if eof ($HTML);
|
||||
|
||||
$level = 0;
|
||||
while (<$HTML>)
|
||||
@@ -68,7 +71,11 @@
|
||||
open ($HTML, "<", $htmlfname) or die "Unable to open $htmlfname";
|
||||
|
||||
# Skip through preamble of file to find start of list
|
||||
-while (($_ = <$HTML>) !~ /^<table class="index-fn/ ) {;}
|
||||
+while (defined ($_ = <$HTML>)
|
||||
+ and ! /^<table class="(?:index-fn|fn-entries)/ ) {;}
|
||||
+
|
||||
+die "Function-Index.html: reached EOF without finding data start pattern"
|
||||
+ if eof ($HTML);
|
||||
|
||||
while (<$HTML>)
|
||||
{
|
||||
|
@ -43,7 +43,7 @@
|
||||
%octave_pkg_install \
|
||||
mkdir -p %{buildroot}%{octprefix} \
|
||||
mkdir -p %{buildroot}%{octarchprefix} \
|
||||
%octave_cmd pkg("prefix","%{buildroot}%{octprefix}","%{buildroot}%{octarchprefix}");pkg("global_list",fullfile("%{buildroot}%{octshareprefix}","octave_packages"));pkg("local_list",fullfile("%{buildroot}%{octshareprefix}","octave_packages"));pkg("install","-nodeps","-verbose",glob("%{_builddir}/%{buildsubdir}/build/%{octpkg}-%{version}-*.tar.gz"){1,1});unlink(pkg("local_list"));unlink(pkg("global_list")); \
|
||||
%octave_cmd pkg("prefix","%{buildroot}%{octprefix}","%{buildroot}%{octarchprefix}");pkg("global_list",fullfile("%{buildroot}%{octshareprefix}","octave_packages"));pkg("install","-nodeps","-verbose",glob("%{_builddir}/%{buildsubdir}/build/%{octpkg}-%{version}-*.tar.gz"){1,1});unlink(pkg("global_list")); \
|
||||
if [ -e %{buildroot}%{octpkgdir}/packinfo/on_uninstall.m ] \
|
||||
then \
|
||||
mv %{buildroot}%{octpkgdir}/packinfo/on_uninstall.m %{buildroot}%{octpkgdir}/packinfo/on_uninstall.m.orig \
|
||||
@ -67,7 +67,7 @@ fi \
|
||||
# any shared objects.
|
||||
%octave_pkg_check \
|
||||
%octave_cmd pkg("prefix","%{buildroot}%{octprefix}","%{buildroot}%{octarchprefix}");pkg("local_list",fullfile("%{buildroot}%{octshareprefix}","octave_packages"));pkg("list");pkg("install","-verbose",glob("%{_builddir}/%{buildsubdir}/build/%{octpkg}-%{version}-*.tar.gz"){1,1});pkg("load","%{octpkg}");pkg("list");runtests("%{buildroot}%{octpkgdir}");unlink(pkg("local_list")); \
|
||||
/usr/lib/rpm/brp-strip-shared %{__strip} \
|
||||
/usr/lib/rpm/brp-strip %{__strip} \
|
||||
%{nil}
|
||||
|
||||
# preun script - we need to remove our uninstall protection and perhaps
|
||||
|
@ -1,12 +0,0 @@
|
||||
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;
|
||||
|
||||
- if (retval.back () != '\n')
|
||||
+ if (!retval.empty () && retval.back () != '\n')
|
||||
octave_diary << "\n";
|
||||
}
|
||||
else
|
@ -1,28 +0,0 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User Mike Miller <mtmiller@octave.org>
|
||||
# Date 1554238576 25200
|
||||
# Node ID c3716220d5b93c49e1c7cc8ebe0b76dd961f4ec7
|
||||
# Parent fc73dafece570f201c18a4eb4a8729a654cfcfbb
|
||||
fix pause and kbhit with glibc 2.28 end-of-file state behavior (bug #55029)
|
||||
|
||||
* sysdep.cc (octave::kbhit): Call "clearerr (stdin)" on end-of-file condition
|
||||
in addition to "std::cin.clear ()". In glibc 2.28, end-of-file is persistent
|
||||
and must be cleared by the application.
|
||||
|
||||
diff --git a/libinterp/corefcn/sysdep.cc b/libinterp/corefcn/sysdep.cc
|
||||
--- a/libinterp/corefcn/sysdep.cc
|
||||
+++ b/libinterp/corefcn/sysdep.cc
|
||||
@@ -566,7 +566,10 @@
|
||||
int c = std::cin.get ();
|
||||
|
||||
if (std::cin.fail () || std::cin.eof ())
|
||||
- std::cin.clear ();
|
||||
+ {
|
||||
+ std::cin.clear ();
|
||||
+ clearerr (stdin);
|
||||
+ }
|
||||
|
||||
// Restore it, enabling system call restarts (if possible).
|
||||
octave::set_interrupt_handler (saved_interrupt_handler, true);
|
||||
|
@ -1,504 +0,0 @@
|
||||
diff -up octave-5.0.91/configure.ac.sundials3 octave-5.0.91/configure.ac
|
||||
--- octave-5.0.91/configure.ac.sundials3 2019-02-04 10:50:20.000000000 -0700
|
||||
+++ octave-5.0.91/configure.ac 2019-02-05 22:05:44.096260529 -0700
|
||||
@@ -2220,15 +2220,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-5.0.91/libinterp/dldfcn/__ode15__.cc.sundials3 octave-5.0.91/libinterp/dldfcn/__ode15__.cc
|
||||
--- octave-5.0.91/libinterp/dldfcn/__ode15__.cc.sundials3 2019-02-04 10:50:20.000000000 -0700
|
||||
+++ octave-5.0.91/libinterp/dldfcn/__ode15__.cc 2019-02-05 22:06:48.074012827 -0700
|
||||
@@ -1,6 +1,7 @@
|
||||
/*
|
||||
|
||||
Copyright (C) 2016-2019 Francesco Faccio <francesco.faccio@mail.polimi.it>
|
||||
+Copyright (C) 2018 William Greene <w.h.greene@gmail.com>
|
||||
|
||||
This file is part of Octave.
|
||||
|
||||
@@ -44,15 +45,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
|
||||
@@ -112,7 +132,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)
|
||||
{ }
|
||||
|
||||
|
||||
@@ -122,11 +143,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)
|
||||
@@ -184,7 +211,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);
|
||||
@@ -199,25 +226,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);
|
||||
@@ -227,7 +253,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);
|
||||
@@ -291,6 +317,8 @@ namespace octave
|
||||
DAEJacFuncSparse jacspfun;
|
||||
DAEJacCellDense jacdcell;
|
||||
DAEJacCellSparse jacspcell;
|
||||
+ SUNMatrix sunJacMatrix;
|
||||
+ SUNLinearSolver sunLinearSolver;
|
||||
};
|
||||
|
||||
int
|
||||
@@ -323,36 +351,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);
|
||||
@@ -366,15 +419,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;
|
||||
@@ -390,17 +443,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;
|
||||
@@ -567,7 +621,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)
|
||||
@@ -692,7 +746,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));
|
||||
@@ -717,7 +771,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);
|
||||
@@ -1096,7 +1150,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-5.0.91/m4/acinclude.m4.sundials3 octave-5.0.91/m4/acinclude.m4
|
||||
--- octave-5.0.91/m4/acinclude.m4.sundials3 2019-02-04 10:50:20.000000000 -0700
|
||||
+++ octave-5.0.91/m4/acinclude.m4 2019-02-05 22:05:44.100260576 -0700
|
||||
@@ -2210,14 +2210,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>
|
||||
]], [[
|
||||
@@ -2233,61 +2230,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-5.0.91/scripts/ode/ode15i.m.sundials3 octave-5.0.91/scripts/ode/ode15i.m
|
||||
--- octave-5.0.91/scripts/ode/ode15i.m.sundials3 2019-02-04 10:50:20.000000000 -0700
|
||||
+++ octave-5.0.91/scripts/ode/ode15i.m 2019-02-05 22:05:44.101260588 -0700
|
||||
@@ -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-5.0.91/scripts/ode/ode15s.m.sundials3 octave-5.0.91/scripts/ode/ode15s.m
|
||||
--- octave-5.0.91/scripts/ode/ode15s.m.sundials3 2019-02-04 10:50:20.000000000 -0700
|
||||
+++ octave-5.0.91/scripts/ode/ode15s.m 2019-02-05 22:05:44.102260599 -0700
|
||||
@@ -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);
|
11
octave-time.patch
Normal file
11
octave-time.patch
Normal file
@ -0,0 +1,11 @@
|
||||
diff -up octave-7.1.0/liboctave/numeric/randmtzig.cc.time octave-7.1.0/liboctave/numeric/randmtzig.cc
|
||||
--- octave-7.1.0/liboctave/numeric/randmtzig.cc.time 2022-04-06 08:05:12.000000000 -0600
|
||||
+++ octave-7.1.0/liboctave/numeric/randmtzig.cc 2022-07-09 23:03:37.970793323 -0600
|
||||
@@ -163,6 +163,7 @@
|
||||
|
||||
#include <algorithm>
|
||||
#include <random>
|
||||
+#include <time.h>
|
||||
|
||||
#include "oct-syscalls.h"
|
||||
#include "oct-time.h"
|
247
octave.spec
247
octave.spec
@ -1,16 +1,28 @@
|
||||
# From src/version.h:#define OCTAVE_API_VERSION
|
||||
%global octave_api api-v53
|
||||
%global octave_api api-v57
|
||||
|
||||
%global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d)
|
||||
|
||||
%global builddocs 1
|
||||
|
||||
# Use Qt5 on F26+
|
||||
%if 0%{?fedora}
|
||||
%bcond_without qt5
|
||||
%else
|
||||
%bcond_with qt5
|
||||
%bcond_without flexiblas
|
||||
%endif
|
||||
%if %{with flexiblas}
|
||||
%global blaslib flexiblas
|
||||
%else
|
||||
%global blaslib openblas
|
||||
%endif
|
||||
|
||||
# No more Java on i686
|
||||
%ifarch %{java_arches}
|
||||
%bcond_without java
|
||||
%else
|
||||
%bcond_with java
|
||||
%endif
|
||||
|
||||
# Compile with ILP64 BLAS - not yet working
|
||||
%bcond_with blas64
|
||||
|
||||
# For rc versions, change release manually
|
||||
#global rcver 2
|
||||
@ -19,10 +31,13 @@
|
||||
%global relsuf .rc%{?rcver}
|
||||
%endif
|
||||
|
||||
%global optflags %{optflags}
|
||||
%global build_ldflags %{build_ldflags} -flto
|
||||
|
||||
Name: octave
|
||||
Epoch: 6
|
||||
Version: 5.1.0
|
||||
Release: 2%{?rcver:.rc%{rcver}}%{?dist}
|
||||
Version: 7.3.0
|
||||
Release: 4%{?dist}
|
||||
Summary: A high-level language for numerical computations
|
||||
License: GPLv3+
|
||||
URL: http://www.octave.org
|
||||
@ -32,15 +47,14 @@ Source0: https://ftp.gnu.org/gnu/octave/octave-%{version}.tar.lz
|
||||
# RPM macros for helping to build Octave packages
|
||||
Source1: macros.octave
|
||||
Source2: xorg.conf
|
||||
# Prebuilt docs from Fedora for EPEL
|
||||
Source3: octave-5.1.0-docs.tar.lz
|
||||
# SUNDIALS 3 support
|
||||
# https://savannah.gnu.org/bugs/?52475
|
||||
Patch1: octave-sundials3.patch
|
||||
# Proper EOF handling
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1705129
|
||||
# https://hg.savannah.gnu.org/hgweb/octave/rev/c3716220d5b9
|
||||
Patch2: octave-eof.patch
|
||||
%if !%{builddocs}
|
||||
Source3: octave-%{version}-docs.tar.xz
|
||||
%endif
|
||||
# Infinite loop with texinfo 7
|
||||
# https://savannah.gnu.org/bugs/index.php?63810
|
||||
Patch0: https://hg.savannah.gnu.org/hgweb/octave/raw-rev/ab6d276f6fcb
|
||||
# Add needed time.h header
|
||||
Patch2: octave-time.patch
|
||||
|
||||
Provides: octave(api) = %{octave_api}
|
||||
Provides: bundled(gnulib)
|
||||
@ -61,6 +75,7 @@ Provides: bundled(slatec-err)
|
||||
Provides: bundled(slatec-fn)
|
||||
|
||||
# For Source0
|
||||
BuildRequires: make
|
||||
BuildRequires: lzip
|
||||
|
||||
# For autoreconf
|
||||
@ -68,12 +83,10 @@ BuildRequires: automake
|
||||
BuildRequires: libtool
|
||||
# For validating desktop and appdata files
|
||||
BuildRequires: desktop-file-utils
|
||||
%if 0%{?fedora} || 0%{?rhel} >= 7
|
||||
BuildRequires: libappstream-glib
|
||||
%endif
|
||||
|
||||
BuildRequires: arpack-devel
|
||||
BuildRequires: openblas-devel
|
||||
BuildRequires: %{blaslib}-devel
|
||||
BuildRequires: bison
|
||||
BuildRequires: bzip2-devel
|
||||
BuildRequires: curl-devel
|
||||
@ -90,10 +103,12 @@ BuildRequires: gnuplot
|
||||
BuildRequires: gperf
|
||||
BuildRequires: GraphicsMagick-c++-devel
|
||||
BuildRequires: hdf5-devel
|
||||
%if %{with java}
|
||||
BuildRequires: java-devel
|
||||
%if 0%{?fedora}
|
||||
BuildRequires: javapackages-local
|
||||
%endif
|
||||
%endif
|
||||
BuildRequires: less
|
||||
BuildRequires: libsndfile-devel
|
||||
BuildRequires: libX11-devel
|
||||
@ -106,22 +121,27 @@ BuildRequires: pcre-devel
|
||||
BuildRequires: portaudio-devel
|
||||
BuildRequires: qhull-devel
|
||||
BuildRequires: qrupdate-devel
|
||||
%if %{with qt5}
|
||||
# EPEL9 is missing qscintilla-qt5-devel - https://bugzilla.redhat.com/show_bug.cgi?id=2092182
|
||||
%if 0%{?fedora} || 0%{?rhel} != 9
|
||||
BuildRequires: qscintilla-qt5-devel
|
||||
%endif
|
||||
BuildRequires: qt5-linguist
|
||||
BuildRequires: qt5-qttools-devel
|
||||
%else
|
||||
BuildRequires: qscintilla-devel
|
||||
%endif
|
||||
BuildRequires: rapidjson-devel
|
||||
BuildRequires: readline-devel
|
||||
%if %{with blas64}
|
||||
BuildRequires: suitesparse64-devel
|
||||
%else
|
||||
BuildRequires: suitesparse-devel
|
||||
%endif
|
||||
# EPEL9 is missing sundials - https://bugzilla.redhat.com/show_bug.cgi?id=2063760
|
||||
%if 0%{?fedora} || 0%{?rhel} != 9
|
||||
BuildRequires: sundials-devel
|
||||
%endif
|
||||
BuildRequires: tex(dvips)
|
||||
BuildRequires: texinfo
|
||||
BuildRequires: texinfo-tex
|
||||
%if 0%{?fedora} || 0%{?rhel} >= 7
|
||||
BuildRequires: texlive-collection-fontsrecommended
|
||||
%endif
|
||||
%if 0%{?rhel} >= 7
|
||||
BuildRequires: texlive-ec
|
||||
BuildRequires: texlive-metapost
|
||||
@ -129,7 +149,6 @@ BuildRequires: texlive-metapost
|
||||
BuildRequires: zlib-devel
|
||||
# For check
|
||||
BuildRequires: mesa-dri-drivers
|
||||
BuildRequires: xorg-x11-apps
|
||||
%ifnarch s390 s390x
|
||||
BuildRequires: xorg-x11-drv-dummy
|
||||
%endif
|
||||
@ -140,7 +159,9 @@ Requires: gnuplot
|
||||
Requires: gnuplot-common
|
||||
Requires: hdf5 = %{_hdf5_version}
|
||||
Requires: hicolor-icon-theme
|
||||
%if %{with java}
|
||||
Requires: java-headless
|
||||
%endif
|
||||
Requires: less
|
||||
Requires: info
|
||||
Requires: texinfo
|
||||
@ -184,7 +205,7 @@ Requires: gcc-c++
|
||||
Requires: gcc-gfortran
|
||||
Requires: fftw-devel%{?_isa}
|
||||
Requires: hdf5-devel%{?_isa}
|
||||
Requires: openblas-devel%{?_isa}
|
||||
Requires: %{blaslib}-devel%{?_isa}
|
||||
Requires: readline-devel%{?_isa}
|
||||
Requires: zlib-devel
|
||||
Requires: libappstream-glib
|
||||
@ -202,27 +223,26 @@ BuildArch: noarch
|
||||
This package contains documentation for Octave.
|
||||
|
||||
%prep
|
||||
%setup -q -n %{name}-%{version}%{?rctag}
|
||||
%patch2 -p1 -b .eof
|
||||
# EPEL7's autoconf/automake is too old so don't do
|
||||
# unneeded patches there
|
||||
%if 0%{?fedora}
|
||||
%patch1 -p1 -b .sundials3
|
||||
autoreconf -i
|
||||
%autosetup -p1 -n %{name}-%{version}%{?rctag}
|
||||
%if %{with blas64}
|
||||
sed -i -e 's/OCTAVE_CHECK_LIB(suitesparseconfig,/OCTAVE_CHECK_LIB(suitesparseconfig64,/' configure.ac
|
||||
%endif
|
||||
|
||||
|
||||
%build
|
||||
%global enable64 no
|
||||
export AR=%{_bindir}/gcc-ar
|
||||
export RANLIB=%{_bindir}/gcc-ranlib
|
||||
export NM=%{_bindir}/gcc-nm
|
||||
export F77=gfortran
|
||||
# TODO: some items appear to be bundled in libcruft..
|
||||
# gl2ps.c is bundled. Anything else?
|
||||
%if !%{builddocs}
|
||||
%global disabledocs --disable-docs
|
||||
%endif
|
||||
%if %{with java}
|
||||
# Find libjvm.so for this architecture in generic location
|
||||
libjvm=$(find /usr/lib/jvm/jre/lib -name libjvm.so -printf %h)
|
||||
export JAVA_HOME=%{java_home}
|
||||
%endif
|
||||
# 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
|
||||
@ -230,12 +250,23 @@ export CPPFLAGS=-I%{_includedir}/suitesparse
|
||||
# Disable _GLIBCXX_ASSERTIONS for now
|
||||
# https://savannah.gnu.org/bugs/?55547
|
||||
export CXXFLAGS="$(echo %optflags | sed s/-Wp,-D_GLIBCXX_ASSERTIONS//)"
|
||||
%configure --enable-shared --disable-static --enable-64=%enable64 \
|
||||
|
||||
verstr=$(%{__cxx} --version | head -1)
|
||||
if [[ "$verstr" == *"GCC"* ]]; then
|
||||
CXXFLAGS="$CXXFLAGS -flto=auto"
|
||||
else
|
||||
CXXFLAGS="$CXXFLAGS -flto"
|
||||
fi
|
||||
|
||||
%configure --enable-shared --disable-static \
|
||||
--enable-float-truncate \
|
||||
%{?disabledocs} \
|
||||
--disable-silent-rules \
|
||||
--with-blas=%{blaslib}%{?with_blas64:64} \
|
||||
%if %{with java}
|
||||
--with-java-includedir=/usr/lib/jvm/java/include \
|
||||
--with-java-libdir=$libjvm \
|
||||
%endif
|
||||
--with-qrupdate \
|
||||
--with-amd --with-umfpack --with-colamd --with-ccolamd --with-cholmod \
|
||||
--with-cxsparse \
|
||||
@ -259,13 +290,15 @@ make install-data install-html install-info install-pdf DESTDIR=%{buildroot}
|
||||
mkdir -p %{buildroot}%{_pkgdocdir}
|
||||
cp -ar AUTHORS BUGS ChangeLog examples NEWS README %{buildroot}%{_pkgdocdir}/
|
||||
cp -a doc/refcard/*.pdf %{buildroot}%{_pkgdocdir}/
|
||||
%if !%{builddocs}
|
||||
tar xvf %SOURCE3 -C %{buildroot}
|
||||
%endif
|
||||
|
||||
find %{buildroot}%{_libdir} -name \*.la -delete
|
||||
|
||||
# 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
|
||||
@ -279,9 +312,7 @@ touch %{buildroot}%{_datadir}/%{name}/ls-R
|
||||
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}/metainfo/org.octave.Octave.appdata.xml
|
||||
%endif
|
||||
|
||||
# Create directories for add-on packages
|
||||
HOST_TYPE=`%{buildroot}%{_bindir}/octave-config -p CANONICAL_HOST_TYPE`
|
||||
@ -361,12 +392,19 @@ fi
|
||||
$Xorg -noreset +extension GLX +extension RANDR +extension RENDER -logfile ./xorg.log -config ./xorg.conf :99 &
|
||||
sleep 2
|
||||
export DISPLAY=:99
|
||||
make check %{?el7:|| :}
|
||||
export FLEXIBLAS=netlib
|
||||
%ifarch ppc64le
|
||||
# liboctave/array/dMatrix.cc-tst segfaults
|
||||
make check || :
|
||||
%else
|
||||
make check
|
||||
%endif
|
||||
|
||||
%ldconfig_scriptlets
|
||||
|
||||
%files
|
||||
%license COPYING
|
||||
%dir %{_pkgdocdir}
|
||||
%{_pkgdocdir}/AUTHORS
|
||||
%{_pkgdocdir}/BUGS
|
||||
%{_pkgdocdir}/ChangeLog
|
||||
@ -375,7 +413,17 @@ make check %{?el7:|| :}
|
||||
# FIXME: Create an -emacs package that has the emacs addon
|
||||
%config(noreplace) %{_sysconfdir}/ld.so.conf.d/octave-*.conf
|
||||
%{_bindir}/octave*
|
||||
%{_libdir}/octave/
|
||||
%dir %{_libdir}/octave/
|
||||
%dir %{_libdir}/octave/%{version}
|
||||
%{_libdir}/octave/%{version}/liboctave.so.9*
|
||||
%{_libdir}/octave/%{version}/liboctgui.so.8*
|
||||
%{_libdir}/octave/%{version}/liboctinterp.so.10*
|
||||
%{_libdir}/octave/%{version}/mkoctfile-%{version}
|
||||
%{_libdir}/octave/%{version}/oct/
|
||||
%{_libdir}/octave/%{version}/octave-config-%{version}
|
||||
%{_libdir}/octave/%{version}/site/
|
||||
%{_libdir}/octave/packages/
|
||||
%{_libdir}/octave/site/
|
||||
%{_libexecdir}/octave/
|
||||
%{_mandir}/man1/octave*.1.*
|
||||
%{_infodir}/liboctave.info*
|
||||
@ -397,6 +445,9 @@ make check %{?el7:|| :}
|
||||
%{_bindir}/mkoctfile
|
||||
%{_bindir}/mkoctfile-%{version}%{?rctag}
|
||||
%{_includedir}/octave-%{version}%{?rctag}/
|
||||
%{_libdir}/octave/%{version}/liboctave.so
|
||||
%{_libdir}/octave/%{version}/liboctgui.so
|
||||
%{_libdir}/octave/%{version}/liboctinterp.so
|
||||
%{_libdir}/pkgconfig/octave.pc
|
||||
%{_libdir}/pkgconfig/octinterp.pc
|
||||
%{_mandir}/man1/mkoctfile.1.*
|
||||
@ -410,6 +461,114 @@ make check %{?el7:|| :}
|
||||
%{_pkgdocdir}/refcard*.pdf
|
||||
|
||||
%changelog
|
||||
* Fri Mar 17 2023 Orion Poplawski <orion@nwra.com> - 6:7.3.0-4
|
||||
- Add upstream patch to fix doc builds
|
||||
|
||||
* Sun Feb 26 2023 Orion Poplawski <orion@nwra.com> - 6:7.3.0-3
|
||||
- Disable building docs due to texinfo 7 incompatibility
|
||||
|
||||
* Fri Feb 10 2023 FeRD (Frank Dana> <ferdnyc@gmail.com> - 6:7.3.0-3
|
||||
- Build with rapidjson to enable built-in json{decode,encode}
|
||||
|
||||
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 6:7.3.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||
|
||||
* Fri Nov 04 2022 Orion Poplawski <orion@nwra.com> - 6:7.3.0-1
|
||||
- Update to 7.3.0
|
||||
|
||||
* Sun Oct 02 2022 Orion Poplawski <orion@nwra.com> - 6:7.2.0-2
|
||||
- Disable qscintilla and sundials support on EPEL9 for now (bz#2122390)
|
||||
|
||||
* Tue Aug 02 2022 Orion Poplawski <orion@nwra.com> - 6:7.2.0-1
|
||||
- Update to 7.2.0
|
||||
|
||||
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 6:7.1.0-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Sun Jul 10 2022 Orion Poplawski <orion@nwra.com> - 6:7.1.0-2
|
||||
- Drop java for i686 (bz#2104081)
|
||||
|
||||
* Thu Apr 07 2022 Orion Poplawski <orion@nwra.com> - 6:7.1.0-1
|
||||
- Update to 7.1.0
|
||||
|
||||
* Mon Feb 07 2022 Orion Poplawski <orion@nwra.com> - 6:6.4.0-5
|
||||
- Update gnulib cdefs.h for gcc12 support on ppc64le
|
||||
|
||||
* Sat Feb 05 2022 Jiri Vanek <jvanek@redhat.com> - 6:6.4.0-4
|
||||
- Rebuilt for java-17-openjdk as system jdk
|
||||
|
||||
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 6:6.4.0-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Sun Nov 21 2021 Orion Poplawski <orion@nwra.com> - 6:6.4.0-2
|
||||
- Rebuild for hdf5 1.12.1
|
||||
|
||||
* Wed Nov 03 2021 Orion Poplawski <orion@nwra.com> - 6:6.4.0-1
|
||||
- Update to 6.4.0
|
||||
|
||||
* Wed Oct 20 2021 Antonio Trande <sagitter@fedoraproject.org> - 6:6.3.0-2
|
||||
- Rebuild for sundials-5.8.0
|
||||
|
||||
* Tue Aug 10 2021 Orion Poplawski <orion@nwra.com> - 6:6.3.0-1
|
||||
- Update to 6.3.0
|
||||
|
||||
* Mon Aug 09 2021 Orion Poplawski <orion@nwra.com> - 6:6.2.0-1
|
||||
- Update to 6.2.0
|
||||
|
||||
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 6:5.2.0-14
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Sun May 30 2021 Orion Poplawski <orion@nwra.com> - 6:5.2.0-13
|
||||
- Use brp-strip instead of brp-strip-shared (bz#1955380)
|
||||
|
||||
* Tue Apr 06 2021 Orion Poplawski <orion@nwra.com> - 6:5.2.0-12
|
||||
- Backport readline 8.1 support (bz#1946773)
|
||||
|
||||
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 6:5.2.0-11
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Wed Jan 06 2021 Orion Poplawski <orion@nwra.com> - 6:5.2.0-10
|
||||
- Rebuild for sundials 5.6.1
|
||||
|
||||
* Sun Nov 22 2020 Orion Poplawski <orion@nwra.com> - 6:5.2.0-9
|
||||
- Rebuild for sundials 5.5.0
|
||||
|
||||
* Mon Oct 05 2020 Orion Poplawski <orion@nwra.com> - 6:5.2.0-8
|
||||
- Rebuild for sundials 5.4.0
|
||||
|
||||
* Thu Aug 13 2020 Iñaki Úcar <iucar@fedoraproject.org> - 5.2.0-7
|
||||
- https://fedoraproject.org/wiki/Changes/FlexiBLAS_as_BLAS/LAPACK_manager
|
||||
|
||||
* Tue Jul 28 2020 Adam Jackson <ajax@redhat.com> - 5.2.0-6
|
||||
- Drop unnecessary (apparently unused) BuildRequires: xorg-x11-apps
|
||||
|
||||
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 6:5.2.0-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Sat Jul 11 2020 Jiri Vanek <jvanek@redhat.com> - 6:5.2.0-4
|
||||
- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11
|
||||
|
||||
* Thu Jun 25 2020 Orion Poplawski <orion@cora.nwra.com> - 6:5.2.0-3
|
||||
- Rebuild for hdf5 1.10.6
|
||||
|
||||
* Mon Apr 13 2020 Orion Poplawski <orion@nwra.com> - 6:5.2.0-2
|
||||
- Rebuild for sundials 5.2.0
|
||||
|
||||
* Mon Feb 03 2020 Orion Poplawski <orion@nwra.com> - 6:5.2.0-1
|
||||
- Update to 5.2.0
|
||||
|
||||
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 6:5.1.0-4.1
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||
|
||||
* Sat Nov 2 2019 Orion Poplawski <orion@nwra.com> - 6:5.1.0-4
|
||||
- Enable 64-bit array indexes
|
||||
|
||||
* Sat Nov 2 2019 Orion Poplawski <orion@nwra.com> - 6:5.1.0-3
|
||||
- Enable LTO optimisations
|
||||
|
||||
* Mon Oct 14 2019 Orion Poplawski <orion@nwra.com> - 6:5.1.0-2.1
|
||||
- Rebuild for suitesparse 5.4.0
|
||||
|
||||
* Wed Jul 31 2019 Orion Poplawski <orion@nwra.com> - 6:5.1.0-2
|
||||
- Drop use of %%buildarch in macros.octave (bugz#1733898)
|
||||
|
||||
|
3
sources
3
sources
@ -1,2 +1 @@
|
||||
SHA512 (octave-5.1.0.tar.lz) = 34facc20ffceaead05e62e16cc70bd603919c7e52c7489faa17b5c969a160c655f50c4aeb41ecee2e2d0a6245cc3364cf9009ddd3cecb17b9e06bbdacaa0a516
|
||||
SHA512 (octave-5.1.0-docs.tar.lz) = 6bf24ed95d5d2957271abb8902a156edc588962b95218b05936858fafe8205f4295f072388f7331ad5700946fbae701bd0c3f2a59c258f390ea92c85eb87fdd2
|
||||
SHA512 (octave-7.3.0.tar.lz) = 8448aa01fa2a0650993ff9e4a4a017c243d5bf4af17cc321458e583913f4a71c2a34d60c1f79b8fedd5f00604f0960b94a4e2c0d9b87f07b13e969afe2951aa2
|
||||
|
Loading…
Reference in New Issue
Block a user