Version 9.5.

Drop unnecessary -4ti2 and -primecount patches.
This commit is contained in:
Jerry James 2022-03-21 08:59:27 -06:00
parent 82b1c380fc
commit 30bb46d8dc
16 changed files with 510 additions and 622 deletions

View file

@ -41,9 +41,9 @@
%global elliptic_curves_pkg elliptic_curves-0.8.1
%global graphs_pkg graphs-20210214
%if %{with bundled_ipython}
%global ipython_ver 7.16.1
%global ipython_ver 7.29.0
%global ipython_pkg ipython-%{ipython_ver}
%global prompt_toolkit_ver 3.0.5
%global prompt_toolkit_ver 3.0.22
%global prompt_tookit_pkg prompt_toolkit-%{prompt_toolkit_ver}
%endif
%if %{with bundled_jupyter_jsmol}
@ -51,7 +51,7 @@
%global jupyter_jsmol_pkg jupyter_jsmol-%{jupyter_jsmol_ver}
%endif
%if %{with bundled_memory_allocator}
%global memory_allocator_ver 0.1.0
%global memory_allocator_ver 0.1.1
%global memory_allocator_pkg memory_allocator-%{memory_allocator_ver}
%endif
%if %{with bundled_pexpect}
@ -59,8 +59,8 @@
%endif
%global polytopes_db_pkg polytopes_db-20170220
%global sagetex_pkg sagetex-3.5
%global Sphinx_pkg Sphinx-4.0.1
%global singular_pkg singular-4.2.0p3
%global Sphinx_pkg Sphinx-4.2.0
%global singular_pkg singular-4.2.1p3
%if %{with bundled_thebe}
%global thebe_ver 9624e0a0
%global thebe_pkg thebe-%{thebe_ver}
@ -71,7 +71,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 CoCoALib-0.99713 coxeter3-3.1 cryptominisat-5.8.0 database_cremona_ellcurve-%{cremona_ver} gap_packages-4.11.1 libsirocco-2.1.0 lrslib-071b mcqd-1.0 meataxe-1.0 primecount-7.1 qepcad-B.1.74 saclib-2.2.8 surf-1.0.6-gcc6 tdlib-0.9.1
%global SAGE_REQUIRED_PKGS 4ti2-1.6.9 bliss-0.77 CoCoALib-0.99718 coxeter3-3.1 cryptominisat-5.8.0 database_cremona_ellcurve-%{cremona_ver} gap_packages-4.11.1 libsirocco-2.1.0 lrslib-071b mcqd-1.0.0 meataxe-1.0 primecount-7.2 qepcad-B.1.74 saclib-2.2.8 surf-1.0.6-gcc6 tdlib-0.9.2
%ifarch %{ix86} x86_64
%global SAGE_REQUIRED_PKGS %{SAGE_REQUIRED_PKGS} fes-0.2
@ -88,8 +88,8 @@
Name: sagemath
Summary: A free open-source mathematics software system
Version: 9.4
Release: 3%{?dist}
Version: 9.5
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
@ -128,64 +128,68 @@ Patch4: %{name}-rpmbuild.patch
Patch5: %{name}-sagedoc.patch
# work with all maxima-runtime lisp backend packages
Patch7: %{name}-maxima.patch
# execute 4ti2 programs in $PATH not in $SAGE_ROOT/local/bin
Patch8: %{name}-4ti2.patch
Patch6: %{name}-maxima.patch
# use jmol itself to export preview images
# FIXME besides not using X and told so, fails if DISPLAY is not set
Patch9: %{name}-jmol.patch
Patch7: %{name}-jmol.patch
# tell the user how to install the large Cremona database
# add a missing commit() that causes large database construction to fail
Patch10: %{name}-cremona.patch
Patch8: %{name}-cremona.patch
# adapt to python 3 and cython running in python 3 mode
Patch11: %{name}-python3.patch
Patch9: %{name}-python3.patch
# remove the buildroot path from Cython output
Patch12: %{name}-buildroot.patch
Patch10: %{name}-buildroot.patch
# update c++ standard to fix FTBFS
Patch13: %{name}-lcalc.patch
Patch11: %{name}-lcalc.patch
# Use system gap directories and modernize libgap interface
Patch14: %{name}-libgap.patch
Patch12: %{name}-libgap.patch
# Build fes
Patch15: %{name}-fes-build.patch
Patch13: %{name}-fes-build.patch
# Side effect of using distro packages
# https://bugzilla.redhat.com/show_bug.cgi?id=974769
Patch16: %{name}-env.patch
Patch14: %{name}-env.patch
# Correct unable to start QEPCAD within sage
# https://bugzilla.redhat.com/show_bug.cgi?id=1243590
Patch17: %{name}-qepcad.patch
Patch15: %{name}-qepcad.patch
# Make the cvxopt backend check for 'optimal' as well as 'optimized'
Patch18: %{name}-cvxopt.patch
Patch16: %{name}-cvxopt.patch
# Use flexiblas
Patch19: %{name}-flexiblas.patch
Patch17: %{name}-flexiblas.patch
# Fix paths to latte-integrale binaries
Patch20: %{name}-latte.patch
Patch18: %{name}-latte.patch
# Change rubiks binary names to match Fedora
Patch21: %{name}-rubiks.patch
Patch19: %{name}-rubiks.patch
# Adapt to recent tdlib 0.9
Patch22: %{name}-tdlib.patch
Patch20: %{name}-tdlib.patch
# Use local objects.inv for intersphinx since no network on koji builders
Patch23: %{name}-intersphinx.patch
Patch21: %{name}-intersphinx.patch
# Remove an unused call to a primecount function that no longer exists
Patch24: %{name}-primecount.patch
# Fix a typo that leads to infinite recursion
Patch22: %{name}-infinite-recursion.patch
# Fix a use-after-free bug
Patch23: %{name}-use-after-free.patch
# Add a missing Sphinx config value
Patch24: %{name}-intersphinx-disabled-reftypes.patch
BuildRequires: 4ti2
BuildRequires: 4ti2-devel
BuildRequires: appstream
BuildRequires: arb-devel
BuildRequires: bc
@ -207,18 +211,22 @@ BuildRequires: ecl
%if %{with fes}
BuildRequires: fes-devel
%endif
BuildRequires: ffmpeg-free
BuildRequires: flexiblas-devel
BuildRequires: flint-devel
BuildRequires: flintqs
BuildRequires: fonttools
BuildRequires: gap-devel
BuildRequires: gap-pkg-aclib
BuildRequires: gap-pkg-alnuth
BuildRequires: gap-pkg-atlasrep
BuildRequires: gap-pkg-autodoc
BuildRequires: gap-pkg-autpgrp
BuildRequires: gap-pkg-cohomolo
BuildRequires: gap-pkg-corelg
BuildRequires: gap-pkg-crime
BuildRequires: gap-pkg-crisp
BuildRequires: gap-pkg-cryst
BuildRequires: gap-pkg-crystcat
BuildRequires: gap-pkg-ctbllib
BuildRequires: gap-pkg-design
@ -227,15 +235,17 @@ BuildRequires: gap-pkg-factint
BuildRequires: gap-pkg-fga
BuildRequires: gap-pkg-gbnp
BuildRequires: gap-pkg-genss
BuildRequires: gap-pkg-grape
BuildRequires: gap-pkg-guava
BuildRequires: gap-pkg-hap
BuildRequires: gap-pkg-hapcryst
BuildRequires: gap-pkg-hecke
BuildRequires: gap-pkg-images
BuildRequires: gap-pkg-irredsol
BuildRequires: gap-pkg-jupyterkernel
BuildRequires: gap-pkg-laguna
BuildRequires: gap-pkg-liealgdb
BuildRequires: gap-pkg-liepring
BuildRequires: gap-pkg-liering
BuildRequires: gap-pkg-loops
BuildRequires: gap-pkg-lpres
BuildRequires: gap-pkg-mapclass
@ -259,6 +269,7 @@ BuildRequires: gcc-gfortran
BuildRequires: gcc-objc
BuildRequires: gcc-objc++
BuildRequires: gdb
BuildRequires: gengetopt
BuildRequires: gfan
BuildRequires: giac-devel
BuildRequires: giac-doc
@ -302,6 +313,7 @@ BuildRequires: pari-galpol
BuildRequires: pari-gp
BuildRequires: pari-nftables
BuildRequires: pari-seadata
BuildRequires: pdf2svg
BuildRequires: perl-generators
BuildRequires: perl(ExtUtils::MakeMaker)
BuildRequires: perl(File::Slurp)
@ -310,11 +322,15 @@ BuildRequires: pkgconfig(cbc)
BuildRequires: pkgconfig(eclib)
BuildRequires: pkgconfig(factory)
BuildRequires: pkgconfig(fplll)
BuildRequires: pkgconfig(freetype2)
BuildRequires: pkgconfig(gdlib)
BuildRequires: pkgconfig(gf2x)
BuildRequires: pkgconfig(gsl)
BuildRequires: pkgconfig(igraph)
BuildRequires: pkgconfig(isl)
BuildRequires: pkgconfig(libavdevice)
BuildRequires: pkgconfig(libcurl)
BuildRequires: pkgconfig(libgvc)
BuildRequires: pkgconfig(libpng)
BuildRequires: pkgconfig(libsemigroups)
BuildRequires: pkgconfig(libzmq)
@ -323,14 +339,15 @@ BuildRequires: pkgconfig(m4ri)
BuildRequires: pkgconfig(m4rie)
BuildRequires: pkgconfig(nauty)
BuildRequires: pkgconfig(openssl)
BuildRequires: pkgconfig(pynac)
BuildRequires: pkgconfig(primecount)
BuildRequires: pkgconfig(primesieve)
BuildRequires: pkgconfig(readline)
BuildRequires: pkgconfig(Singular)
BuildRequires: pkgconfig(tk)
BuildRequires: pkgconfig(zlib)
BuildRequires: planarity-devel
BuildRequires: polymake
BuildRequires: ppl-devel
BuildRequires: primecount-devel
BuildRequires: python3-devel
BuildRequires: python3-docs
BuildRequires: python3-cypari2-devel
@ -342,20 +359,29 @@ BuildRequires: python3-pillow-devel
BuildRequires: python3-pplpy-devel
BuildRequires: python3-tdlib-devel
BuildRequires: python3-tkinter
BuildRequires: pythran
BuildRequires: %{py3_dist argcomplete}
BuildRequires: %{py3_dist argon2-cffi}
%if %{with bundled_ipython}
BuildRequires: %{py3_dist backcall}
%endif
BuildRequires: %{py3_dist beniget}
BuildRequires: %{py3_dist brial}
BuildRequires: %{py3_dist charset-normalizer}
BuildRequires: %{py3_dist cppy}
BuildRequires: %{py3_dist cvxopt}
BuildRequires: %{py3_dist cython}
BuildRequires: %{py3_dist docutils}
BuildRequires: %{py3_dist flit-core}
BuildRequires: %{py3_dist fpylll}
BuildRequires: %{py3_dist gast}
BuildRequires: %{py3_dist gmpy2}
%if %{with sphinx_hack}
BuildRequires: %{py3_dist html5lib}
BuildRequires: %{py3_dist imagesize}
%endif
BuildRequires: %{py3_dist idna}
BuildRequires: %{py3_dist importlib-metadata}
BuildRequires: %{py3_dist ipykernel}
%if %{without bundled_ipython}
BuildRequires: %{py3_dist ipython}
@ -364,8 +390,14 @@ BuildRequires: %{py3_dist ipywidgets}
%if %{with bundled_ipython}
BuildRequires: %{py3_dist jedi}
%endif
BuildRequires: %{py3_dist jupyterlab-pygments}
BuildRequires: %{py3_dist kiwisolver}
BuildRequires: %{py3_dist matplotlib}
BuildRequires: %{py3_dist matplotlib-inline}
BuildRequires: %{py3_dist nbclient}
BuildRequires: %{py3_dist nbconvert}
BuildRequires: %{py3_dist nbformat}
BuildRequires: %{py3_dist nest-asyncio}
BuildRequires: %{py3_dist networkx}
BuildRequires: %{py3_dist notebook}
BuildRequires: %{py3_dist pari-jupyter}
@ -381,7 +413,8 @@ BuildRequires: %{py3_dist pickleshare}
BuildRequires: %{py3_dist pip}
BuildRequires: %{py3_dist pkgconfig}
BuildRequires: %{py3_dist pluggy}
BuildRequires: %{py3_dist psutil}
BuildRequires: %{py3_dist ply}
BuildRequires: %{py3_dist primecountpy}
BuildRequires: %{py3_dist ptyprocess}
BuildRequires: %{py3_dist py}
BuildRequires: %{py3_dist pycryptosat}
@ -394,6 +427,7 @@ BuildRequires: %{py3_dist scipy}
BuildRequires: %{py3_dist scons}
BuildRequires: %{py3_dist setuptools}
BuildRequires: %{py3_dist setuptools_scm}
BuildRequires: %{py3_dist setuptools_scm_git_archive}
%if %{with bundled_ipython}
BuildRequires: %{py3_dist simplegeneric}
%endif
@ -401,12 +435,15 @@ BuildRequires: %{py3_dist six}
BuildRequires: %{py3_dist sphinx}
BuildRequires: %{py3_dist sympy}
BuildRequires: %{py3_dist toml}
BuildRequires: %{py3_dist tomli}
BuildRequires: %{py3_dist tox}
BuildRequires: %{py3_dist typing-extensions}
BuildRequires: %{py3_dist urllib3}
BuildRequires: %{py3_dist wheel}
BuildRequires: %{py3_dist widgetsnbextension}
BuildRequires: %{py3_dist zodb3}
BuildRequires: qepcad-B
BuildRequires: qhull
BuildRequires: R
BuildRequires: ratpoints-devel
BuildRequires: rubiks
@ -426,7 +463,6 @@ BuildRequires: tex(makecmds.sty)
BuildRequires: web-assets-devel
BuildRequires: xorg-x11-fonts-Type1
BuildRequires: xorg-x11-server-Xvfb
BuildRequires: yasm-devel
BuildRequires: zn_poly-devel
Requires: hicolor-icon-theme
@ -462,11 +498,13 @@ Requires: gap
Requires: gap-pkg-aclib
Requires: gap-pkg-alnuth
Requires: gap-pkg-atlasrep
Requires: gap-pkg-autodoc
Requires: gap-pkg-autpgrp
Requires: gap-pkg-cohomolo
Requires: gap-pkg-corelg
Requires: gap-pkg-crime
Requires: gap-pkg-crisp
Requires: gap-pkg-cryst
Requires: gap-pkg-crystcat
Requires: gap-pkg-ctbllib
Requires: gap-pkg-design
@ -475,15 +513,17 @@ Requires: gap-pkg-factint
Requires: gap-pkg-fga
Requires: gap-pkg-gbnp
Requires: gap-pkg-genss
Requires: gap-pkg-grape
Requires: gap-pkg-guava
Requires: gap-pkg-hap
Requires: gap-pkg-hapcryst
Requires: gap-pkg-hecke
Requires: gap-pkg-images
Requires: gap-pkg-irredsol
Requires: gap-pkg-jupyterkernel
Requires: gap-pkg-laguna
Requires: gap-pkg-liealgdb
Requires: gap-pkg-liepring
Requires: gap-pkg-liering
Requires: gap-pkg-loops
Requires: gap-pkg-lpres
Requires: gap-pkg-mapclass
@ -522,21 +562,29 @@ Requires: pari-gp
Requires: pari-nftables
Requires: pari-seadata
Requires: python3-tdlib
Requires: %{py3_dist argcomplete}
%if %{with bundled_ipython}
Requires: %{py3_dist backcall}
%endif
Requires: %{py3_dist beniget}
Requires: %{py3_dist brial}
Requires: %{py3_dist charset-normalizer}
Requires: %{py3_dist cppy}
Requires: %{py3_dist cypari2}
Requires: %{py3_dist cysignals}
Requires: %{py3_dist cvxopt}
Requires: %{py3_dist cython}
Requires: %{py3_dist docutils}
Requires: %{py3_dist flit-core}
Requires: %{py3_dist fpylll}
Requires: %{py3_dist gast}
Requires: %{py3_dist gmpy2}
%if %{with sphinx_hack}
Requires: %{py3_dist html5lib}
Requires: %{py3_dist imagesize}
%endif
Requires: %{py3_dist idna}
Requires: %{py3_dist importlib-metadata}
Requires: %{py3_dist ipykernel}
%if %{without bundled_ipython}
Requires: %{py3_dist ipython}
@ -546,6 +594,10 @@ Requires: %{py3_dist ipywidgets}
Requires: %{py3_dist jedi}
%endif
Requires: %{py3_dist matplotlib}
Requires: %{py3_dist nbclient}
Requires: %{py3_dist nbconvert}
Requires: %{py3_dist nbformat}
Requires: %{py3_dist nest-asyncio}
Requires: %{py3_dist networkx}
%if %{with bundled_ipython}
Requires: %{py3_dist path.py}
@ -557,7 +609,7 @@ Requires: %{py3_dist pexpect}
Requires: %{py3_dist pickleshare}
%endif
Requires: %{py3_dist pplpy}
Requires: %{py3_dist psutil}
Requires: %{py3_dist primecountpy}
Requires: %{py3_dist ptyprocess}
Requires: %{py3_dist pycryptosat}
%if %{with bundled_ipython}
@ -571,6 +623,7 @@ Requires: %{py3_dist simplegeneric}
Requires: %{py3_dist six}
Requires: %{py3_dist sphinx}
Requires: %{py3_dist sympy}
Requires: %{py3_dist urllib3}
Requires: %{py3_dist zodb3}
Requires: qepcad-B
Requires: Singular
@ -588,6 +641,10 @@ Provides: bundled(jupyter-jsmol) = %{jupyter_jsmol_ver}
Provides: bundled(memory-allocator) = %{memory_allocator_ver}
%endif
# This can be removed when Fedora 40 reaches EOL
Obsoletes: pynac < 0.7.29-3
Obsoletes: pynac-devel < 0.7.29-3
%description core
This package contains the core sagemath python modules.
@ -774,6 +831,8 @@ Summary: Jupyter integration for sagemath
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: python-jupyter-filesystem
Requires: %{py3_dist argon2-cffi}
Requires: %{py3_dist jupyterlab-pygments}
Requires: %{py3_dist matplotlib-inline}
Requires: %{py3_dist pari-jupyter}
Requires: %{py3_dist widgetsnbextension}
@ -909,31 +968,31 @@ popd
%patch3
%patch4
%patch5
%patch6
%patch7
%patch8
%patch9
%patch10
%patch11
%patch12
%patch13
%patch14
%if %{with fes}
%patch15
%patch13
%endif
%patch14
%patch15
%patch16
%patch17
%patch18
%patch19
%patch20
%patch21
%patch22
%patch23
%patch24
sed -e 's|@@SAGE_LOCAL@@|%{SAGE_LOCAL}|' \
-e 's|@@LIBDIR@@|%{_libdir}|g' \
-i src/sage/env.py
sed -i 's|@@SAGE_LOCAL@@|%{SAGE_LOCAL}|' src/sage/env.py
sed -e 's|@@CYSIGNALS@@|%{python3_sitearch}/cysignals|' \
-e 's|@@BUILDROOT@@|%{buildroot}|' \
@ -943,12 +1002,6 @@ sed -e 's|@@CYSIGNALS@@|%{python3_sitearch}/cysignals|' \
# some .c files are not (re)generated
find src/sage \( -name \*.pyx -o -name \*.pxd \) -exec touch {} \+
# fix Singular paths
singver=$(sed 's/^.*-\([.[:digit:]]*\).*$/\1/' <<< %{singular_pkg})
sed -e "s,SINGULARPATH=\",&%{_datadir}/singular/LIB:," \
-e "s,\(SINGULAR_EXECUTABLE=\"\).*\",\1%{_libdir}/Singular/Singular\"," \
-i src/bin/sage-env
# fix shebangs; some paths contains spaces, so use the null byte facility
grep -FrlZ '#!%{_bindir}/env python3' | \
xargs -0 sed -i 's,#!%{_bindir}/env python3,#!%{python3},g'
@ -978,14 +1031,14 @@ sed -e "s|'%{_bindir}/env', 'which'|'%{_bindir}/which'|" \
# GAP does not have enough memory to load the entire workspace
sed -i 's/64m/256m/' src/sage/interfaces/gap.py
# GAP does not have enough memory to build docs
sed -i 's/80/128/' src/sage_docbuild/build_options.py
# Fix detection of Fedora
sed -i 's/yum/rpm/' build/bin/sage-guess-package-system
# Allow use of python 3.10
sed -i 's/3\.10\.0/3.11.0/g' configure
# Allow use of gcc 12
sed -i 's/1\[2-9\]\.\*)/1[3-9].*)/' configure
# Allow use of python 3.11
sed -i 's/3\.11\.0/3.12.0/g' configure
# Do not build with -march=native
sed -i 's/CFLAGS_MARCH="-march=native"/CFLAGS_MARCH=""/' configure
@ -995,18 +1048,13 @@ sed -i 's/CFLAGS_MARCH="-march=native"/CFLAGS_MARCH=""/' configure
%build
export LC_ALL=C.UTF-8
export CC=%{__cc}
export CPPFLAGS="-I%{_includedir}/arb -I%{_includedir}/cddlib"
export CFLAGS="%{build_cflags}"
export CXXFLAGS="%{build_cxxflags}"
export CPPFLAGS="-I%{_includedir}/4ti2 -I%{_includedir}/arb -I%{_includedir}/cddlib"
export ECMBIN=%{_bindir}/gmp-ecm
export SAGE_PYTHON_VERSION=3
export SAGE_ROOT=%{buildroot}%{SAGE_ROOT}
export SAGE_LOCAL=%{buildroot}%{SAGE_LOCAL}
# Avoid buildroot in gcc command line (use _builddir instead)
export SAGE_SRC="$PWD/src"
export SAGE_INC=%{_includedir}
export SAGE_FORTRAN=%{_bindir}/gfortran
export SAGE_FORTRAN_LIB=`gfortran --print-file-name=libgfortran.so`
export DESTDIR=%{buildroot}
export SAGE_DEBUG=no
# Use file in /tmp because there are issues with long pathnames
@ -1026,6 +1074,14 @@ export PATH=%{buildroot}%{_bindir}:$PATH
export PYTHON=%{_bindir}/python3
export PYTHONPATH=%{buildroot}%{python3_sitearch}:%{buildroot}%{python3_sitelib}:$PYTHONPATH
# Make various programs visible to configure
module load 4ti2-%{_arch}
module load lrcalc-%{_arch}
module load surf-geometry-%{_arch}
# Initialize polymake
polymake --reconfigure - <<< exit;
#------------------------------------------------------------------------
# Run the configure script to generate files
export GSL_LIBS="-lgsl -lflexiblas -lm"
@ -1042,7 +1098,6 @@ export GSL_LIBS="-lgsl -lflexiblas -lm"
--enable-frobby \
--enable-mcqd \
--enable-meataxe \
--enable-primecount \
--enable-qepcad \
--enable-saclib \
--enable-sirocco \
@ -1348,8 +1403,6 @@ export SINGULAR_DATA_DIR=%{_datadir}
export SINGULAR_BIN_DIR=%{_libdir}/Singular
export SINGULAR_SO=%{_libdir}/libSingular-$singver.so
##export PYTHONPATH="$SAGE_PYTHONPATH:\$SAGE_LOCAL/bin"
export SAGE_FORTRAN=%{_bindir}/gfortran
export SAGE_FORTRAN_LIB=\`gfortran --print-file-name=libgfortran.so\`
export SYMPOW_DIR="\$DOT_SAGE/sympow"
# Required for sage -gdb
: \${SAGE_DEBUG:=no}
@ -1986,6 +2039,10 @@ end
########################################################################
%changelog
* Mon Mar 21 2022 Jerry James <loganjerry@gmail.com> - 9.5-1
- Version 9.5
- Drop unnecessary -4ti2 and -primecount patches
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 9.4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild