From 99d4dc2a0fac2433bf167a3dc4423e8ce02f38bb Mon Sep 17 00:00:00 2001 From: rdobuilder Date: Feb 19 2024 12:13:02 +0000 Subject: Update to 1.12 Related-to: https://review.rdoproject.org/r/q/Id559515a0f0269ef8a7c7b748d714b6100380967 --- diff --git a/.sympy.metadata b/.sympy.metadata new file mode 100644 index 0000000..6207d9e --- /dev/null +++ b/.sympy.metadata @@ -0,0 +1 @@ +8acceb3d2796954088937607f965c173df6e5304 SOURCES/sympy-1.12.tar.gz diff --git a/SOURCES/sympy-circuitplot.patch b/SOURCES/sympy-circuitplot.patch new file mode 100644 index 0000000..8cc556a --- /dev/null +++ b/SOURCES/sympy-circuitplot.patch @@ -0,0 +1,13 @@ +--- sympy-sympy-1.8/sympy/physics/quantum/tests/test_circuitplot.py.orig 2021-04-09 16:29:50.000000000 -0600 ++++ sympy-sympy-1.8/sympy/physics/quantum/tests/test_circuitplot.py 2021-04-12 13:27:55.241417177 -0600 +@@ -4,7 +4,9 @@ from sympy.physics.quantum.gate import C + from sympy.external import import_module + from sympy.testing.pytest import skip + +-mpl = import_module('matplotlib') ++mpl = import_module( ++ 'matplotlib', import_kwargs={'fromlist': ['pyplot']}, ++ catch=(RuntimeError,)) # This is raised in environments that have no display. + + def test_render_label(): + assert render_label('q0') == r'$\left|q0\right\rangle$' diff --git a/SOURCES/sympy-png-decoder.patch b/SOURCES/sympy-png-decoder.patch new file mode 100644 index 0000000..5e365d4 --- /dev/null +++ b/SOURCES/sympy-png-decoder.patch @@ -0,0 +1,22 @@ +diff --git a/sympy/printing/preview.py b/sympy/printing/preview.py +index 52085e5e19..f9b1d2dd5c 100644 +--- a/sympy/printing/preview.py ++++ b/sympy/printing/preview.py +@@ -27,12 +27,12 @@ def _check_output_no_window(*args, **kwargs): + def _run_pyglet(fname, fmt): + from pyglet import window, image, gl + from pyglet.window import key ++ from pyglet.image.codecs import ImageDecodeException + +- if fmt == "png": +- from pyglet.image.codecs.png import PNGImageDecoder +- img = image.load(fname, decoder=PNGImageDecoder()) +- else: +- raise ValueError("pyglet preview works only for 'png' files.") ++ try: ++ img = image.load(fname) ++ except ImageDecodeException: ++ raise ValueError("pyglet preview does not work for '{}' files.".format(fmt)) + + offset = 25 + diff --git a/SOURCES/sympy-python3.12.patch b/SOURCES/sympy-python3.12.patch new file mode 100644 index 0000000..5c4a874 --- /dev/null +++ b/SOURCES/sympy-python3.12.patch @@ -0,0 +1,103 @@ +--- sympy-sympy-1.12/sympy/logic/boolalg.py.orig 2023-05-09 17:42:05.000000000 -0600 ++++ sympy-sympy-1.12/sympy/logic/boolalg.py 2023-06-29 16:38:14.568908065 -0600 +@@ -1012,7 +1012,7 @@ class Xor(BooleanFunction): + for j in range(i + 1, len(rel)): + rj, cj = rel[j][:2] + if cj == nc: +- odd = ~odd ++ odd = not odd + break + elif cj == c: + break +--- sympy-sympy-1.12/sympy/parsing/ast_parser.py.orig 2023-05-09 17:42:05.000000000 -0600 ++++ sympy-sympy-1.12/sympy/parsing/ast_parser.py 2023-06-29 17:12:19.620751353 -0600 +@@ -23,7 +23,7 @@ from sympy.core.basic import Basic + from sympy.core.sympify import SympifyError + + from ast import parse, NodeTransformer, Call, Name, Load, \ +- fix_missing_locations, Str, Tuple ++ fix_missing_locations, Constant, Tuple + + class Transform(NodeTransformer): + +@@ -52,7 +52,7 @@ class Transform(NodeTransformer): + elif node.id in ['True', 'False']: + return node + return fix_missing_locations(Call(func=Name('Symbol', Load()), +- args=[Str(node.id)], keywords=[])) ++ args=[Constant(node.id)], keywords=[])) + + def visit_Lambda(self, node): + args = [self.visit(arg) for arg in node.args.args] +--- sympy-sympy-1.12/sympy/parsing/sympy_parser.py.orig 2023-05-09 17:42:05.000000000 -0600 ++++ sympy-sympy-1.12/sympy/parsing/sympy_parser.py 2023-06-29 17:42:24.574014070 -0600 +@@ -627,7 +627,9 @@ def factorial_notation(tokens: List[TOKE + result: List[TOKEN] = [] + nfactorial = 0 + for toknum, tokval in tokens: +- if toknum == ERRORTOKEN: ++ if toknum == OP and tokval == "!": ++ nfactorial += 1 ++ elif toknum == ERRORTOKEN: + op = tokval + if op == '!': + nfactorial += 1 +@@ -1135,7 +1137,7 @@ class EvaluateFalseTransformer(ast.NodeT + new_node = ast.Call( + func=ast.Name(id=sympy_class, ctx=ast.Load()), + args=[left, right], +- keywords=[ast.keyword(arg='evaluate', value=ast.NameConstant(value=False, ctx=ast.Load()))], ++ keywords=[ast.keyword(arg='evaluate', value=ast.Constant(value=False, ctx=ast.Load()))], + starargs=None, + kwargs=None + ) +@@ -1167,8 +1169,8 @@ class EvaluateFalseTransformer(ast.NodeT + if isinstance(node.op, ast.Sub): + right = ast.Call( + func=ast.Name(id='Mul', ctx=ast.Load()), +- args=[ast.UnaryOp(op=ast.USub(), operand=ast.Num(1)), right], +- keywords=[ast.keyword(arg='evaluate', value=ast.NameConstant(value=False, ctx=ast.Load()))], ++ args=[ast.UnaryOp(op=ast.USub(), operand=ast.Constant(1)), right], ++ keywords=[ast.keyword(arg='evaluate', value=ast.Constant(value=False, ctx=ast.Load()))], + starargs=None, + kwargs=None + ) +@@ -1178,16 +1180,16 @@ class EvaluateFalseTransformer(ast.NodeT + rev = True + left = ast.Call( + func=ast.Name(id='Pow', ctx=ast.Load()), +- args=[left, ast.UnaryOp(op=ast.USub(), operand=ast.Num(1))], +- keywords=[ast.keyword(arg='evaluate', value=ast.NameConstant(value=False, ctx=ast.Load()))], ++ args=[left, ast.UnaryOp(op=ast.USub(), operand=ast.Constant(1))], ++ keywords=[ast.keyword(arg='evaluate', value=ast.Constant(value=False, ctx=ast.Load()))], + starargs=None, + kwargs=None + ) + else: + right = ast.Call( + func=ast.Name(id='Pow', ctx=ast.Load()), +- args=[right, ast.UnaryOp(op=ast.USub(), operand=ast.Num(1))], +- keywords=[ast.keyword(arg='evaluate', value=ast.NameConstant(value=False, ctx=ast.Load()))], ++ args=[right, ast.UnaryOp(op=ast.USub(), operand=ast.Constant(1))], ++ keywords=[ast.keyword(arg='evaluate', value=ast.Constant(value=False, ctx=ast.Load()))], + starargs=None, + kwargs=None + ) +@@ -1197,7 +1199,7 @@ class EvaluateFalseTransformer(ast.NodeT + new_node = ast.Call( + func=ast.Name(id=sympy_class, ctx=ast.Load()), + args=[left, right], +- keywords=[ast.keyword(arg='evaluate', value=ast.NameConstant(value=False, ctx=ast.Load()))], ++ keywords=[ast.keyword(arg='evaluate', value=ast.Constant(value=False, ctx=ast.Load()))], + starargs=None, + kwargs=None + ) +@@ -1212,7 +1214,7 @@ class EvaluateFalseTransformer(ast.NodeT + def visit_Call(self, node): + new_node = self.generic_visit(node) + if isinstance(node.func, ast.Name) and node.func.id in self.functions: +- new_node.keywords.append(ast.keyword(arg='evaluate', value=ast.NameConstant(value=False, ctx=ast.Load()))) ++ new_node.keywords.append(ast.keyword(arg='evaluate', value=ast.Constant(value=False, ctx=ast.Load()))) + return new_node + + diff --git a/SOURCES/sympy-python3.patch b/SOURCES/sympy-python3.patch new file mode 100644 index 0000000..1eb35ff --- /dev/null +++ b/SOURCES/sympy-python3.patch @@ -0,0 +1,51 @@ +--- sympy-sympy-1.4/sympy/utilities/autowrap.py.orig 2019-04-09 18:29:25.000000000 -0600 ++++ sympy-sympy-1.4/sympy/utilities/autowrap.py 2019-04-17 14:34:26.580374579 -0600 +@@ -229,6 +229,8 @@ except ImportError: + from distutils.extension import Extension + from Cython.Build import cythonize + cy_opts = {cythonize_options} ++if 'language_level' not in cy_opts or cy_opts['language_level'] == None: ++ cy_opts['language_level'] = 3 + {np_import} + ext_mods = [Extension( + {ext_args}, +--- sympy-sympy-1.4/sympy/utilities/_compilation/compilation.py.orig 2019-04-09 18:29:25.000000000 -0600 ++++ sympy-sympy-1.4/sympy/utilities/_compilation/compilation.py 2019-04-17 14:34:26.581374576 -0600 +@@ -291,6 +291,8 @@ def simple_cythonize(src, destdir=None, + try: + cy_options = CompilationOptions(default_options) + cy_options.__dict__.update(cy_kwargs) ++ if cy_options.__dict__['language_level'] == None: ++ cy_options.__dict__['language_level'] = 3 + cy_result = cy_compile([src], cy_options) + if cy_result.num_errors > 0: + raise ValueError("Cython compilation failed.") +--- sympy-sympy-1.4/sympy/utilities/tests/test_autowrap.py.orig 2019-04-09 18:29:25.000000000 -0600 ++++ sympy-sympy-1.4/sympy/utilities/tests/test_autowrap.py 2019-04-17 14:34:26.581374576 -0600 +@@ -100,6 +100,8 @@ except ImportError: + from distutils.extension import Extension + from Cython.Build import cythonize + cy_opts = {} ++if 'language_level' not in cy_opts or cy_opts['language_level'] == None: ++ cy_opts['language_level'] = 3 + + ext_mods = [Extension( + 'wrapper_module_%(num)s', ['wrapper_module_%(num)s.pyx', 'wrapped_code_%(num)s.c'], +@@ -138,6 +140,8 @@ except ImportError: + from distutils.extension import Extension + from Cython.Build import cythonize + cy_opts = {'compiler_directives': {'boundscheck': False}} ++if 'language_level' not in cy_opts or cy_opts['language_level'] == None: ++ cy_opts['language_level'] = 3 + + ext_mods = [Extension( + 'wrapper_module_%(num)s', ['wrapper_module_%(num)s.pyx', 'wrapped_code_%(num)s.c'], +@@ -164,6 +168,8 @@ except ImportError: + from distutils.extension import Extension + from Cython.Build import cythonize + cy_opts = {'compiler_directives': {'boundscheck': False}} ++if 'language_level' not in cy_opts or cy_opts['language_level'] == None: ++ cy_opts['language_level'] = 3 + import numpy as np + + ext_mods = [Extension( diff --git a/SOURCES/sympy-theano-pymc.patch b/SOURCES/sympy-theano-pymc.patch new file mode 100644 index 0000000..0741612 --- /dev/null +++ b/SOURCES/sympy-theano-pymc.patch @@ -0,0 +1,22 @@ +--- sympy-sympy-1.6.2/sympy/printing/tests/test_theanocode.py.orig 2020-08-07 09:17:07.000000000 -0600 ++++ sympy-sympy-1.6.2/sympy/printing/tests/test_theanocode.py 2020-11-26 07:36:24.900389599 -0700 +@@ -350,7 +350,7 @@ def test_theano_function_scalar(): + f = theano_function_(inputs, outputs, dims=in_dims, scalar=scalar) + + # Check the theano_function attribute is set whether wrapped or not +- assert isinstance(f.theano_function, theano.compile.function_module.Function) ++ assert isinstance(f.theano_function, theano.compile.function.types.Function) + + # Feed in inputs of the appropriate size and get outputs + in_values = [ +--- sympy-sympy-1.6.2/sympy/printing/theanocode.py.orig 2020-08-07 09:17:07.000000000 -0600 ++++ sympy-sympy-1.6.2/sympy/printing/theanocode.py 2020-11-26 07:35:55.667441366 -0700 +@@ -442,7 +442,7 @@ def theano_function(inputs, outputs, sca + function will return a list of arrays. See description of the ``squeeze`` + argument above for the behavior when a single output is passed in a list. + The returned object will either be an instance of +- ``theano.compile.function_module.Function`` or a Python wrapper ++ ``theano.compile.function.types.Function`` or a Python wrapper + function around one. In both cases, the returned value will have a + ``theano_function`` attribute which points to the return value of + ``theano.function``. diff --git a/SOURCES/sympy.rpmlintrc b/SOURCES/sympy.rpmlintrc new file mode 100644 index 0000000..e01a271 --- /dev/null +++ b/SOURCES/sympy.rpmlintrc @@ -0,0 +1,12 @@ +# THIS FILE IS FOR WHITELISTING RPMLINT ERRORS AND WARNINGS IN TASKOTRON +# https://fedoraproject.org/wiki/Taskotron/Tasks/dist.rpmlint#Whitelisting_errors + +# This file is empty on purpose +addFilter(r'E: zero-length .*sympy/strategies/tests/test_strat\.py') + +# There really is no documentation for the TeXmacs plugin +addFilter(r'sympy-texmacs\.noarch: W: no-documentation') +addFilter(r'sympy-texmacs\.noarch: W: no-manual-page-for-binary tm_sympy') + +# We use the versions of jquery and js-underscore that sphinx gives us +addFilter(r'W: unversioned-explicit-provides bundled\((jquery|js-underscore)\)') diff --git a/SPECS/sympy.spec b/SPECS/sympy.spec new file mode 100644 index 0000000..f3556d6 --- /dev/null +++ b/SPECS/sympy.spec @@ -0,0 +1,619 @@ +# We used to build with Theano support. However, we no longer have a compatible +# version of Theano in Fedora. If aesara is ever packaged for Fedora, we can +# use it instead. + +# We are archful (see below), but there are no ELF objects in the binary RPM. +%global debug_package %{nil} + +# We are missing some doc and test requirements +%global with_doc 0 +%global with_tests 0 + +Name: sympy +Version: 1.12 +Release: 2%{?dist} +Summary: A Python library for symbolic mathematics + +# The project as a whole is BSD-3-Clause. +# The files in sympy/parsing/latex are MIT. +License: BSD-3-Clause AND MIT +URL: https://sympy.org/ +Source0: https://github.com/%{name}/%{name}/archive/%{name}-%{version}.tar.gz +# Skip tests that require a display +Patch0: %{name}-circuitplot.patch +# Adapt to python 3.12 +Patch1: %{name}-python3.12.patch + +# This package used to be noarch, and should still be noarch. However, because +# there is no JDK available on i686 anymore, the antlr4 package is also not +# available on i686. When we can stop building on i686 altogether, we can bring +# this back. In the meantime, we cannot claim to be noarch, because the i686 +# build is different from the other arches in lacking BuildRequires: antlr4. +# BuildArch: noarch + +%ifarch %{java_arches} +BuildRequires: antlr4 +%endif +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: gcc-gfortran +BuildRequires: python3-devel +BuildRequires: pyproject-rpm-macros +BuildRequires: %{py3_dist cython} +BuildRequires: %{py3_dist gmpy2} +BuildRequires: %{py3_dist matplotlib} +BuildRequires: %{py3_dist numexpr} +BuildRequires: python3-numpy-f2py +BuildRequires: %{py3_dist scipy} + +# Documentation +%if 0%{?with_doc} +BuildRequires: graphviz +BuildRequires: ImageMagick +BuildRequires: librsvg2-tools +BuildRequires: make +BuildRequires: %{py3_dist furo} +BuildRequires: %{py3_dist linkify-it-py} +BuildRequires: %{py3_dist mpmath} +BuildRequires: %{py3_dist numpydoc} +BuildRequires: %{py3_dist sphinx-autobuild} +BuildRequires: %{py3_dist sphinx-copybutton} +BuildRequires: %{py3_dist sphinx-math-dollar} +BuildRequires: %{py3_dist sphinx-reredirects} +BuildRequires: %{py3_dist sphinxcontrib-jquery} +BuildRequires: python-mpmath-doc +BuildRequires: tex(latex) +BuildRequires: tex-dvipng +%endif + +# Tests +%if 0%{?with_tests} +BuildRequires: parallel +BuildRequires: %{py3_dist autowrap} +BuildRequires: xorg-x11-fonts-Type1 +BuildRequires: xorg-x11-server-Xvfb +BuildRequires: %{py3_dist wurlitzer} +BuildRequires: %{py3_dist matplotlib-inline} +BuildRequires: %{py3_dist llvmlite} +BuildRequires: %{py3_dist myst-parser} +%endif + +%global _description\ +SymPy aims to become a full-featured computer algebra system (CAS)\ +while keeping the code as simple as possible in order to be\ +comprehensible and easily extensible. SymPy is written entirely in\ +Python and does not require any external libraries. + +%description %_description + +%package -n python3-%{name} +Summary: A Python3 library for symbolic mathematics +Recommends: tex(latex) +Recommends: tex(amsfonts.sty) +Recommends: tex(amsmath.sty) +Recommends: tex(euler.sty) +Recommends: tex(eulervm.sty) +Recommends: tex(standalone.cls) +%ifarch %{java_arches} +Recommends: %{py3_dist antlr4-python3-runtime} +%endif +Recommends: %{py3_dist cython} +Recommends: %{py3_dist gmpy2} +Recommends: %{py3_dist matplotlib} +Recommends: %{py3_dist numexpr} +Recommends: %{py3_dist pyglet} +Recommends: %{py3_dist scipy} + +# This can be removed when F38 reaches EOL +Obsoletes: sympy-texmacs < 1.8 + +%description -n python3-%{name} +SymPy aims to become a full-featured computer algebra system (CAS) +while keeping the code as simple as possible in order to be +comprehensible and easily extensible. SymPy is written entirely in +Python and does not require any external libraries. + +%package examples +License: BSD-3-Clause +Summary: Sympy examples +Requires: python3-%{name} = %{version}-%{release} + +%description examples +This package contains example input for sympy. + +%if 0%{?with_doc} +%package doc +# This project is BSD-3-Clause. Other files bundled with the documentation +# have the following licenses: +# - searchindex.js: BSD-2-Clause +# - _static/basic.css: BSD-2-Clause +# - _static/clipboard.min.js: MIT +# - _static/copy*: MIT +# - _static/doctools.js: BSD-2-Clause +# - _static/graphviz.js: BSD-2-Clause +# - _static/jquery*.js: MIT +# - _static/language_data.js: BSD-2-Clause +# - _static/plot_directive.css: PSF-2.0 (see note) +# - _static/pygments.css: BSD-2-Clause +# - _static/scripts/*: MIT +# - _static/searchtools.js: BSD-2-Clause +# - _static/styles/*: MIT +# - _static/underscore*.js: MIT +# +# NOTE: The license of _static/plot_directive.css is the same as the license of +# matplotlib. The matplotlib license is functionally identical to PSF-2.0, but +# uses different organization and project names. I am using the PSF-2.0 +# identifier for now, because there is no valid SPDX choice. Revisit this. +License: BSD-3-Clause AND BSD-2-Clause AND MIT AND PSF-2.0 +Summary: Documentation for sympy +Provides: bundled(js-jquery) +Provides: bundled(js-underscore) + +%description doc +HTML documentation for sympy. +%endif + +%prep +%autosetup -p1 -n %{name}-%{name}-%{version} + +fixtimestamp() { + touch -r $1.orig $1 + rm -f $1.orig +} + +# Do not depend on env +for fil in $(grep -rl "^#\![[:blank:]]*%{_bindir}/env" .); do + sed -i.orig 's,^\(#\![[:blank:]]*%{_bindir}/\)env python,\1python3,' $fil + fixtimestamp $fil +done + +# Remove bogus shebangs +for fil in sympy/physics/mechanics/models.py \ + sympy/physics/optics/polarization.py; do + sed -i.orig '/env python/d' $fil + fixtimestamp $fil +done + +# Use local objects.inv for intersphinx +sed -e "s|\('https://mpmath\.org/doc/current/', \)None|\1'%{_docdir}/python-mpmath-doc/html/objects.inv'|" \ + -i doc/src/conf.py + +%generate_buildrequires +%pyproject_buildrequires + +%build +%ifarch %{java_arches} +# Regenerate the ANTLR files +%{python3} setup.py antlr +%endif + +# Build +%pyproject_wheel + +# Build the documentation +%if 0%{?with_doc} +pushd doc +make html SPHINXOPTS=%{?_smp_mflags} PYTHON=%{python3} +make cheatsheet +popd +%endif + +%install +%pyproject_install +%pyproject_save_files isympy sympy + +## Remove extra files +rm -f %{buildroot}%{_bindir}/{,doc}test + +# Don't let an executable script go into the documentation +chmod -R a-x+X examples + +# Fix permissions +chmod 0755 %{buildroot}%{python3_sitelib}/sympy/benchmarks/bench_symbench.py \ + %{buildroot}%{python3_sitelib}/sympy/testing/tests/diagnose_imports.py + +%if 0%{?with_doc} +# Install the HTML documentation +mkdir -p %{buildroot}%{_docdir}/%{name}-doc +cp -a doc/_build/html %{buildroot}%{_docdir}/%{name}-doc +rm -f %{buildroot}%{_docdir}/%{name}-doc/html/.buildinfo +rm -fr %{buildroot}%{_docdir}/%{name}-doc/i18n +%endif + +# Try to get rid of pyc files, which aren't useful for documentation +find examples/ -name '*.py[co]' -print -delete + +%if 0%{?with_tests} +%check +# Many tests assume they are running on an x86_64 machine. Some assume that +# native 64-bit integers are available. Some assume that 80-bit floating point +# numbers are available. Some assume that certain operations always produce +# numpy float64 values (but produce float32 values on some architectures). I +# used to try to keep the test suite working on all architectures, but it has +# become too much of a burden. Only run tests if we happen to build on x86_64. +# We cannot use %%ifarch here because this is a noarch package. +if [ "$(uname -m)" = "x86_64" ]; then + # Split into many small chunks to reduce waiting in the end-game + jobs=%{?_smp_mflags}; jobs=${jobs#-j}; jobs=$((jobs * 3)) + + xvfb-run -d \ + parallel %{?_smp_mflags} \ + %{python3} bin/test -v --split {}/$jobs \ + ::: $(bash -c "echo {1..$jobs}") +fi +%endif + +%files -n python3-%{name} -f %{pyproject_files} +%doc AUTHORS README.md +%if 0%{?with_doc} +%doc doc/_build/cheatsheet/cheatsheet.pdf +%doc doc/_build/cheatsheet/combinatoric_cheatsheet.pdf +%endif +%{_bindir}/isympy +%{_mandir}/man1/isympy.1* + +%if 0%{?with_doc} +%files examples +%doc examples/* + +%files doc +%docdir %{_docdir}/%{name}-doc/html +%{_docdir}/%{name}-doc/html +%endif + +%changelog +* Sat Jul 22 2023 Fedora Release Engineering - 1.12-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Jun 29 2023 Jerry James - 1.12-1 +- Version 1.12 +- Add patch for python 3.12 compatibility + +* Thu Jun 29 2023 Python Maint - 1.11.1-5 +- Rebuilt for Python 3.12 + +* Tue Feb 21 2023 Jerry James - 1.11.1-4 +- Fix the antlr4 Recommends (bz 2172030) +- Dynamically generate BuildRequires (to the extent possible) + +* Sat Jan 21 2023 Fedora Release Engineering - 1.11.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Tue Sep 27 2022 Jerry James - 1.11.1-2 +- Do not run antlr on i386 where it doesn't exist +- Be archful so we don't BR a package that doesn't exist on i386 + +* Tue Sep 6 2022 Jerry James - 1.11.1-1 +- Version 1.11.1 +- Convert License tag to SPDX +- Drop upstreamed patches: -tests, -distutils, -signature +- Drop fastcache dependency +- Regenerate ANTLR4 files + +* Sat Jul 23 2022 Fedora Release Engineering - 1.10.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Wed Jun 15 2022 Python Maint - 1.10.1-2 +- Rebuilt for Python 3.11 + +* Sat Mar 19 2022 Jerry James - 1.10.1-1 +- Version 1.10.1 + +* Thu Mar 17 2022 Jerry James - 1.10-1 +- Version 1.10 +- Drop upstreamed patches: -python3, -png-decoder, -gmpy2-mpq, + and -rational-exponent + +* Sat Jan 22 2022 Fedora Release Engineering - 1.9-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Fri Oct 8 2021 Jerry James - 1.9-1 +- Version 1.9 +- Drop theano support due to incompatibility with the Fedora version +- Add -tests, -distutils, -gmpy2-mpq, and -rational-exponent patches to + work around test failures + +* Fri Jul 23 2021 Fedora Release Engineering - 1.8-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Thu Jun 10 2021 Zbigniew Jędrzejewski-Szmek - 1.8-2~bootstrap +- Build in bootstrap mode to work-around missing theano + +* Fri Jun 04 2021 Python Maint - 1.8-2 +- Rebuilt for Python 3.10 + +* Mon Apr 12 2021 Jerry James - 1.8-1 +- Version 1.8 +- Drop the -float patch and only run tests on x86_64 +- Add -circuitplot patch to skip tests that fail with no display +- Drop the -texmacs subpackage; the TeXmacs package ships its own sympy plugin + +* Wed Jan 27 2021 Fedora Release Engineering - 1.7.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Sat Dec 12 2020 Jerry James - 1.7.1-1 +- Version 1.7.1 + +* Thu Dec 10 2020 Jerry James - 1.7-2 +- Fix preview of PNG images (bz 1906363) +- Add missing Recommends needed to preview images (bz 1906363) + +* Sat Nov 28 2020 Jerry James - 1.7-1 +- Version 1.7 + +* Thu Nov 26 2020 Jerry James - 1.6.2-2 +- Update Theano dependency for Theano-PyMC +- Add -theano-pymc patch to adapt + +* Mon Aug 10 2020 Jerry James - 1.6.2-1 +- Version 1.6.2 + +* Wed Jul 29 2020 Fedora Release Engineering - 1.6.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Thu Jul 2 2020 Jerry James - 1.6.1-1 +- Version 1.6.1 +- Drop upstreamed -ast patch + +* Wed Jun 24 2020 Jerry James - 1.6-2 +- Add setuptools BR +- Add -ast patch to fix compilation with python 3.9 + +* Fri May 29 2020 Jerry James - 1.6-1 +- Version 1.6 +- Drop upstreamed -doc and -sample-set patches +- Disable testing on 32-bit systems; too many tests need 64-bit integers + +* Tue May 26 2020 Miro Hrončok - 1.5.1-4 +- Rebuilt for Python 3.9 + +* Mon May 11 2020 Jerry James - 1.5.1-3 +- Add -sample-set patch to fix test failure with python 3.9 + +* Fri Jan 31 2020 Fedora Release Engineering - 1.5.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Jan 8 2020 Jerry James - 1.5.1-1 +- Update to 1.5.1 +- Drop upstreamed patches +- Drop upstreamed workaround for numpy with a release candidate version + +* Mon Nov 4 2019 Jerry James - 1.4-6 +- Fix broken dependencies in the -texmacs subpackage +- Recommend numexpr + +* Fri Sep 13 2019 Jerry James - 1.4-5 +- Add one more patch to fix a python 3.8 warning + +* Sat Aug 24 2019 Robert-André Mauchin - 1.4-4 +- Add patches to fix build with Python 3.8 and Numpy 1.17 + +* Mon Aug 19 2019 Miro Hrončok - 1.4-3 +- Rebuilt for Python 3.8 + +* Sat Jul 27 2019 Fedora Release Engineering - 1.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Wed Apr 17 2019 Jerry James - 1.4-1 +- Update to 1.4 +- Drop -factorial patch + +* Sun Feb 03 2019 Fedora Release Engineering - 1.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Wed Jan 30 2019 Jerry James - 1.3-2 +- Add -sympify and -factorial patches to work around test failures + +* Mon Jan 14 2019 Jerry James - 1.3-2 +- Drop Requires from the -doc subpackage (bz 1665767) + +* Sat Oct 6 2018 Jerry James - 1.3-1 +- Update to 1.3 +- Drop upstreamed patches: subexpr-lambdify, test-code-quality, tex-encoding +- Drop the python2 subpackage +- Add -python3 patch to ask cython to generate python 3 code + +* Tue Aug 14 2018 Miro Hrončok - 1.2-2 +- Fix _subexpr method in lambdify + +* Sat Jul 21 2018 Jerry James - 1.2-1 +- Update to 1.2 (bz 1599502) +- Drop upstreamed -python3 patch +- Add -test-code-quality and -doc patches + +* Sat Jul 14 2018 Fedora Release Engineering - 1.1.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Jun 19 2018 Miro Hrončok - 1.1.1-5 +- Rebuilt for Python 3.7 + +* Wed Feb 21 2018 Iryna Shcherbina - 1.1.1-4 +- Update Python 2 dependency declarations to new packaging standards + (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) + +* Fri Feb 09 2018 Fedora Release Engineering - 1.1.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek - 1.1.1-2 +- Python 2 binary package renamed to python2-sympy + See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3 + +* Thu Jul 27 2017 Jerry James - 1.1.1-1 +- Update to 1.1.1 (bz 1468405) + +* Thu Jul 27 2017 Fedora Release Engineering - 1.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Mon Jul 24 2017 Jerry James - 1.1-3 +- Fix dependency on python2 from python3 package (bz 1471886) + +* Sat Jul 8 2017 Jerry James - 1.1-2 +- Disable tests that fail due to overflow on some 32-bit architectures + +* Fri Jul 7 2017 Jerry James - 1.1-1 +- Update to 1.1 (bz 1468405) +- All patches have been upstreamed; drop them all + +* Sat Apr 1 2017 Jerry James - 1.0-7 +- Update theano test for theano 0.9 + +* Sat Feb 11 2017 Fedora Release Engineering - 1.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Fri Jan 20 2017 Iryna Shcherbina - 1.0-5 +- Make documentation scripts non-executable to avoid + autogenerating Python 2 dependency in sympy-examples (#1360766) + +* Fri Jan 13 2017 Zbigniew Jędrzejewski-Szmek - 1.0-4 +- Run tests in parallel +- Work around some broken tests +- Use python3 in texmacs-sympy (#1360766) + +* Thu Dec 22 2016 Miro Hrončok - 1.0-4 +- Rebuild for Python 3.6 + +* Fri Jul 22 2016 Jerry James - 1.0-3 +- Update the -test patch for the latest matplotlib release + +* Tue Jul 19 2016 Fedora Release Engineering - 1.0-3 +- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages + +* Sat Apr 2 2016 Jerry James - 1.0-2 +- Fix bad /usr/bin/env substitution + +* Thu Mar 31 2016 Jerry James - 1.0-1 +- Update to 1.0 +- All patches have been upstreamed; drop them all +- Add -test patch to fix test failures with recent mpmath +- Recommend scipy + +* Fri Feb 05 2016 Fedora Release Engineering - 0.7.6.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Tue Nov 10 2015 Fedora Release Engineering +- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5 + +* Thu Sep 3 2015 Jerry James - 0.7.6.1-1 +- Update to 0.7.6.1 (bz 1259971) + +* Mon Jul 6 2015 Zbigniew Jędrzejewski-Szmek - 0.7.6-3 +- Fix failure in tests (#1240097) + +* Fri Jun 19 2015 Fedora Release Engineering - 0.7.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Fri Dec 5 2014 Jerry James - 0.7.6-1 +- Update to 0.7.6 +- Drop upstreamed -test and -is-tangent patches +- Drop obsolete bug workarounds +- Add python(3)-fastcache BR and R +- Recommend python-theano +- Fix executable bits on tm_sympy + +* Tue Sep 16 2014 Jerry James - 0.7.5-4 +- Drop python3-six BR and R now that bz 1140413 is fixed +- Use gmpy2 + +* Wed Sep 3 2014 Jerry James - 0.7.5-3 +- Install both isympy and python3-isympy to comply with packaging standards +- Add -is-tangent patch (bz 1135677) +- Temporarily disable tests that fail due to mpmath bugs (bz 1127796) +- Fix license handling +- Add python3-six BR and R; see bz 1140413 for details + +* Sun Jun 08 2014 Fedora Release Engineering - 0.7.5-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Mon May 19 2014 Bohuslav Kabrda - 0.7.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Changes/Python_3.4 + +* Thu Mar 13 2014 Jerry James - 0.7.5-1 +- Update to 0.7.5 (bz 1066951) +- Binaries now default to using python3 +- Use py3dir macro to simplify python3 build +- Add BRs for more comprehensive testing +- Workaround bz 1075826 +- Add -test patch to fix Unicode problem in the tests + +* Mon Dec 9 2013 Jerry James - 0.7.4-1 +- Update to 0.7.4 +- Python 2 and 3 sources are now in the same tarball + +* Fri Oct 18 2013 Jerry James - 0.7.3-2 +- Build a python3 subpackage (bz 982759) + +* Fri Aug 2 2013 Jerry James - 0.7.3-1 +- Update to 0.7.3 +- Upstream dropped all tutorial translations +- Add graphviz BR for documentation +- Sources now distributed from github instead of googlecode +- Adapt to versionless _docdir in Rawhide + +* Mon Jun 17 2013 Jerry James - 0.7.2-1 +- Update to 0.7.2 (bz 866044) +- Add python-pyglet R (bz 890312) +- Package the TeXmacs integration +- Build and provide documentation +- Provide examples +- Minor spec file cleanups + +* Fri Feb 15 2013 Fedora Release Engineering - 0.7.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Sat Jul 21 2012 Fedora Release Engineering - 0.7.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Sat Jan 14 2012 Fedora Release Engineering - 0.7.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Tue Oct 11 2011 Jussi Lehtola - 0.7.1-1 +- Update to 0.7.1. + +* Wed Feb 09 2011 Fedora Release Engineering - 0.6.7-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Mon Aug 30 2010 Jussi Lehtola - 0.6.7-5 +- Patch around BZ #564504. + +* Sat Jul 31 2010 David Malcolm - 0.6.7-4 +- fix a python 2.7 incompatibility + +* Thu Jul 22 2010 David Malcolm - 0.6.7-3 +- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild + +* Tue Apr 27 2010 Jussi Lehtola - 0.6.7-2 +- Added %%check phase. + +* Tue Apr 27 2010 Jussi Lehtola - 0.6.7-1 +- Update to 0.6.7. + +* Mon Feb 15 2010 Conrad Meyer - 0.6.6-3 +- Patch around private copy nicely; avoid breakage from trying to replace + a directory with a symlink. + +* Mon Feb 15 2010 Conrad Meyer - 0.6.6-2 +- Remove private copy of system lib 'mpmath' (rhbz #551576). + +* Sun Dec 27 2009 Jussi Lehtola - 0.6.6-1 +- Update to 0.6.6. + +* Sat Nov 07 2009 Jussi Lehtola - 0.6.5-1 +- Update to 0.6.5. + +* Sun Jul 26 2009 Fedora Release Engineering - 0.6.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Wed Feb 25 2009 Fedora Release Engineering - 0.6.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Thu Dec 4 2008 Conrad Meyer - 0.6.3-1 +- Bump to 0.6.3, supports python 2.6. + +* Sat Nov 29 2008 Ignacio Vazquez-Abrams - 0.6.2-3 +- Rebuild for Python 2.6 + +* Mon Oct 13 2008 Conrad Meyer - 0.6.2-2 +- Patch to remove extraneous shebangs. + +* Sun Oct 12 2008 Conrad Meyer - 0.6.2-1 +- Initial package.