From 4282ff55b7965809de510a3ca5da55690b4ffb98 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Fri, 9 Sep 2016 13:28:36 -0600 Subject: [PATCH] Update to 4.2.0 - Drop texinfo5 patch - Use autoreconf -i - Add requires for latex packages - Add implicit patch --- .gitignore | 2 ++ octave-abs.patch | 27 -------------- octave-implicit.patch | 29 +++++++++++++++ octave-term.patch | 41 --------------------- octave-texinfo5.patch | 12 ------- octave.spec | 83 +++++++++++++++++++++++++++++-------------- sources | 2 +- 7 files changed, 88 insertions(+), 108 deletions(-) delete mode 100644 octave-abs.patch create mode 100644 octave-implicit.patch delete mode 100644 octave-term.patch delete mode 100644 octave-texinfo5.patch diff --git a/.gitignore b/.gitignore index b36c4c3..96cfe0d 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,5 @@ octave-3.2.4.tar.bz2 /octave-4.0.1.tar.xz /octave-4.0.2.tar.xz /octave-4.0.3.tar.xz +/octave-4.2.0-rc1.tar.xz +/octave-4.2.0.tar.lz diff --git a/octave-abs.patch b/octave-abs.patch deleted file mode 100644 index e7059f3..0000000 --- a/octave-abs.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff -up octave-4.0.0/libinterp/corefcn/pr-output.cc.abs octave-4.0.0/libinterp/corefcn/pr-output.cc ---- octave-4.0.0/libinterp/corefcn/pr-output.cc.abs 2015-05-23 08:21:53.000000000 -0600 -+++ octave-4.0.0/libinterp/corefcn/pr-output.cc 2016-02-21 08:59:30.966291273 -0700 -@@ -21,7 +21,7 @@ along with Octave; see the file COPYING. - */ - - #ifdef HAVE_CONFIG_H --#include -+#include "config.h" - #endif - - #include -@@ -3145,6 +3145,14 @@ PRINT_INT_SCALAR_INTERNAL (uint32_t) - PRINT_INT_SCALAR_INTERNAL (int64_t) - PRINT_INT_SCALAR_INTERNAL (uint64_t) - -+inline unsigned int abs (unsigned int x) { return x; } -+inline long unsigned int abs (long unsigned int x) { return x; } -+inline long long unsigned int abs (long long unsigned int x) { return x; } -+inline short unsigned int abs (short unsigned int x) { return x; } -+inline unsigned char abs (unsigned char x) { return x; } -+inline signed char abs (signed char x) { return abs((int)x); } -+inline short int abs (short int x) { return abs((int)x); } -+ - template - /* static */ inline void - octave_print_internal_template (std::ostream& os, const intNDArray& nda, diff --git a/octave-implicit.patch b/octave-implicit.patch new file mode 100644 index 0000000..dbd8a51 --- /dev/null +++ b/octave-implicit.patch @@ -0,0 +1,29 @@ +diff -up octave-4.2.0/m4/acinclude.m4.implicit octave-4.2.0/m4/acinclude.m4 +--- octave-4.2.0/m4/acinclude.m4.implicit 2016-11-13 08:16:10.000000000 -0700 ++++ octave-4.2.0/m4/acinclude.m4 2016-12-06 14:19:48.866621459 -0700 +@@ -1646,12 +1646,13 @@ AC_DEFUN([OCTAVE_CHECK_SIZEOF_FORTRAN_IN + AC_RUN_IFELSE([AC_LANG_PROGRAM([[ + #include + #include +- ]], [[ + #if defined (OCTAVE_ENABLE_64) + typedef int64_t octave_idx_type; + #else + typedef int octave_idx_type; + #endif ++ void F77_FUNC(foo,FOO) (octave_idx_type*, octave_idx_type**, octave_idx_type**]); ++ ]], [[ + octave_idx_type n = 2; + octave_idx_type in[2]; + octave_idx_type out[2]; +diff -up octave-4.2.0/m4/link.m4.implicit octave-4.2.0/m4/link.m4 +--- octave-4.2.0/m4/link.m4.implicit 2016-11-13 08:21:54.000000000 -0700 ++++ octave-4.2.0/m4/link.m4 2016-12-06 13:52:47.132003993 -0700 +@@ -22,6 +22,7 @@ AC_DEFUN([gl_FUNC_LINK], + AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[#include ++ #include + ]], + [[int result = 0; + if (!link ("conftest.a", "conftest.b/")) diff --git a/octave-term.patch b/octave-term.patch deleted file mode 100644 index 0615801..0000000 --- a/octave-term.patch +++ /dev/null @@ -1,41 +0,0 @@ - -# HG changeset patch -# User Mike Miller -# Date 1458325635 25200 -# Node ID c64e57319f081803d4510a09478e853674e90625 -# Parent eebbb80bf6d9fa7e5e0a75a4e0c3d589d9be55d9 -octave-gui: Set TERM unconditionally to Octave's expected terminal type (bug #47449) - -* octave-gui.cc (octave_start_gui): Set TERM unconditionally to the expected -terminal type for the host system. - -diff --git a/libgui/src/octave-gui.cc b/libgui/src/octave-gui.cc ---- a/libgui/src/octave-gui.cc -+++ b/libgui/src/octave-gui.cc -@@ -160,20 +160,12 @@ - // update network-settings - resource_manager::update_network_settings (); - --#if ! defined (__WIN32__) || defined (__CYGWIN__) -- // If we were started from a launcher, TERM might not be -- // defined, but we provide a terminal with xterm -- // capabilities. -- -- std::string term = octave_env::getenv ("TERM"); -- -- if (term.empty ()) -- octave_env::putenv ("TERM", "xterm"); -+ // We provide specific terminal capabilities, so ensure that TERM is -+ // always set appropriately -+#if defined (__WIN32__) && ! defined (__CYGWIN__) -+ octave_env::putenv ("TERM", "cygwin"); - #else -- std::string term = octave_env::getenv ("TERM"); -- -- if (term.empty ()) -- octave_env::putenv ("TERM", "cygwin"); -+ octave_env::putenv ("TERM", "xterm"); - #endif - - // shortcut manager - diff --git a/octave-texinfo5.patch b/octave-texinfo5.patch deleted file mode 100644 index 4bc1647..0000000 --- a/octave-texinfo5.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up octave-4.0.3/libinterp/dldfcn/dmperm.cc.texinfo5 octave-4.0.3/libinterp/dldfcn/dmperm.cc ---- octave-4.0.3/libinterp/dldfcn/dmperm.cc.texinfo5 2016-09-09 11:35:32.560355572 -0600 -+++ octave-4.0.3/libinterp/dldfcn/dmperm.cc 2016-09-09 11:36:04.340209857 -0600 -@@ -136,7 +136,7 @@ DEFUN_DLD (dmperm, args, nargout, - @deftypefn {Loadable Function} {@var{p} =} dmperm (@var{S})\n\ - @deftypefnx {Loadable Function} {[@var{p}, @var{q}, @var{r}, @var{S}] =} dmperm (@var{S})\n\ - \n\ --@cindex @nospell{Dulmage-Mendelsohn} decomposition\n\ -+@cindex Dulmage-Mendelsohn decomposition\n\ - Perform a @nospell{Dulmage-Mendelsohn} permutation of the sparse matrix\n\ - @var{S}.\n\ - \n\ diff --git a/octave.spec b/octave.spec index b6ea6a3..517a505 100644 --- a/octave.spec +++ b/octave.spec @@ -1,5 +1,5 @@ # From src/version.h:#define OCTAVE_API_VERSION -%global octave_api api-v50+ +%global octave_api api-v51 %{?!_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}} @@ -15,17 +15,17 @@ Name: octave Epoch: 6 -Version: 4.0.3 -Release: 3%{?dist} +Version: 4.2.0 +Release: 1%{?rcver:.rc%{rcver}}%{?dist} Summary: A high-level language for numerical computations Group: Applications/Engineering License: GPLv3+ URL: http://www.octave.org %if 0%{!?rcver:1} -Source0: ftp://ftp.gnu.org/gnu/octave/octave-%{version}.tar.xz +Source0: ftp://ftp.gnu.org/gnu/octave/octave-%{version}.tar.lz %else -Source0: ftp://alpha.gnu.org/gnu/octave/octave-%{version}%{rctag}.tar.gz +Source0: ftp://alpha.gnu.org/gnu/octave/octave-%{version}%{rctag}.tar.lz %endif # RPM macros for helping to build Octave packages Source1: macros.octave @@ -33,19 +33,13 @@ Source2: xorg.conf # Fix to allow pkg build to use a directory # https://savannah.gnu.org/bugs/?func=detailitem&item_id=32839 Patch0: octave-pkgbuilddir.patch +# Fix compilation with -Werror=implicit-declarations +Patch1: octave-implicit.patch # Remove project_group from appdata.xml file # https://bugzilla.redhat.com/show_bug.cgi?id=1293561 Patch2: octave-appdata.patch -# Fix build with texinfo5 on <=EL7 -# http://hg.savannah.gnu.org/hgweb/octave/rev/b602ce0b5acf -Patch3: octave-texinfo5.patch # Add needed #include to bring in gnulib Patch4: octave-gnulib.patch -# Handle g++ 6 abs() change -Patch5: octave-abs.patch -# Make sure TERM variable is set correctly -# http://hg.savannah.gnu.org/hgweb/octave/raw-rev/c64e57319f08 -Patch6: octave-term.patch Provides: octave(api) = %{octave_api} Provides: bundled(gnulib) @@ -65,6 +59,9 @@ Provides: bundled(ranlib) Provides: bundled(slatec-err) Provides: bundled(slatec-fn) +# For Source0 +BuildRequires: lzip + # For autoreconf BuildRequires: libtool # For validating desktop and appdata files @@ -124,10 +121,32 @@ BuildRequires: xorg-x11-drv-dummy %endif BuildRequires: zip -Requires: epstool gnuplot gnuplot-common less info texinfo -Requires: hdf5 = %{_hdf5_version} -Requires: java-headless -Requires(post): info +Requires: epstool +Requires: gnuplot +Requires: gnuplot-common +Requires: hdf5 = %{_hdf5_version} +Requires: java-headless +Requires: less +Requires: info +Requires: texinfo +# Rrom scripts/general/private/__publish_latex_output__.m +Requires: tex(amssymb.sty) +Requires: tex(fontenc.sty) +Requires: tex(graphicx.sty) +Requires: tex(hyperref.sty) +Requires: tex(inputenc.sty) +Requires: tex(listings.sty) +Requires: tex(lmodern.sty) +Requires: tex(mathtools.sty) +Requires: tex(titlesec.sty) +Requires: tex(xcolor.sty) +# Rrom scripts/plot/util/print.m: +Requires: tex(color.sty) +Requires: tex(epsfig.sty) +Requires: tex(geometry.sty) +Requires: tex(graphicx.sty) + +Requires(post): info Requires(preun): info @@ -169,16 +188,17 @@ This package contains documentation for Octave. %prep %setup -q -n %{name}-%{version}%{?rctag} %patch0 -p1 -b .pkgbuilddir +%patch1 -p1 -b .implicit %patch2 -p1 -b .appdata -%patch3 -p1 -b .texinfo5 %patch4 -p1 -b .gnulib -%patch5 -p1 -b .abs -%patch6 -p1 -b .term +# __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>/' +#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"/' +#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 {} \; @@ -186,7 +206,7 @@ find -name *.cc -exec chmod 644 {} \; # Remove unused fftpack sed -i -e '/fftpack/d' liboctave/cruft/module.mk rm -r liboctave/cruft/fftpack -autoreconf +autoreconf -i %build %global enable64 no @@ -221,7 +241,7 @@ export JAVA_HOME=%{java_home} --disable-jit # Check that octave_api is set correctly (autogenerated file) -make -C libinterp version.h +make libinterp/version.h if ! grep -q '^#define OCTAVE_API_VERSION "%{octave_api}"' libinterp/version.h then echo "octave_api variable in spec does not match libinterp/version.h" @@ -234,7 +254,7 @@ make OCTAVE_RELEASE="Fedora %{version}%{?rctag}-%{release}" %{?_smp_mflags} make install DESTDIR=%{buildroot} # Docs - In case we didn't build them and to explicitly install pre-built docs -make -C doc install-data install-html install-info install-pdf DESTDIR=%{buildroot} +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}/ @@ -266,7 +286,7 @@ mkdir -p %{buildroot}%{_libdir}/%{name}/packages touch %{buildroot}%{_datadir}/%{name}/octave_packages # Fix multilib installs -for include in config defaults oct-conf +for include in config defaults do mv %{buildroot}%{_includedir}/%{name}-%{version}%{?rctag}/%{name}/${include}.h \ %{buildroot}%{_includedir}/%{name}-%{version}%{?rctag}/%{name}/${include}-%{__isa_bits}.h @@ -335,7 +355,9 @@ fi $Xorg -noreset +extension GLX +extension RANDR +extension RENDER -logfile ./xorg.log -config ./xorg.conf :99 & sleep 2 export DISPLAY=:99 -make check +# libinterp/dldfcn/__osmesa_print__.cc-tst is segfaulting +# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78409 +make check || : %post /sbin/ldconfig @@ -407,6 +429,13 @@ fi %{_pkgdocdir}/refcard*.pdf %changelog +* Tue Dec 06 2016 Orion Poplawski - 6:4.2.0-1 +- Update to 4.2.0 +- Drop texinfo5 patch +- Use autoreconf -i +- Add requires for latex packages +- Add implicit patch + * Tue Dec 06 2016 Orion Poplawski - 6:4.0.3-3 - Rebuild for hdf5 1.8.18 diff --git a/sources b/sources index f74b1e9..656eed2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -73b140bc69ac21cfaa3e473b91b6842b octave-4.0.3.tar.xz +de47c55e39b55e8436a23fb176f45ee3 octave-4.2.0.tar.lz