Update to 4.2.0

- Drop texinfo5 patch
- Use autoreconf -i
- Add requires for latex packages
- Add implicit patch
This commit is contained in:
Orion Poplawski 2016-09-09 13:28:36 -06:00
parent 3e0830ac09
commit 4282ff55b7
7 changed files with 88 additions and 108 deletions

2
.gitignore vendored
View File

@ -24,3 +24,5 @@ octave-3.2.4.tar.bz2
/octave-4.0.1.tar.xz /octave-4.0.1.tar.xz
/octave-4.0.2.tar.xz /octave-4.0.2.tar.xz
/octave-4.0.3.tar.xz /octave-4.0.3.tar.xz
/octave-4.2.0-rc1.tar.xz
/octave-4.2.0.tar.lz

View File

@ -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 <config.h>
+#include "config.h"
#endif
#include <cfloat>
@@ -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 <class T>
/* static */ inline void
octave_print_internal_template (std::ostream& os, const intNDArray<T>& nda,

29
octave-implicit.patch Normal file
View File

@ -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 <assert.h>
#include <stdint.h>
- ]], [[
#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 <unistd.h>
+ #include <stdio.h>
]],
[[int result = 0;
if (!link ("conftest.a", "conftest.b/"))

View File

@ -1,41 +0,0 @@
# HG changeset patch
# User Mike Miller <mtmiller@octave.org>
# 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

View File

@ -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\

View File

@ -1,5 +1,5 @@
# From src/version.h:#define OCTAVE_API_VERSION # From src/version.h:#define OCTAVE_API_VERSION
%global octave_api api-v50+ %global octave_api api-v51
%{?!_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}} %{?!_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}}
@ -15,17 +15,17 @@
Name: octave Name: octave
Epoch: 6 Epoch: 6
Version: 4.0.3 Version: 4.2.0
Release: 3%{?dist} Release: 1%{?rcver:.rc%{rcver}}%{?dist}
Summary: A high-level language for numerical computations Summary: A high-level language for numerical computations
Group: Applications/Engineering Group: Applications/Engineering
License: GPLv3+ License: GPLv3+
URL: http://www.octave.org URL: http://www.octave.org
%if 0%{!?rcver:1} %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 %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 %endif
# RPM macros for helping to build Octave packages # RPM macros for helping to build Octave packages
Source1: macros.octave Source1: macros.octave
@ -33,19 +33,13 @@ Source2: xorg.conf
# Fix to allow pkg build to use a directory # Fix to allow pkg build to use a directory
# https://savannah.gnu.org/bugs/?func=detailitem&item_id=32839 # https://savannah.gnu.org/bugs/?func=detailitem&item_id=32839
Patch0: octave-pkgbuilddir.patch Patch0: octave-pkgbuilddir.patch
# Fix compilation with -Werror=implicit-declarations
Patch1: octave-implicit.patch
# Remove project_group from appdata.xml file # Remove project_group from appdata.xml file
# https://bugzilla.redhat.com/show_bug.cgi?id=1293561 # https://bugzilla.redhat.com/show_bug.cgi?id=1293561
Patch2: octave-appdata.patch 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 <math.h> to bring in gnulib # Add needed #include <math.h> to bring in gnulib
Patch4: octave-gnulib.patch 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: octave(api) = %{octave_api}
Provides: bundled(gnulib) Provides: bundled(gnulib)
@ -65,6 +59,9 @@ Provides: bundled(ranlib)
Provides: bundled(slatec-err) Provides: bundled(slatec-err)
Provides: bundled(slatec-fn) Provides: bundled(slatec-fn)
# For Source0
BuildRequires: lzip
# For autoreconf # For autoreconf
BuildRequires: libtool BuildRequires: libtool
# For validating desktop and appdata files # For validating desktop and appdata files
@ -124,9 +121,31 @@ BuildRequires: xorg-x11-drv-dummy
%endif %endif
BuildRequires: zip BuildRequires: zip
Requires: epstool gnuplot gnuplot-common less info texinfo Requires: epstool
Requires: gnuplot
Requires: gnuplot-common
Requires: hdf5 = %{_hdf5_version} Requires: hdf5 = %{_hdf5_version}
Requires: java-headless 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(post): info
Requires(preun): info Requires(preun): info
@ -169,16 +188,17 @@ This package contains documentation for Octave.
%prep %prep
%setup -q -n %{name}-%{version}%{?rctag} %setup -q -n %{name}-%{version}%{?rctag}
%patch0 -p1 -b .pkgbuilddir %patch0 -p1 -b .pkgbuilddir
%patch1 -p1 -b .implicit
%patch2 -p1 -b .appdata %patch2 -p1 -b .appdata
%patch3 -p1 -b .texinfo5
%patch4 -p1 -b .gnulib %patch4 -p1 -b .gnulib
%patch5 -p1 -b .abs # __osmesa_print__ test is triggering a crash in libgcc, disable it
%patch6 -p1 -b .term # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78409
#sed -i -e '/^%!/d' libinterp/dldfcn/__osmesa_print__.cc
# Explicitly use gnulib headers # Explicitly use gnulib headers
%if 0%{?fedora} >= 24 %if 0%{?fedora} >= 24
find -name \*.cc -o -name \*.h -o -name \*.yy | xargs sed -i -e 's/#include <c\(math\|stdlib\)>/#include <\1.h>/' #find -name \*.cc -o -name \*.h -o -name \*.yy | xargs sed -i -e 's/#include <c\(math\|stdlib\)>/#include <\1.h>/'
%endif %endif
find -name \*.h -o -name \*.cc | xargs sed -i -e 's/<config.h>/"config.h"/' -e 's/<base-list.h>/"base-list.h"/' #find -name \*.h -o -name \*.cc | xargs sed -i -e 's/<config.h>/"config.h"/' -e 's/<base-list.h>/"base-list.h"/'
# Check permissions # Check permissions
find -name *.cc -exec chmod 644 {} \; find -name *.cc -exec chmod 644 {} \;
@ -186,7 +206,7 @@ find -name *.cc -exec chmod 644 {} \;
# Remove unused fftpack # Remove unused fftpack
sed -i -e '/fftpack/d' liboctave/cruft/module.mk sed -i -e '/fftpack/d' liboctave/cruft/module.mk
rm -r liboctave/cruft/fftpack rm -r liboctave/cruft/fftpack
autoreconf autoreconf -i
%build %build
%global enable64 no %global enable64 no
@ -221,7 +241,7 @@ export JAVA_HOME=%{java_home}
--disable-jit --disable-jit
# Check that octave_api is set correctly (autogenerated file) # 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 if ! grep -q '^#define OCTAVE_API_VERSION "%{octave_api}"' libinterp/version.h
then then
echo "octave_api variable in spec does not match libinterp/version.h" 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} make install DESTDIR=%{buildroot}
# Docs - In case we didn't build them and to explicitly install pre-built docs # 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} mkdir -p %{buildroot}%{_pkgdocdir}
cp -ar AUTHORS BUGS ChangeLog examples NEWS README %{buildroot}%{_pkgdocdir}/ cp -ar AUTHORS BUGS ChangeLog examples NEWS README %{buildroot}%{_pkgdocdir}/
cp -a doc/refcard/*.pdf %{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 touch %{buildroot}%{_datadir}/%{name}/octave_packages
# Fix multilib installs # Fix multilib installs
for include in config defaults oct-conf for include in config defaults
do do
mv %{buildroot}%{_includedir}/%{name}-%{version}%{?rctag}/%{name}/${include}.h \ mv %{buildroot}%{_includedir}/%{name}-%{version}%{?rctag}/%{name}/${include}.h \
%{buildroot}%{_includedir}/%{name}-%{version}%{?rctag}/%{name}/${include}-%{__isa_bits}.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 & $Xorg -noreset +extension GLX +extension RANDR +extension RENDER -logfile ./xorg.log -config ./xorg.conf :99 &
sleep 2 sleep 2
export DISPLAY=:99 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 %post
/sbin/ldconfig /sbin/ldconfig
@ -407,6 +429,13 @@ fi
%{_pkgdocdir}/refcard*.pdf %{_pkgdocdir}/refcard*.pdf
%changelog %changelog
* Tue Dec 06 2016 Orion Poplawski <orion@cora.nwra.com> - 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 <orion@cora.nwra.com> - 6:4.0.3-3 * Tue Dec 06 2016 Orion Poplawski <orion@cora.nwra.com> - 6:4.0.3-3
- Rebuild for hdf5 1.8.18 - Rebuild for hdf5 1.8.18

View File

@ -1 +1 @@
73b140bc69ac21cfaa3e473b91b6842b octave-4.0.3.tar.xz de47c55e39b55e8436a23fb176f45ee3 octave-4.2.0.tar.lz