Merge branch '5.1'

Conflicts:
	octave-eof.patch
	octave.spec
This commit is contained in:
Orion Poplawski 2019-06-16 20:39:15 -06:00
commit ca67dd2418
5 changed files with 89 additions and 94 deletions

2
.gitignore vendored
View File

@ -30,3 +30,5 @@ octave-3.2.4.tar.bz2
/octave-4.2.2.tar.lz
/octave-4.4.1.tar.lz
/octave-4.4.1-docs.tar.gz
/octave-5.1.0.tar.lz
/octave-5.1.0-docs.tar.lz

View File

@ -1,15 +1,28 @@
diff -up octave-4.4.1/libinterp/corefcn/sysdep.cc.eof octave-4.4.1/libinterp/corefcn/sysdep.cc
--- octave-4.4.1/libinterp/corefcn/sysdep.cc.eof 2019-05-06 21:43:06.906724728 -0600
+++ octave-4.4.1/libinterp/corefcn/sysdep.cc 2019-05-06 21:44:58.445306461 -0600
@@ -559,7 +559,10 @@ octave_kbhit (bool wait)
int c = std::cin.get ();
# 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);
+ }
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);
// Restore it, enabling system call restarts (if possible).
octave::set_interrupt_handler (saved_interrupt_handler, true);

View File

