Version 9.0 (bz 1756780, 1770880).

Also:
- Drop upstreamed -ecm and -primecount patches.
- Add -escape patch.
- The old notebook (sagenb) is no longer shipped, so drop the -sagenb
  and -sagenb-python3 patches, the -notebook subpackage, and some BRs.
- New -jupyter subpackage.
- Add suitesparse BR.
- Drop pathlib2 BR (bz 1797116).
This commit is contained in:
Jerry James 2020-02-28 09:38:49 -07:00
parent 65c5f9e579
commit 2fac775552
13 changed files with 3724 additions and 956 deletions

View file

@ -18,9 +18,6 @@
%bcond_with docs
%endif
# not functional due to missing jar dependencies
%bcond_with sage3d
# use a workaround to match upstream sagemath patched sphinx
%bcond_without sphinx_hack
@ -40,7 +37,7 @@
%global combinatorial_designs_pkg combinatorial_designs-20140630
%global conway_polynomials_pkg conway_polynomials-0.5
%global cremona_ver 2016-10-17
%global cremona_ver 2019-10-29
%global elliptic_curves_pkg elliptic_curves-0.8.1
%global flintqs_pkg flintqs-1.0
%global graphs_pkg graphs-20161026
@ -59,8 +56,7 @@
%endif
%global polytopes_db_pkg polytopes_db-20170220
%global rubiks_pkg rubiks-20070912
%global sagenb_pkg sagenb-1.1.2
%global sagetex_pkg sagetex-3.3
%global sagetex_pkg sagetex-3.4
%global Sphinx_pkg Sphinx-1.8.5
%global singular_pkg singular-4.1.1p2
%if %{with bundled_thebe}
@ -68,7 +64,7 @@
%global thebe_pkg thebe-%{thebe_ver}
%endif
%if %{with bundled_threejs}
%global threejs_ver r105
%global threejs_ver r110
%global threejs_pkg threejs-%{threejs_ver}
%endif
%if %{with bundled_widgetsnbextension}
@ -77,7 +73,7 @@
%endif
# Spkg equivalents of required rpms; we pretend they are installed as spkgs.
%global SAGE_REQUIRED_PKGS 4ti2-1.6.9 bliss-0.73 cbc-2.10.3 CoCoALib-0.99601 coxeter3-1.1 cryptominisat-5.6.8 database_cremona_ellcurve-%{cremona_ver} gap_packages-4.10.2 gmp-6.1.2 libsirocco-2.0 lrslib-070 mcqd-1.0 meataxe-1.0 primecount-5.1 qepcad-B.1.72 saclib-2.2.7 surf-1.0.6-gcc6 tdlib-0.9.0
%global SAGE_REQUIRED_PKGS 4ti2-1.6.9 bliss-0.73 cbc-2.10.4 CoCoALib-0.99650 coxeter3-3.1 cryptominisat-5.6.8 database_cremona_ellcurve-%{cremona_ver} gap_packages-4.10.2 gmp-6.1.2 libsirocco-2.0.2 lrslib-070 mcqd-1.0 meataxe-1.0 primecount-5.3 qepcad-B.1.72 saclib-2.2.7 surf-1.0.6-gcc6 tdlib-0.9.0
%ifarch %{ix86} x86_64
%global SAGE_REQUIRED_PKGS %{SAGE_REQUIRED_PKGS} fes-0.2
@ -94,8 +90,8 @@
Name: sagemath
Summary: A free open-source mathematics software system
Version: 8.9
Release: 3%{?dist}
Version: 9.0
Release: 1%{?dist}
# The file ${SAGE_ROOT}/COPYING.txt is the upstream license breakdown file
# Additionally, every $files section has a comment with the license name
# before files with that license
@ -107,8 +103,8 @@ Source2: gprc.expect
# Follow maxima's ExclusiveArch
ExclusiveArch: aarch64 %{arm} %{ix86} x86_64 ppc sparcv9
# Fix ecm interact() command
Patch0: %{name}-ecm.patch
# Fix stray escapes in python strings
Patch0: %{name}-escape.patch
# Fix a "random" bit chooser that always chooses 0
Patch1: %{name}-random.patch
@ -122,7 +118,7 @@ Patch3: %{name}-extensions.patch
# helper to:
# o respect a DESTDIR environment variable
# o avoid double '//' in pathnames, what can confused debugedit & co
# o avoid double '//' in pathnames, which can confuse debugedit & co
# o minor change to help in incremental builds by avoiding rebuilding
# files
# o do not assume there is an installed sagemath
@ -131,92 +127,83 @@ Patch4: %{name}-rpmbuild.patch
# build documentation in buildroot environment
Patch5: %{name}-sagedoc.patch
# sage notebook rpm and system environment adjustments
Patch6: %{name}-sagenb.patch
# do not attempt to create state files in system directories
Patch7: %{name}-readonly.patch
Patch6: %{name}-readonly.patch
# work with all maxima-runtime lisp backend packages
Patch8: %{name}-maxima.patch
Patch7: %{name}-maxima.patch
# execute 4ti2 programs in $PATH not in $SAGE_ROOT/local/bin
Patch9: %{name}-4ti2.patch
Patch8: %{name}-4ti2.patch
# use jmol itself to export preview images
# FIXME besides not using X and told so, fails if DISPLAY is not set
Patch10: %{name}-jmol.patch
Patch9: %{name}-jmol.patch
# tell the user how to install the large Cremona database
# add a missing commit() that causes large database construction to fail
Patch11: %{name}-cremona.patch
Patch10: %{name}-cremona.patch
# adapt to python 3 and cython running in python 3 mode
Patch12: %{name}-python3.patch
Patch11: %{name}-python3.patch
# correct path to the nauty geng program
Patch13: %{name}-nauty.patch
Patch12: %{name}-nauty.patch
# remove the buildroot path from Cython output
Patch14: %{name}-buildroot.patch
Patch13: %{name}-buildroot.patch
# update c++ standard to fix FTBFS
Patch15: %{name}-lcalc.patch
Patch14: %{name}-lcalc.patch
# avoid assertion in coin backend
Patch16: %{name}-cbc.patch
Patch15: %{name}-cbc.patch
# Use system gap directories
Patch17: %{name}-libgap.patch
Patch16: %{name}-libgap.patch
# Build fes
Patch18: %{name}-fes-build.patch
Patch17: %{name}-fes-build.patch
# Disable fes
Patch19: %{name}-fes.patch
Patch18: %{name}-fes.patch
# Side effect of using distro packages
# https://bugzilla.redhat.com/show_bug.cgi?id=974769
Patch20: %{name}-sympy.patch
Patch19: %{name}-sympy.patch
# Correct unable to start QEPCAD within sage
# https://bugzilla.redhat.com/show_bug.cgi?id=1243590
Patch21: %{name}-qepcad.patch
Patch20: %{name}-qepcad.patch
# Correct path to arb headers
Patch22: %{name}-arb.patch
Patch21: %{name}-arb.patch
# Add missing include paths
Patch23: %{name}-includes.patch
Patch22: %{name}-includes.patch
# Use openblas
Patch24: %{name}-openblas.patch
Patch23: %{name}-openblas.patch
# Fix paths to latte-integrale binaries
Patch25: %{name}-latte.patch
Patch24: %{name}-latte.patch
# Upstream fixes for random SIGFPEs due to ecl messing with the fp state
Patch26: %{name}-sigfpe.patch
Patch25: %{name}-sigfpe.patch
# Add some missing #includes and types in the rubiks code
Patch27: %{name}-rubiks.patch
Patch26: %{name}-rubiks.patch
# Fix an indentation error in sagetex
Patch28: %{name}-sagetex.patch
Patch27: %{name}-sagetex.patch
# Fix some path settings in the sage environment
Patch29: %{name}-env.patch
# Make notebook minimally function until upstream finally removes it
Patch30: %{name}-sagenb-python3.patch
# Adapt to primecount 5.x
Patch31: %{name}-primecount.patch
Patch28: %{name}-env.patch
# Adapt to recent tdlib 0.9
Patch32: %{name}-tdlib.patch
Patch29: %{name}-tdlib.patch
# Use local objects.inv for intersphinx since no network on koji builders
Patch33: %{name}-intersphinx.patch
Patch30: %{name}-intersphinx.patch
BuildRequires: 4ti2
BuildRequires: arb-devel
@ -275,7 +262,7 @@ BuildRequires: iml-devel
BuildRequires: jmol
BuildRequires: jsmath-fonts
# To have a proper link
#BuildRequires: jsmol
BuildRequires: jsmol
BuildRequires: L-function-devel
BuildRequires: lapack-devel
BuildRequires: latte-integrale
@ -319,10 +306,6 @@ BuildRequires: python3dist(brial)
BuildRequires: python3dist(cvxopt)
BuildRequires: python3dist(cython)
BuildRequires: python3dist(docutils)
BuildRequires: python3dist(flask-autoindex)
BuildRequires: python3dist(flask-babel)
BuildRequires: python3dist(flask-openid)
BuildRequires: python3dist(flask-silk)
BuildRequires: python3dist(fpylll)
BuildRequires: python3dist(future)
BuildRequires: python3dist(gmpy2)
@ -340,7 +323,6 @@ BuildRequires: python3dist(networkx)
BuildRequires: python3dist(notebook)
%if %{with bundled_ipython}
BuildRequires: python3dist(path.py)
BuildRequires: python3dist(pathlib2)
%endif
%if %{without bundled_pexpect}
BuildRequires: python3dist(pexpect)
@ -359,7 +341,6 @@ BuildRequires: python3dist(pyzmq)
BuildRequires: python3dist(rpy2)
BuildRequires: python3dist(scipy)
BuildRequires: python3dist(scons)
BuildRequires: python3dist(send2trash)
BuildRequires: python3dist(setuptools)
%if %{with bundled_ipython}
BuildRequires: python3dist(simplegeneric)
@ -368,7 +349,6 @@ BuildRequires: python3dist(six)
BuildRequires: python3dist(speaklater)
BuildRequires: python3dist(sphinx)
BuildRequires: python3dist(sympy)
BuildRequires: python3dist(twisted)
BuildRequires: python3dist(zodb3)
BuildRequires: qepcad-B
BuildRequires: R
@ -378,14 +358,14 @@ BuildRequires: rw-devel
BuildRequires: sharedmeataxe-devel
BuildRequires: Singular-devel
BuildRequires: sirocco-devel
BuildRequires: stix-math-fonts
BuildRequires: stix-fonts
BuildRequires: suitesparse-devel
BuildRequires: symmetrica-devel
BuildRequires: sympow
BuildRequires: tachyon
BuildRequires: texlive
BuildRequires: tex(anyfontsize.sty)
BuildRequires: tex(makecmds.sty)
BuildRequires: vecmath
# For _jsdir macro
BuildRequires: web-assets-devel
BuildRequires: xorg-x11-fonts-Type1
@ -394,14 +374,14 @@ BuildRequires: zlib-devel
BuildRequires: zn_poly-devel
Requires: hicolor-icon-theme
Requires: %{name}-core
Requires: %{name}-data
Requires: %{name}-core = %{version}-%{release}
Requires: %{name}-data = %{version}-%{release}
%if %{with docs}
Requires: %{name}-doc-en
Requires: %{name}-doc-en = %{version}-%{release}
%endif
Requires: %{name}-notebook
Requires: %{name}-rubiks
Requires: %{name}-sagetex
Requires: %{name}-jupyter = %{version}-%{release}
Requires: %{name}-rubiks = %{version}-%{release}
Requires: %{name}-sagetex = %{version}-%{release}
%if %{with bundled_thebe}
Provides: bundled(thebe) = %{thebe_ver}
@ -479,7 +459,6 @@ Requires: python3dist(matplotlib)
Requires: python3dist(networkx)
%if %{with bundled_ipython}
Requires: python3dist(path.py)
Requires: python3dist(pathlib2)
%endif
%if %{without bundled_pexpect}
Requires: python3dist(pexpect)
@ -505,8 +484,8 @@ Requires: python3dist(sympy)
Requires: python3dist(zodb3)
Requires: qepcad-B
Requires: Singular
# Required by widgetsnbextension and thebe; remove when they are unbundled
Requires: stix-math-fonts
# Required by thebe; remove when it is unbundled
Requires: stix-fonts
Requires: sympow
Requires: tachyon
Requires: texlive
@ -701,17 +680,18 @@ This package contains the Turkish %{name} documentation.
%endif
#------------------------------------------------------------------------
%package notebook
Summary: The Sage Notebook
%package jupyter
Summary: Jupyter integration for sagemath
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: python-jupyter-filesystem
Requires: python3dist(flask-silk)
Requires: python3dist(send2trash)
Requires: vecmath
%description notebook
The Sage Notebook is a web-based graphical user interface for
mathematical software.
# This can be removed when Fedora 31 reaches EOL
Obsoletes: sagemath-notebook < 9.0-1
Provides: sagemath-notebook = %{version}-%{release}
%description jupyter
This package contains a Jupyter integration for sagemath, replacing the
defunct notebook functionality.
#------------------------------------------------------------------------
%package rubiks
@ -835,11 +815,6 @@ pushd build/pkgs/rubiks
popd
popd
pushd build/pkgs/sagenb
tar jxf ../../../upstream/%{sagenb_pkg}.tar.bz2
mv %{sagenb_pkg} src
popd
pushd build/pkgs/sagetex
tar zxf ../../../upstream/%{sagetex_pkg}.tar.gz
mv %{sagetex_pkg} src
@ -901,14 +876,14 @@ popd
%patch14
%patch15
%patch16
%patch17
%if %{with fes}
%patch18
%patch17
%else
%patch19
%patch18
%endif
%patch19
%patch20
%patch21
%patch22
@ -920,9 +895,6 @@ popd
%patch28
%patch29
%patch30
%patch31
%patch32
%patch33
sed -e 's|@@SAGE_ROOT@@|%{SAGE_ROOT}|' \
-e 's|@@SAGE_DOC@@|%{SAGE_DOC}|' \
@ -933,19 +905,10 @@ sed -e 's|@@CYSIGNALS@@|%{python3_sitearch}/cysignals|' \
-e 's|@@BUILDROOT@@|%{buildroot}|' \
-i src/setup.py
sed -e "/flask-oldsessions/d" \
-i build/pkgs/sagenb/src/setup.py
#------------------------------------------------------------------------
# some .c files are not (re)generated
find src/sage \( -name \*.pyx -o -name \*.pxd \) -exec touch {} \+
# remove bundled jar files before build
rm build/pkgs/sagenb/src/sagenb/data/sage3d/lib/sage3d.jar
# remove binary egg
rm -r build/pkgs/sagenb/src/sagenb.egg-info
# fix Singular paths
singver=$(sed 's/.*-\([.[:digit:]]*\).*/\1/' <<< %{singular_pkg})
sed -e "s,SINGULARPATH=\",&%{_datadir}/singular/LIB:," \
@ -961,8 +924,8 @@ grep -FrlZ '#!%{_bindir}/env python' | \
xargs -0 sed -i 's,#!%{_bindir}/env python,#!%{__python3},g'
grep -FrlZ '#!%{_bindir}/env sage-system-python' | \
xargs -0 sed -i 's,#!%{_bindir}/env sage-system-python,#!%{__python3},g'
grep -FrlZ '#!%{_bindir}/env sage-python23' | \
xargs -0 sed -i 's,#!%{_bindir}/env sage-python23,#!%{__python3},g'
grep -FrlZ '#!%{_bindir}/env sage-python' | \
xargs -0 sed -i 's,#!%{_bindir}/env sage-python,#!%{__python3},g'
grep -FrlZ 'sage-python23' | xargs -0 sed -i 's,sage-python23,python3,g'
grep -FrlZ '#!%{_bindir}/env' | \
xargs -0 sed -i 's,#!%{_bindir}/env ,#!%{_bindir}/,'
@ -1089,10 +1052,6 @@ pushd src
popd
#------------------------------------------------------------------------
pushd build/pkgs/sagenb/src
%__python3 ./setup.py build
popd
pushd build/pkgs/sagetex/src
%__python3 ./setup.py build
popd
@ -1181,22 +1140,6 @@ pushd src
%endif
popd
#------------------------------------------------------------------------
pushd build/pkgs/sagenb/src
rm -f %{buildroot}%{python3_sitearch}/sagenb/data/sage3d/sage3d
%py3_install "--install-purelib=%{python3_sitearch}"
# jsmol
ln -sf %{_jsdir}/jsmol $SAGE_SHARE/jsmol
# sage3d
rm -f %{buildroot}%{_bindir}/sage3d
%if %{with sage3d}
ln -sf %{SAGE_LOCAL}/bin/sage3d %{buildroot}%{python3_sitearch}/sagenb/data/sage3d/sage3d
%endif
ln -sf %{python3_sitearch}/sagenb %{buildroot}%{SAGE_SRC}/sagenb
# use system mathjax
ln -sf %{_jsdir}/mathjax %{buildroot}%{python3_sitearch}/sagenb/data/mathjax
popd
#------------------------------------------------------------------------
%if %{with bundled_pexpect}
pushd build/pkgs/pexpect/src
@ -1407,16 +1350,6 @@ EOF
#------------------------------------------------------------------------
chmod +x %{buildroot}%{_bindir}/sage
#------------------------------------------------------------------------
%if %{with sage3d}
cat > %{buildroot}%{SAGE_LOCAL}/bin/sage3d << EOF
#!/bin/sh
java -classpath %{SAGE_SRC}/sage/sagenb/data/sage3d/lib/sage3d.jar:%{_javadir}/j3dcore.jar:%{_javadir}/vecmath.jar:%{_javadir}/j3dutils.jar org.sagemath.sage3d.ObjectViewerApp "\$1"
EOF
chmod +x %{buildroot}%{SAGE_LOCAL}/bin/sage3d
%endif
#------------------------------------------------------------------------
# adjust cython interface:
# o install csage headers
@ -1546,13 +1479,6 @@ rm -fr %{buildroot}%{SAGE_DOC}/output/inventory
find %{buildroot}%{SAGE_DOC} -type d -name _sources -exec rm -fr {} \+
%endif
# remove .po files
rm %{buildroot}%{python3_sitearch}/sagenb/translations/*/LC_MESSAGES/*.po
%if %{without sage3d}
rm -r %{buildroot}%{python3_sitearch}/sagenb/data/sage3d
%endif
# remove build directory in buildroot
[ -d %{buildroot}%{SAGE_SRC}/build ] &&
rm -r %{buildroot}%{SAGE_SRC}/build
@ -1841,75 +1767,9 @@ rm -fr %{SAGE_LOCAL}/var/lib/sage/installed/database_cremona_ellcurve-%{cremona_
%endif
#------------------------------------------------------------------------
%files notebook
%files jupyter
%{SAGE_ETC}/notebook-ipython
# GPLv2+
%{SAGE_SRC}/sagenb
%dir %{python3_sitearch}/sagenb
%{python3_sitearch}/sagenb/*.py*
%{python3_sitearch}/sagenb/__pycache__/
%{python3_sitearch}/sagenb/data/__pycache__/
%{python3_sitearch}/sagenb/testing/__pycache__/
%{python3_sitearch}/sagenb-*.egg-info
%dir %{python3_sitearch}/sagenb/data
# BSD
%{python3_sitearch}/sagenb/data/codemirror
# MIT
%{python3_sitearch}/sagenb/data/graph_editor
# ASL 2.0
%{python3_sitearch}/sagenb/data/highlight
# LGPLv2+
%{SAGE_SHARE}/jsmol
# (MIT or GPLv2) and (MIT and BSD and GPL)
%{python3_sitearch}/sagenb/data/jquery
# (MIT or GPLv2) and (MIT and BSD and GPL)
%{python3_sitearch}/sagenb/data/jqueryui
# Public Domain
%{python3_sitearch}/sagenb/data/json
# Symbolic link to $_jsdir/mathjax
%{python3_sitearch}/sagenb/data/mathjax
# Empty (do not run doctests flag file)
%{python3_sitearch}/sagenb/data/nodoctest.py*
# BSD
%{python3_sitearch}/sagenb/data/openid-realselector
# GPLv2+
%{python3_sitearch}/sagenb/data/sage
%if %{with sage3d}
# GPLv2+
%{python3_sitearch}/sagenb/data/sage3d
%endif
# LGPLv2+
%{python3_sitearch}/sagenb/data/tiny_mce
# LGPLv2+
%{python3_sitearch}/sagenb/data/zorn
# GPLv2+
%{python3_sitearch}/sagenb/flask_version
# GPLv2+
%{python3_sitearch}/sagenb/interfaces
# GPLv2+
%{python3_sitearch}/sagenb/misc
# GPLv2+
%{python3_sitearch}/sagenb/notebook
# GPLv2+
%{python3_sitearch}/sagenb/simple
# GPLv2+
%{python3_sitearch}/sagenb/storage
# GPLv2+
%dir %{python3_sitearch}/sagenb/testing
%{python3_sitearch}/sagenb/testing/*.py*
%{python3_sitearch}/sagenb/testing/tests
# ASL 2.0
%{python3_sitearch}/sagenb/testing/selenium
# GPLv2+
%dir %{python3_sitearch}/sagenb/translations
%lang(cs_CZ) %{python3_sitearch}/sagenb/translations/cs_CZ
%lang(de_AT) %{python3_sitearch}/sagenb/translations/de_AT
%lang(de_AT) %{python3_sitearch}/sagenb/translations/en_US
%lang(de_AT) %{python3_sitearch}/sagenb/translations/es_ES
%lang(de_AT) %{python3_sitearch}/sagenb/translations/fr_FR
%lang(pt_BR) %{python3_sitearch}/sagenb/translations/pt_BR
%lang(ru_RU) %{python3_sitearch}/sagenb/translations/ru_RU
%lang(uk_UA) %{python3_sitearch}/sagenb/translations/uk_UA
%if %{with bundled_widgetsnbextension}
%config(noreplace) %{_sysconfdir}/jupyter/nbconfig/notebook.d/*.json
%{_datadir}/jupyter/nbextensions/*
@ -1939,6 +1799,16 @@ rm -fr %{SAGE_LOCAL}/var/lib/sage/installed/database_cremona_ellcurve-%{cremona_
########################################################################
%changelog
* Fri Feb 28 2020 Jerry James <loganjerry@gmail.com> - 9.0-1
- Version 9.0 (bz 1756780, 1770880)
- Drop upstreamed -ecm and -primecount patches
- Add -escape patch
- The old notebook (sagenb) is no longer shipped, so drop the -sagenb and
-sagenb-python3 patches, the -notebook subpackage, and some BRs
- New -jupyter subpackage
- Add suitesparse BR
- Drop pathlib2 BR (bz 1797116)
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 8.9-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild