diff --git a/.gitignore b/.gitignore index a9d0685..759aae2 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,7 @@ octave-3.2.4.tar.bz2 /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 +/octave-5.1.0.tar.lz +/octave-5.1.0-docs.tar.lz diff --git a/macros.octave b/macros.octave index 5504880..38a6df6 100644 --- a/macros.octave +++ b/macros.octave @@ -33,12 +33,6 @@ print(rpm.expand("octave -H -q --no-window-system --no-site-file --eval 'pkg build -verbose -nodeps %{_builddir}/%{buildsubdir}/build "..octpkg_tarfile).."'\\n") -- Extract the source tarball for debuginfo generation print(rpm.expand("tar xf "..octpkg_tarfile.." -C %{_builddir}/%{buildsubdir}/build\\n")) - -- Define %octave_tar_suffix for later use by install/check macros - if (rpm.expand("%{?buildarch}") ~= "noarch") then - rpm.define("octave_tar_suffix %{octave_host}-%{octave_api}") - else - rpm.define("octave_tar_suffix any-none") - end } # Install a package. We use the octave pkg install command to install the @@ -49,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","%{_builddir}/%{buildsubdir}/build/%{octpkg}-%{version}-%{octave_tar_suffix}.tar.gz");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("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")); \ if [ -e %{buildroot}%{octpkgdir}/packinfo/on_uninstall.m ] \ then \ mv %{buildroot}%{octpkgdir}/packinfo/on_uninstall.m %{buildroot}%{octpkgdir}/packinfo/on_uninstall.m.orig \ @@ -57,12 +51,14 @@ fi \ echo "function on_uninstall (desc)" > %{buildroot}%{octpkgdir}/packinfo/on_uninstall.m \ echo " error ('Can not uninstall %s installed by the redhat package manager', desc.name);" >> %{buildroot}%{octpkgdir}/packinfo/on_uninstall.m \ echo "endfunction" >> %{buildroot}%{octpkgdir}/packinfo/on_uninstall.m \ -if [ -e %{_builddir}/%{buildsubdir}/build/%{octpkg}-%{version}/octave-%{octpkg}.metainfo.xml ] \ +if [ -e %{_builddir}/%{buildsubdir}/build/%{octpkg}-%{version}/*.metainfo.xml ] \ then \ - echo "Found octave-%{octpkg}.metainfo.xml" \ - mkdir -p %{buildroot}/%{_datadir}/appdata \ - cp -p %{_builddir}/%{buildsubdir}/build/%{octpkg}-%{version}/octave-%{octpkg}.metainfo.xml %{buildroot}/%{_datadir}/appdata/ \ - appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/appdata/octave-%{octpkg}.metainfo.xml \ + echo "Found .metainfo.xml appdata file" \ + 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 \ %{nil} @@ -70,7 +66,7 @@ fi \ # octave can find the package, then remove 'octave_packages' again, and re-strip # any shared objects. %octave_pkg_check \ -%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","%{_builddir}/%{buildsubdir}/build/%{octpkg}-%{version}-%{octave_tar_suffix}.tar.gz");pkg("load","%{octpkg}");runtests("%{buildroot}%{octpkgdir}");unlink(pkg("local_list"));unlink(pkg("global_list")); \ +%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} \ %{nil} diff --git a/octave-appdata.patch b/octave-appdata.patch deleted file mode 100644 index a10fa7f..0000000 --- a/octave-appdata.patch +++ /dev/null @@ -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 @@ - - http://www.octave.org - maintainers@octave.org -- GNU - diff --git a/octave-crash.patch b/octave-crash.patch new file mode 100644 index 0000000..db3143a --- /dev/null +++ b/octave-crash.patch @@ -0,0 +1,12 @@ +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 diff --git a/octave-eof.patch b/octave-eof.patch new file mode 100644 index 0000000..f2c90bb --- /dev/null +++ b/octave-eof.patch @@ -0,0 +1,28 @@ + +# HG changeset patch +# User Mike Miller +# 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); + diff --git a/octave-gnulib.patch b/octave-gnulib.patch deleted file mode 100644 index e83fb15..0000000 --- a/octave-gnulib.patch +++ /dev/null @@ -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 - #include - - namespace Faddeeva { diff --git a/octave-qbuttongroup.patch b/octave-qbuttongroup.patch deleted file mode 100644 index 7be5b0d..0000000 --- a/octave-qbuttongroup.patch +++ /dev/null @@ -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 - #include - #include -+#include - - #if defined (HAVE_QSCINTILLA) - # include "octave-qscintilla.h" diff --git a/octave-sundials3.patch b/octave-sundials3.patch new file mode 100644 index 0000000..f5110ee --- /dev/null +++ b/octave-sundials3.patch @@ -0,0 +1,504 @@ +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 ++Copyright (C) 2018 William Greene + + This file is part of Octave. + +@@ -44,15 +45,34 @@ along with Octave; see the file COPYING. + # include + # endif + +-# if defined (HAVE_IDA_IDA_DENSE_H) +-# include ++# if defined (HAVE_SUNDIALS_SUNDIALS_MATRIX_H) ++# include + # endif + +-# if defined (HAVE_IDA_IDA_KLU_H) +-# include ++# if defined (HAVE_SUNDIALS_SUNDIALS_LINEARSOLVER_H) ++# include ++# endif ++ ++# if defined (HAVE_SUNLINSOL_SUNLINSOL_DENSE_H) ++# include ++# endif ++ ++# if defined (HAVE_IDA_IDA_DIRECT_H) ++# include ++# endif ++ ++# if defined (HAVE_SUNDIALS_SUNDIALS_SPARSE_H) + # include + # endif + ++# if defined (HAVE_SUNLINSOL_SUNLINSOL_KLU_H) ++# include ++# endif ++ ++# if defined (HAVE_SUNMATRIX_SUNMATRIX_SPARSE_H) ++# include ++# endif ++ + # if defined (HAVE_NVECTOR_NVECTOR_SERIAL_H) + # include + # 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 (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 (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 +- #else +- #include + #endif + #include + ]], [[ +@@ -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 +- #else +- #include ++ #if defined (HAVE_IDA_IDA_H) ++ #include ++ #endif ++ #if defined (HAVE_SUNDIALS_SUNDIALS_SPARSE_H) ++ #include ++ #endif ++ #if defined (HAVE_SUNLINSOL_SUNLINSOL_KLU_H) ++ #include + #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 +- #else +- #include ++ #if defined (HAVE_IDA_IDA_H) ++ #include ++ #endif ++ #if defined (HAVE_SUNDIALS_SUNDIALS_MATRIX_H) ++ #include ++ #endif ++ #if defined (HAVE_SUNDIALS_SUNDIALS_LINEARSOLVER_H) ++ #include + #endif ++ #if defined (HAVE_IDA_IDA_DIRECT_H) ++ #include ++ #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); diff --git a/octave.spec b/octave.spec index ff2512b..9a2c820 100644 --- a/octave.spec +++ b/octave.spec @@ -1,12 +1,12 @@ # From src/version.h:#define OCTAVE_API_VERSION -%global octave_api api-v51 +%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 @@ -15,32 +15,32 @@ # For rc versions, change release manually #global rcver 2 %if 0%{?rcver:1} -%global rctag -rc%{?rcver} +%global rctag -rc%{?rcver} +%global relsuf .rc%{?rcver} %endif Name: octave Epoch: 6 -Version: 4.2.2 -Release: 3%{?rcver:.rc%{rcver}}.0.riscv64%{?dist} +Version: 5.1.0 +Release: 2%{?rcver:.rc%{rcver}}.0.riscv64%{?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 -# Remove project_group from appdata.xml file -# https://bugzilla.redhat.com/show_bug.cgi?id=1293561 -Patch2: octave-appdata.patch -# Add needed #include to bring in gnulib -Patch4: octave-gnulib.patch -# Add #include to fix build with latest Qt -Patch5: octave-qbuttongroup.patch +# 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 Provides: octave(api) = %{octave_api} Provides: bundled(gnulib) @@ -64,6 +64,7 @@ Provides: bundled(slatec-fn) BuildRequires: lzip # For autoreconf +BuildRequires: automake BuildRequires: libtool # For validating desktop and appdata files BuildRequires: desktop-file-utils @@ -72,12 +73,9 @@ 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 BuildRequires: fftw-devel BuildRequires: flex @@ -93,6 +91,9 @@ BuildRequires: gperf 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 @@ -108,11 +109,13 @@ BuildRequires: qrupdate-devel %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 @@ -158,9 +161,6 @@ Requires: tex(epsfig.sty) Requires: tex(geometry.sty) Requires: tex(graphicx.sty) -Requires(post): info -Requires(preun): info - %description GNU Octave is a high-level language, primarily intended for numerical @@ -179,15 +179,14 @@ C++, C, Fortran, or other languages. %package devel Summary: Development headers and files for Octave -Group: Development/Libraries 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 @@ -197,7 +196,6 @@ applications which use GNU Octave. %package doc Summary: Documentation for Octave -Group: Documentation BuildArch: noarch %description doc @@ -205,43 +203,20 @@ This package contains documentation for Octave. %prep %setup -q -n %{name}-%{version}%{?rctag} -%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 /#include <\1.h>/' -%endif -#find -name \*.h -o -name \*.cc | xargs sed -i -e 's//"config.h"/' -e 's//"base-list.h"/' - -# Check permissions -find -name *.cc -exec chmod 644 {} \; - -# 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 - +%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 +%endif + %build %global enable64 no 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 @@ -250,14 +225,16 @@ libjvm=$(find /usr/lib/jvm/jre/lib -name libjvm.so -printf %h) 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 +# 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 \ --with-amd --with-umfpack --with-colamd --with-ccolamd --with-cholmod \ @@ -265,10 +242,10 @@ export JAVA_HOME=%{java_home} --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 @@ -286,6 +263,9 @@ cp -a doc/refcard/*.pdf %{buildroot}%{_pkgdocdir}/ # 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 @@ -296,9 +276,11 @@ perl -pi -e "s,%{buildroot},," %{buildroot}%{_datadir}/%{name}/ls-R # 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 @@ -310,7 +292,7 @@ mkdir -p %{buildroot}%{_libdir}/%{name}/packages 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 @@ -379,24 +361,11 @@ fi $Xorg -noreset +extension GLX +extension RANDR +extension RENDER -logfile ./xorg.log -config ./xorg.conf :99 & sleep 2 export DISPLAY=:99 -make check - -%post -%{?ldconfig} -%if %{builddocs} -/sbin/install-info --info-dir=%{_infodir} --section="Programming" \ - %{_infodir}/octave.info || : +%ifnarch riscv64 +make check %{?el7:|| :} %endif -%preun -%if %{builddocs} -if [ "$1" = "0" ]; then - /sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/octave.info || : -fi -%endif - -%ldconfig_postun - +%ldconfig_scriptlets %files %license COPYING @@ -413,10 +382,10 @@ fi %{_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}/ @@ -430,6 +399,8 @@ fi %{_bindir}/mkoctfile %{_bindir}/mkoctfile-%{version}%{?rctag} %{_includedir}/octave-%{version}%{?rctag}/ +%{_libdir}/pkgconfig/octave.pc +%{_libdir}/pkgconfig/octinterp.pc %{_mandir}/man1/mkoctfile.1.* %files doc @@ -441,8 +412,57 @@ fi %{_pkgdocdir}/refcard*.pdf %changelog -* Wed Jun 20 2018 David Abdurachmanov - 6:4.2.2-3.0.riscv64 -- Add support for RISC-V (riscv64) +* Tue Aug 20 2019 David Abdurachmanov - 6:5.1.0-2.0.riscv64 +- Disable tests on RISC-V (riscv64) + +* Wed Jul 31 2019 Orion Poplawski - 6:5.1.0-2 +- Drop use of %%buildarch in macros.octave (bugz#1733898) + +* Thu Jul 25 2019 Fedora Release Engineering - 6:5.1.0-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sun Jun 16 2019 Orion Poplawski - 6:5.1.0-1 +- Update to 5.1.0 + +* Mon May 6 2019 Orion Poplawski - 6:4.4.1-8 +- Backport upstream patch for proper EOF handling (bugz#1705129) + +* Tue Apr 23 2019 Björn Esser - 6:4.4.1-7 +- rebuilt (sundials) + +* Sat Mar 16 2019 Orion Poplawski - 6:4.4.1-6 +- Rebuild for hdf5 1.10.5 + +* Thu Mar 7 2019 Tim Landscheidt - 6:4.4.1-5 +- Remove obsolete requirements for post/preun scriptlets + +* Sun Feb 17 2019 Igor Gnatenko - 6:4.4.1-4 +- Rebuild for readline 8.0 + +* Sat Feb 16 2019 Björn Esser - 6:4.4.1-3 +- rebuilt (qscintilla) + +* Tue Feb 12 2019 Björn Esser - 6:4.4.1-2 +- rebuilt (qscintilla) +- Fix pre-release tag + +* Fri Feb 01 2019 Fedora Release Engineering - 6:4.4.1-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Sun Nov 11 2018 Orion Poplawski - 6:4.4.1-1 +- Update to 4.4.1 + +* Fri Jul 13 2018 Fedora Release Engineering - 6:4.2.2-6.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Mon Jul 02 2018 Colin B. Macdonald - 6:4.2.2-6 +- macros: support other names for appdata .metainfo.xml files + +* Thu Jun 28 2018 Colin B. Macdonald - 6:4.2.2-5 +- macros: support dependencies in octave_pkg_check + +* Thu Jun 21 2018 Orion Poplawski - 6:4.2.2-4 +- Add patch to fix crash with Ctrl-D (bug #1589460) * Sun Jun 17 2018 Orion Poplawski - 6:4.2.2-3 - Add requires hicolor-icon-theme diff --git a/sources b/sources index b78b89c..386fb90 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ -SHA512 (octave-4.2.2.tar.lz) = 694453eeda99047a216c047f0d0147ce7ec89497cba766927734bb9e82eb9f9c00a5c2ddc7f9af6796fcec8f85c8102ece20db6f8ba0a7d5e9a486bcff3ab069 +SHA512 (octave-5.1.0.tar.lz) = 34facc20ffceaead05e62e16cc70bd603919c7e52c7489faa17b5c969a160c655f50c4aeb41ecee2e2d0a6245cc3364cf9009ddd3cecb17b9e06bbdacaa0a516 +SHA512 (octave-5.1.0-docs.tar.lz) = 6bf24ed95d5d2957271abb8902a156edc588962b95218b05936858fafe8205f4295f072388f7331ad5700946fbae701bd0c3f2a59c258f390ea92c85eb87fdd2