@ -1,7 +1,7 @@
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
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
@ -20,18 +20,18 @@ diff -up octave-4.4.1/configure.ac.sundials3 octave-4.4.1/configure.ac
&& 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
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-2018 Francesco Faccio <francesco.faccio@mail.polimi.it>
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.
@@ -43,15 +44,34 @@ along with Octave; see the file COPYING.
@@ -44,15 +45,34 @@ along with Octave; see the file COPYING.
# include <ida/ida.h>
# endif
@ -70,7 +70,7 @@ diff -up octave-4.4.1/libinterp/dldfcn/__ode15__.cc.sundials3 octave-4.4.1/libin
# if defined (HAVE_NVECTOR_NVECTOR_SERIAL_H)
# include <nvector/nvector_serial.h>
# endif
@@ -111,7 +131,8 @@ namespace octave
@@ -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),
@ -80,7 +80,7 @@ diff -up octave-4.4.1/libinterp/dldfcn/__ode15__.cc.sundials3 octave-4.4.1/libin
{ }
@@ -121,11 +142,17 @@ namespace octave
@@ -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),
@ -100,7 +100,7 @@ diff -up octave-4.4.1/libinterp/dldfcn/__ode15__.cc.sundials3 octave-4.4.1/libin
IDA&
set_jacobian (octave_function *jac, DAEJacFuncDense j)
@@ -183,7 +210,7 @@ namespace octave
@@ -184,7 +211,7 @@ namespace octave
static N_Vector ColToNVec (const ColumnVector& data, long int n);
void
@ -109,7 +109,7 @@ diff -up octave-4.4.1/libinterp/dldfcn/__ode15__.cc.sundials3 octave-4.4.1/libin
void
set_tolerance (ColumnVector& abstol, realtype reltol);
@@ -198,25 +225,24 @@ namespace octave
@@ -199,25 +226,24 @@ namespace octave
void
resfun_impl (realtype t, N_Vector& yy,
N_Vector& yyp, N_Vector& rr);
@ -142,7 +142,7 @@ diff -up octave-4.4.1/libinterp/dldfcn/__ode15__.cc.sundials3 octave-4.4.1/libin
N_Vector, N_Vector)
{
IDA *self = static_cast <IDA *> (user_data);
@@ -226,7 +252,7 @@ namespace octave
@@ -227,7 +253,7 @@ namespace octave
void
jacsparse_impl (realtype t, realtype cj, N_Vector& yy,
@ -151,7 +151,7 @@ diff -up octave-4.4.1/libinterp/dldfcn/__ode15__.cc.sundials3 octave-4.4.1/libin
#endif
void set_maxstep (realtype maxstep);
@@ -290,6 +316,8 @@ namespace octave
@@ -291,6 +317,8 @@ namespace octave
DAEJacFuncSparse jacspfun;
DAEJacCellDense jacdcell;
DAEJacCellSparse jacspcell;
@ -160,7 +160,7 @@ diff -up octave-4.4.1/libinterp/dldfcn/__ode15__.cc.sundials3 octave-4.4.1/libin
};
int
@@ -322,36 +350,61 @@ namespace octave
@@ -323,36 +351,61 @@ namespace octave
}
void
@ -234,7 +234,7 @@ diff -up octave-4.4.1/libinterp/dldfcn/__ode15__.cc.sundials3 octave-4.4.1/libin
ColumnVector y = NVecToCol (yy, Neq);
ColumnVector yp = NVecToCol (yyp, Neq);
@@ -365,15 +418,15 @@ namespace octave
@@ -366,15 +419,15 @@ namespace octave
std::copy (jac.fortran_vec (),
jac.fortran_vec () + jac.numel (),
@ -253,7 +253,7 @@ diff -up octave-4.4.1/libinterp/dldfcn/__ode15__.cc.sundials3 octave-4.4.1/libin
{
BEGIN_INTERRUPT_WITH_EXCEPTIONS;
@@ -389,17 +442,18 @@ namespace octave
@@ -390,17 +443,18 @@ namespace octave
else
jac = (*jacspcell) (spdfdy, spdfdyp, cj);
@ -276,7 +276,7 @@ diff -up octave-4.4.1/libinterp/dldfcn/__ode15__.cc.sundials3 octave-4.4.1/libin
}
END_INTERRUPT_WITH_EXCEPTIONS;
@@ -566,7 +620,7 @@ namespace octave
@@ -567,7 +621,7 @@ namespace octave
//main loop
while (((posdirection == 1 && tsol < tend)
@ -285,7 +285,7 @@ diff -up octave-4.4.1/libinterp/dldfcn/__ode15__.cc.sundials3 octave-4.4.1/libin
&& status == 0)
{
if (IDASolve (mem, tend, &tsol, yy, yyp, IDA_ONE_STEP) != 0)
@@ -691,7 +745,7 @@ namespace octave
@@ -692,7 +746,7 @@ namespace octave
// Linear interpolation
ie(0) = index(0);
te(0) = tsol - val (index(0)) * (tsol - told)
@ -294,7 +294,7 @@ diff -up octave-4.4.1/libinterp/dldfcn/__ode15__.cc.sundials3 octave-4.4.1/libin
ColumnVector ytemp
= y - ((tsol - te(0)) * (y - yold) / (tsol - told));
@@ -716,7 +770,7 @@ namespace octave
@@ -717,7 +771,7 @@ namespace octave
// Linear interpolation
ie(temp+i) = index(i);
te(temp+i) = tsol - val(index(i)) * (tsol - told)
@ -303,7 +303,7 @@ diff -up octave-4.4.1/libinterp/dldfcn/__ode15__.cc.sundials3 octave-4.4.1/libin
ColumnVector ytemp
= y - (tsol - te (temp + i)) * (y - yold) / (tsol - told);
@@ -1095,7 +1149,7 @@ namespace octave
@@ -1096,7 +1150,7 @@ namespace octave
event_fcn = options.getfield("Events").function_value ();
// Set up linear solver
@ -312,10 +312,10 @@ diff -up octave-4.4.1/libinterp/dldfcn/__ode15__.cc.sundials3 octave-4.4.1/libin
// 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
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], [
@ -330,7 +330,7 @@ diff -up octave-4.4.1/m4/acinclude.m4.sundials3 octave-4.4.1/m4/acinclude.m4
#endif
#include <assert.h>
]], [[
@@ -2197,61 +2194,72 @@ AC_DEFUN([OCTAVE_CHECK_SUNDIALS_SIZEOF_R
@@ -2233,61 +2230,72 @@ AC_DEFUN([OCTAVE_CHECK_SUNDIALS_SIZEOF_R
fi
])
dnl
@ -436,9 +436,9 @@ diff -up octave-4.4.1/m4/acinclude.m4.sundials3 octave-4.4.1/m4/acinclude.m4
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
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);
@ -457,9 +457,9 @@ diff -up octave-4.4.1/scripts/ode/ode15i.m.sundials3 octave-4.4.1/scripts/ode/od
%! 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
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);

View File

@ -1,12 +1,12 @@
# From src/version.h:#define OCTAVE_API_VERSION
%global octave_api api-v52
%global octave_api api-v53
%global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d)
%global builddocs 1
# Use Qt5 on F26+
%if 0%{?fedora} >= 26
%if 0%{?fedora}
%bcond_without qt5
%else
%bcond_with qt5
@ -21,25 +21,19 @@
Name: octave
Epoch: 6
Version: 4.4.1
Release: 8%{?relsuf}%{?dist}
Version: 5.1.0
Release: 1%{?rcver:.rc%{rcver}}%{?dist}
Summary: A high-level language for numerical computations
License: GPLv3+
URL: http://www.octave.org
%if 0%{!?rcver:1}
Source0: ftp://ftp.gnu.org/gnu/octave/octave-%{version}.tar.lz
%else
Source0: ftp://alpha.gnu.org/gnu/octave/octave-%{version}%{rctag}.tar.lz
%endif
Source0: https://ftp.gnu.org/gnu/octave/octave-%{version}.tar.lz
#Source0: https://alpha.gnu.org/gnu/octave/octave-%{version}%{?rctag}.tar.lz
# 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
Source3: octave-5.1.0-docs.tar.lz
# SUNDIALS 3 support
# https://savannah.gnu.org/bugs/?52475
Patch1: octave-sundials3.patch
@ -79,11 +73,7 @@ BuildRequires: libappstream-glib
%endif
BuildRequires: arpack-devel
%if 0%{?fedora} >= 27
BuildRequires: openblas-devel
%else
BuildRequires: atlas-devel
%endif
BuildRequires: bison
BuildRequires: bzip2-devel
BuildRequires: curl-devel
@ -190,13 +180,13 @@ C++, C, Fortran, or other languages.
%package devel
Summary: Development headers and files for Octave
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires: readline-devel fftw-devel hdf5-devel zlib-devel
Requires: gcc-c++ gcc-gfortran
%if 0%{?fedora} >= 27
Requires: openblas-devel
%else
Requires: atlas-devel
%endif
Requires: gcc-c++
Requires: gcc-gfortran
Requires: fftw-devel%{?_isa}
Requires: hdf5-devel%{?_isa}
Requires: openblas-devel%{?_isa}
Requires: readline-devel%{?_isa}
Requires: zlib-devel
Requires: libappstream-glib
%description devel
@ -213,18 +203,11 @@ This package contains documentation for Octave.
%prep
%setup -q -n %{name}-%{version}%{?rctag}
%patch0 -p1 -b .crash
%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
# Remove unused fftpack
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
@ -234,13 +217,6 @@ autoreconf -i
export F77=gfortran
# TODO: some items appear to be bundled in libcruft..
# gl2ps.c is bundled. Anything else?
%if 0%{?fedora} >= 21 || 0%{?rhel} >= 7
%global atlasblaslib -ltatlas
%global atlaslapacklib -ltatlas
%else
%global atlasblaslib -lf77blas -latlas
%global atlaslapacklib -llapack
%endif
%if !%{builddocs}
%global disabledocs --disable-docs
%endif
@ -251,14 +227,13 @@ export JAVA_HOME=%{java_home}
# --enable-float-truncate - https://savannah.gnu.org/bugs/?40560
# sundials headers need to know where to find suitesparse headers
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 \
--enable-float-truncate \
%{?disabledocs} \
--disable-silent-rules \
%if 0%{?fedora} < 27
--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 \
@ -267,10 +242,10 @@ export CPPFLAGS=-I%{_includedir}/suitesparse
--disable-jit
# Check that octave_api is set correctly (autogenerated file)
make libinterp/version.h
if ! grep -q '^#define OCTAVE_API_VERSION "%{octave_api}"' libinterp/version.h
make liboctave/version.h
if ! grep -q '^#define OCTAVE_API_VERSION "%{octave_api}"' liboctave/version.h
then
echo "octave_api variable in spec does not match libinterp/version.h"
echo "octave_api variable in spec does not match liboctave/version.h"
exit 1
fi
@ -386,7 +361,7 @@ fi
$Xorg -noreset +extension GLX +extension RANDR +extension RENDER -logfile ./xorg.log -config ./xorg.conf :99 &
sleep 2
export DISPLAY=:99
make check
make check %{?el7:|| :}
%ldconfig_scriptlets
@ -422,6 +397,8 @@ make check
%{_bindir}/mkoctfile
%{_bindir}/mkoctfile-%{version}%{?rctag}
%{_includedir}/octave-%{version}%{?rctag}/
%{_libdir}/pkgconfig/octave.pc
%{_libdir}/pkgconfig/octinterp.pc
%{_mandir}/man1/mkoctfile.1.*
%files doc
@ -433,6 +410,9 @@ make check
%{_pkgdocdir}/refcard*.pdf
%changelog
* Sun Jun 16 2019 Orion Poplawski <orion@nwra.com> - 6:5.1.0-1
- Update to 5.1.0
* Mon May 6 2019 Orion Poplawski <orion@nwra.com> - 6:4.4.1-8
- Backport upstream patch for proper EOF handling (bugz#1705129)

View File

@ -1,2 +1,2 @@
SHA512 (octave-4.4.1.tar.lz) = 8fbc6d35ae2bcd14b5cd52c30f761c87940c25ad514984fdb4baa6c99d6d371cb76e07cc50b020eb19470348674b3cd7069ed0eb20010dc3826a6e78781c0fa0
SHA512 (octave-4.4.1-docs.tar.gz) = e970d512bb036f5954e3b8c9ac246c1624e9964fa2aeadc0f84dac01cc37af7f8fe5e93329d11ccc9ae442bfbaa1625dd2a21bc157c99d0992f5e1feada6f620
SHA512 (octave-5.1.0.tar.lz) = 34facc20ffceaead05e62e16cc70bd603919c7e52c7489faa17b5c969a160c655f50c4aeb41ecee2e2d0a6245cc3364cf9009ddd3cecb17b9e06bbdacaa0a516
SHA512 (octave-5.1.0-docs.tar.lz) = 6bf24ed95d5d2957271abb8902a156edc588962b95218b05936858fafe8205f4295f072388f7331ad5700946fbae701bd0c3f2a59c258f390ea92c85eb87fdd2