Date: Saturday, October 5, 2019 @ 08:08:49 Author: arojas Revision: 512888
archrelease: copy trunk to community-x86_64 Added: sagemath/repos/community-x86_64/PKGBUILD (from rev 512887, sagemath/trunk/PKGBUILD) sagemath/repos/community-x86_64/fes02.patch (from rev 512887, sagemath/trunk/fes02.patch) sagemath/repos/community-x86_64/latte-count.patch (from rev 512887, sagemath/trunk/latte-count.patch) sagemath/repos/community-x86_64/package.patch (from rev 512887, sagemath/trunk/package.patch) sagemath/repos/community-x86_64/sagemath-cremona.patch (from rev 512887, sagemath/trunk/sagemath-cremona.patch) sagemath/repos/community-x86_64/sagemath-ecl-sigfpe.patch (from rev 512887, sagemath/trunk/sagemath-ecl-sigfpe.patch) sagemath/repos/community-x86_64/sagemath-mathjax-dir.patch (from rev 512887, sagemath/trunk/sagemath-mathjax-dir.patch) sagemath/repos/community-x86_64/sagemath-primecount-5.1.patch (from rev 512887, sagemath/trunk/sagemath-primecount-5.1.patch) sagemath/repos/community-x86_64/sagemath-python3-notebook.patch (from rev 512887, sagemath/trunk/sagemath-python3-notebook.patch) sagemath/repos/community-x86_64/sagemath-singular-4.1.2.patch (from rev 512887, sagemath/trunk/sagemath-singular-4.1.2.patch) sagemath/repos/community-x86_64/test-optional.patch (from rev 512887, sagemath/trunk/test-optional.patch) Deleted: sagemath/repos/community-x86_64/PKGBUILD sagemath/repos/community-x86_64/fes02.patch sagemath/repos/community-x86_64/latte-count.patch sagemath/repos/community-x86_64/package.patch sagemath/repos/community-x86_64/sagemath-cremona.patch sagemath/repos/community-x86_64/sagemath-ecl-sigfpe.patch sagemath/repos/community-x86_64/sagemath-mathjax-dir.patch sagemath/repos/community-x86_64/sagemath-primecount-5.1.patch sagemath/repos/community-x86_64/sagemath-python3-notebook.patch sagemath/repos/community-x86_64/sagemath-singular-4.1.2.patch sagemath/repos/community-x86_64/test-optional.patch ---------------------------------+ PKGBUILD | 304 +++++++++++++++++++------------------- fes02.patch | 114 +++++++------- latte-count.patch | 178 +++++++++++----------- package.patch | 78 ++++----- sagemath-cremona.patch | 62 +++---- sagemath-ecl-sigfpe.patch | 294 ++++++++++++++++++------------------ sagemath-mathjax-dir.patch | 54 +++--- sagemath-primecount-5.1.patch | 178 +++++++++++----------- sagemath-python3-notebook.patch | 158 +++++++++---------- sagemath-singular-4.1.2.patch | 204 ++++++++++++------------- test-optional.patch | 40 ++--- 11 files changed, 832 insertions(+), 832 deletions(-) Deleted: PKGBUILD =================================================================== --- PKGBUILD 2019-10-05 08:07:41 UTC (rev 512887) +++ PKGBUILD 2019-10-05 08:08:49 UTC (rev 512888) @@ -1,152 +0,0 @@ -# Maintainer: Antonio Rojas <aro...@archlinux.org> -# Contributor: Evgeniy Alekseev <arcanis.arch at gmail dot com> -# Contributor: Daniel Wallace <danielwallace at gtmanfred dot com> -# Contributor: Thomas Dziedzic <gostrc at gmail dot com> -# Contributor: Osman Ugus <ugus11 at yahoo dot com> -# Contributor: Stefan Husmann <stefan-husmann at t-online dot de> - -pkgbase=sagemath -pkgname=(sagemath sagemath-jupyter) -pkgver=8.9 -pkgrel=3 -pkgdesc="Open Source Mathematics Software, free alternative to Magma, Maple, Mathematica, and Matlab" -arch=(x86_64) -url="http://www.sagemath.org" -license=(GPL) -depends=(ipython2 palp brial cliquer maxima-ecl gfan sympow nauty python2-rpy2 python2-fpylll python2-psutil python2-cypari2 - python2-matplotlib python2-scipy python2-sympy python2-networkx python2-pillow python2-pplpy python2-future - gap flintqs lcalc lrcalc arb eclib zn_poly gd python2-cvxopt pynac linbox m4rie rubiks pari-galdata pari-seadata-small planarity rankwidth tachyon - sage-data-combinatorial_designs sage-data-elliptic_curves sage-data-graphs sage-data-polytopes_db sage-data-conway_polynomials - iml libgiac libhomfly libbraiding symmetrica three.js) -optdepends=('cython2: to compile cython code' 'python2-pkgconfig: to compile cython code' - 'jmol: 3D plots' 'sage-notebook: Flask notebook interface (deprecated)' - 'sagemath-doc: HTML documentation' 'python2-igraph: igraph backend for graph theory' - 'coin-or-cbc: COIN backend for numerical computations' 'coin-or-csdp: for computing Lovász theta-function of graphs' - 'buckygen: for generating fullerene graphs' 'plantri: for generating some classes of graphs' 'benzene: for generating fusenes and benzenoids' - 'ffmpeg: to export animations to video' 'imagemagick: to show animations' - 'coxeter: Coxeter groups implementation' - 'lrs: Algorithms for linear reverse search used in game theory and for computing volume of polytopes' - 'libfes: exhaustive search of solutions for boolean equations' 'python2-pynormaliz: Normaliz backend for polyhedral computations' - 'latte-integrale: integral point count in polyhedra' 'python2-jupymake: polymake backend for polyhedral computations' - 'shared_meataxe: faster matrix arithmetic over finite fields' 'openblas: faster linear algebra' - 'sirocco: for computing the fundamental group of the complement of a plane curve' 'primecount: faster prime_pi implementation' - 'dot2tex: for displaying some diagrams' 'cryptominisat5: SAT solver' 'python2-pycosat: picosat SAT solver' - 'python2-pip: to install optional packages with sage -pip') -makedepends=(cython2 boost ratpoints python2-jinja coin-or-cbc sirocco - mcqd coxeter bliss tdlib python2-pkgconfig shared_meataxe libfes primecount) -source=("$pkgname-$pkgver.tar.gz::https://github.com/sagemath/sage/archive/$pkgver.tar.gz" - package.patch - latte-count.patch - sagemath-python3-notebook.patch - test-optional.patch - fes02.patch - sagemath-cremona.patch - sagemath-singular-4.1.2.patch - sagemath-ecl-sigfpe.patch - sagemath-primecount-5.1.patch - sagemath-mathjax-dir.patch) -sha256sums=('4f9f18a08142fed69342b58ffc6221ec16fe8daf1042086b351e1308489ec5d4' - '328e45e78065b5f6527174bda48cfff6828acbf107c2535b0a9a92c3ceb35842' - '1a82372a96ffd5e6d475b0e620935967ce5eb9b4484607d39da90824a77b07c4' - '8b19aee28cb36b43815c206afee41a08a522f2502581f49b6bbc4a274fcf9dff' - '1f2a34e15bf732ec8687c467a52e897615505dc3ddd792d811e8b6a7e19f1517' - '7fcb52e96935dccb0f958d37c2f4e3918392480b9af53e08562f6cba6c68cb94' - '5281e5c715ff14ffa4003f643a508863ca58efb9e083cece81928f78810dc525' - '961bfb5694b67d425d21240d71490cb71714b5207c23448c89be0966512ff8f9' - 'a42f3b152b1aedb8abf16bc70971419919d1fe30328574e7fef8305f9d07d938' - '4e48ce9aa6a584a9e342e4fb0dac91a1af27cfc40bfedb54e68ccad3b9257bb6' - '388cd321fb8b73ae839bf2c150f7dd26ba34b0f6845f9761184db1dd5086b697') - -prepare(){ - cd sage-$pkgver - -# Arch-specific patches -# assume all optional packages are installed - patch -p0 -i ../package.patch -# don't list optional packages when running tests - patch -p0 -i ../test-optional.patch -# use correct latte-count binary name - patch -p1 -i ../latte-count.patch -# make 'sage -notebook=jupyter' work with our python3 jupyter-notebook package - patch -p1 -i ../sagemath-python3-notebook.patch -# fix build with primecount 5.1 - patch -p1 -i ../sagemath-primecount-5.1.patch -# Don't hardcode mathjax path - patch -p1 -i ../sagemath-mathjax-dir.patch - -# Upstream patches -# fix build against libfes 0.2 http://trac.sagemath.org/ticket/15209 - patch -p1 -i ../fes02.patch -# use Features to detect Cremona databases https://trac.sagemath.org/ticket/25825 - patch -p1 -i ../sagemath-cremona.patch -# Fixes for singular 4.1.2 https://trac.sagemath.org/ticket/25993 - patch -p1 -i ../sagemath-singular-4.1.2.patch -# Fix SIGFPE crashes with ecl 16.1.3 https://trac.sagemath.org/ticket/22191 - patch -p1 -i ../sagemath-ecl-sigfpe.patch - -# use python2 - sed -e 's|sage-python23|python2|' -e 's|#!/usr/bin/env python\b|#!/usr/bin/env python2|' -i src/bin/* - sed -e 's|exec ipython\b|exec ipython2|' -e 's|cygdb|cygdb2|g' -i src/bin/sage - sed -e "s|'cython'|'cython2'|" -i src/bin/sage-cython -} - - -build() { - cd sage-$pkgver/src - - export CC=gcc \ - SAGE_ROOT="$PWD" \ - SAGE_SRC="$PWD" \ - SAGE_NUM_THREADS=10 - python2 setup.py build -} - -package_sagemath() { - optdepends+=('sagemath-jupyter: Jupyter kernel') - - cd sage-$pkgver/src - - export SAGE_ROOT="$PWD" \ - SAGE_LOCAL="/usr" \ - SAGE_EXTCODE="$PWD"/ext - python2 setup.py install --root="$pkgdir" --optimize=1 - - mkdir -p "$pkgdir"/usr/bin - cp bin/{sage,math-readline} "$pkgdir"/usr/bin - for _i in cachegrind callgrind cleaner coverage coverageall cython eval fixdoctests grep grepdoc inline-fortran ipynb2rst \ - ipython massif maxima.lisp native-execute notebook num-threads.py omega open preparse python rst2sws rst2txt run \ - run-cython runtests startuptime.py sws2rst valgrind version.sh - do - cp bin/sage-$_i "$pkgdir"/usr/bin - done - - mkdir -p "$pkgdir"/usr/share/sage - cp -r ext "$pkgdir"/usr/share/sage - -# Remove sage_setup - rm -r "$pkgdir"/usr/lib/python2.7/site-packages/sage_setup -# Install tests - cp -r sage/doctest/tests "$pkgdir"/usr/lib/python2.7/site-packages/sage/doctest - cp -r sage/tests/books "$pkgdir"/usr/lib/python2.7/site-packages/sage/tests - -# Split jupyter kernel - rm -r "$pkgdir"/usr/share/jupyter -} - -package_sagemath-jupyter() { - pkgdesc='Jupyter kernel for SageMath' - depends=(sagemath python2-jupyter_client python2-ipywidgets jsmol) - optdepends=('sage-notebook-exporter: convert flask notebooks to Jupyter') - - cd sage-$pkgver/src - - export SAGE_ROOT="$PWD" \ - SAGE_LOCAL="/usr" \ - MATHJAX_DIR="/usr/share/mathjax2" - python2 -c "from sage.repl.ipython_kernel.install import SageKernelSpec; SageKernelSpec.update(prefix='$pkgdir/usr')" -# fix symlinks to assets - for _i in $(ls ext/notebook-ipython); do - rm "$pkgdir"/usr/share/jupyter/kernels/sagemath/$_i - ln -s /usr/share/sage/ext/notebook-ipython/$_i "$pkgdir"/usr/share/jupyter/kernels/sagemath/ - done -} Copied: sagemath/repos/community-x86_64/PKGBUILD (from rev 512887, sagemath/trunk/PKGBUILD) =================================================================== --- PKGBUILD (rev 0) +++ PKGBUILD 2019-10-05 08:08:49 UTC (rev 512888) @@ -0,0 +1,152 @@ +# Maintainer: Antonio Rojas <aro...@archlinux.org> +# Contributor: Evgeniy Alekseev <arcanis.arch at gmail dot com> +# Contributor: Daniel Wallace <danielwallace at gtmanfred dot com> +# Contributor: Thomas Dziedzic <gostrc at gmail dot com> +# Contributor: Osman Ugus <ugus11 at yahoo dot com> +# Contributor: Stefan Husmann <stefan-husmann at t-online dot de> + +pkgbase=sagemath +pkgname=(sagemath sagemath-jupyter) +pkgver=8.9 +pkgrel=4 +pkgdesc="Open Source Mathematics Software, free alternative to Magma, Maple, Mathematica, and Matlab" +arch=(x86_64) +url="http://www.sagemath.org" +license=(GPL) +depends=(ipython2 palp brial cliquer maxima-ecl gfan sympow nauty python2-rpy2 python2-fpylll python2-psutil python2-cypari2 + python2-matplotlib python2-scipy python2-sympy python2-networkx python2-pillow python2-pplpy python2-future python2-sphinx + gap flintqs lcalc lrcalc arb eclib zn_poly gd python2-cvxopt pynac linbox m4rie rubiks pari-galdata pari-seadata-small planarity rankwidth tachyon + sage-data-combinatorial_designs sage-data-elliptic_curves sage-data-graphs sage-data-polytopes_db sage-data-conway_polynomials + iml libgiac libhomfly libbraiding symmetrica three.js) +optdepends=('cython2: to compile cython code' 'python2-pkgconfig: to compile cython code' + 'jmol: 3D plots' 'sage-notebook: Flask notebook interface (deprecated)' + 'sagemath-doc: HTML documentation' 'python2-igraph: igraph backend for graph theory' + 'coin-or-cbc: COIN backend for numerical computations' 'coin-or-csdp: for computing Lovász theta-function of graphs' + 'buckygen: for generating fullerene graphs' 'plantri: for generating some classes of graphs' 'benzene: for generating fusenes and benzenoids' + 'ffmpeg: to export animations to video' 'imagemagick: to show animations' + 'coxeter: Coxeter groups implementation' + 'lrs: Algorithms for linear reverse search used in game theory and for computing volume of polytopes' + 'libfes: exhaustive search of solutions for boolean equations' 'python2-pynormaliz: Normaliz backend for polyhedral computations' + 'latte-integrale: integral point count in polyhedra' 'python2-jupymake: polymake backend for polyhedral computations' + 'shared_meataxe: faster matrix arithmetic over finite fields' 'openblas: faster linear algebra' + 'sirocco: for computing the fundamental group of the complement of a plane curve' 'primecount: faster prime_pi implementation' + 'dot2tex: for displaying some diagrams' 'cryptominisat5: SAT solver' 'python2-pycosat: picosat SAT solver' + 'python2-pip: to install optional packages with sage -pip') +makedepends=(cython2 boost ratpoints python2-jinja coin-or-cbc sirocco + mcqd coxeter bliss tdlib python2-pkgconfig shared_meataxe libfes primecount) +source=("$pkgname-$pkgver.tar.gz::https://github.com/sagemath/sage/archive/$pkgver.tar.gz" + package.patch + latte-count.patch + sagemath-python3-notebook.patch + test-optional.patch + fes02.patch + sagemath-cremona.patch + sagemath-singular-4.1.2.patch + sagemath-ecl-sigfpe.patch + sagemath-primecount-5.1.patch + sagemath-mathjax-dir.patch) +sha256sums=('4f9f18a08142fed69342b58ffc6221ec16fe8daf1042086b351e1308489ec5d4' + '328e45e78065b5f6527174bda48cfff6828acbf107c2535b0a9a92c3ceb35842' + '1a82372a96ffd5e6d475b0e620935967ce5eb9b4484607d39da90824a77b07c4' + '8b19aee28cb36b43815c206afee41a08a522f2502581f49b6bbc4a274fcf9dff' + '1f2a34e15bf732ec8687c467a52e897615505dc3ddd792d811e8b6a7e19f1517' + '7fcb52e96935dccb0f958d37c2f4e3918392480b9af53e08562f6cba6c68cb94' + '5281e5c715ff14ffa4003f643a508863ca58efb9e083cece81928f78810dc525' + '961bfb5694b67d425d21240d71490cb71714b5207c23448c89be0966512ff8f9' + 'a42f3b152b1aedb8abf16bc70971419919d1fe30328574e7fef8305f9d07d938' + '4e48ce9aa6a584a9e342e4fb0dac91a1af27cfc40bfedb54e68ccad3b9257bb6' + '388cd321fb8b73ae839bf2c150f7dd26ba34b0f6845f9761184db1dd5086b697') + +prepare(){ + cd sage-$pkgver + +# Arch-specific patches +# assume all optional packages are installed + patch -p0 -i ../package.patch +# don't list optional packages when running tests + patch -p0 -i ../test-optional.patch +# use correct latte-count binary name + patch -p1 -i ../latte-count.patch +# make 'sage -notebook=jupyter' work with our python3 jupyter-notebook package + patch -p1 -i ../sagemath-python3-notebook.patch +# fix build with primecount 5.1 + patch -p1 -i ../sagemath-primecount-5.1.patch +# Don't hardcode mathjax path + patch -p1 -i ../sagemath-mathjax-dir.patch + +# Upstream patches +# fix build against libfes 0.2 http://trac.sagemath.org/ticket/15209 + patch -p1 -i ../fes02.patch +# use Features to detect Cremona databases https://trac.sagemath.org/ticket/25825 + patch -p1 -i ../sagemath-cremona.patch +# Fixes for singular 4.1.2 https://trac.sagemath.org/ticket/25993 + patch -p1 -i ../sagemath-singular-4.1.2.patch +# Fix SIGFPE crashes with ecl 16.1.3 https://trac.sagemath.org/ticket/22191 + patch -p1 -i ../sagemath-ecl-sigfpe.patch + +# use python2 + sed -e 's|sage-python23|python2|' -e 's|#!/usr/bin/env python\b|#!/usr/bin/env python2|' -i src/bin/* + sed -e 's|exec ipython\b|exec ipython2|' -e 's|cygdb|cygdb2|g' -i src/bin/sage + sed -e "s|'cython'|'cython2'|" -i src/bin/sage-cython +} + + +build() { + cd sage-$pkgver/src + + export CC=gcc \ + SAGE_ROOT="$PWD" \ + SAGE_SRC="$PWD" \ + SAGE_NUM_THREADS=10 + python2 setup.py build +} + +package_sagemath() { + optdepends+=('sagemath-jupyter: Jupyter kernel') + + cd sage-$pkgver/src + + export SAGE_ROOT="$PWD" \ + SAGE_LOCAL="/usr" \ + SAGE_EXTCODE="$PWD"/ext + python2 setup.py install --root="$pkgdir" --optimize=1 + + mkdir -p "$pkgdir"/usr/bin + cp bin/{sage,math-readline} "$pkgdir"/usr/bin + for _i in cachegrind callgrind cleaner coverage coverageall cython eval fixdoctests grep grepdoc inline-fortran ipynb2rst \ + ipython massif maxima.lisp native-execute notebook num-threads.py omega open preparse python rst2sws rst2txt run \ + run-cython runtests startuptime.py sws2rst valgrind version.sh + do + cp bin/sage-$_i "$pkgdir"/usr/bin + done + + mkdir -p "$pkgdir"/usr/share/sage + cp -r ext "$pkgdir"/usr/share/sage + +# Remove sage_setup + rm -r "$pkgdir"/usr/lib/python2.7/site-packages/sage_setup +# Install tests + cp -r sage/doctest/tests "$pkgdir"/usr/lib/python2.7/site-packages/sage/doctest + cp -r sage/tests/books "$pkgdir"/usr/lib/python2.7/site-packages/sage/tests + +# Split jupyter kernel + rm -r "$pkgdir"/usr/share/jupyter +} + +package_sagemath-jupyter() { + pkgdesc='Jupyter kernel for SageMath' + depends=(sagemath python2-jupyter_client python2-ipywidgets jsmol) + optdepends=('sage-notebook-exporter: convert flask notebooks to Jupyter') + + cd sage-$pkgver/src + + export SAGE_ROOT="$PWD" \ + SAGE_LOCAL="/usr" \ + MATHJAX_DIR="/usr/share/mathjax2" + python2 -c "from sage.repl.ipython_kernel.install import SageKernelSpec; SageKernelSpec.update(prefix='$pkgdir/usr')" +# fix symlinks to assets + for _i in $(ls ext/notebook-ipython); do + rm "$pkgdir"/usr/share/jupyter/kernels/sagemath/$_i + ln -s /usr/share/sage/ext/notebook-ipython/$_i "$pkgdir"/usr/share/jupyter/kernels/sagemath/ + done +} Deleted: fes02.patch =================================================================== --- fes02.patch 2019-10-05 08:07:41 UTC (rev 512887) +++ fes02.patch 2019-10-05 08:08:49 UTC (rev 512888) @@ -1,57 +0,0 @@ -From b1f5e3ecc789db674fe17552812f2d0e2ab84be0 Mon Sep 17 00:00:00 2001 -From: Charles Bouillaguet <charles.bouillag...@lifl.fr> -Date: Thu, 19 Sep 2013 10:31:11 +0200 -Subject: updating the libFES binding to match a change in the interface - ---- - src/sage/libs/fes.pyx | 12 +++++++----- - 1 file changed, 7 insertions(+), 5 deletions(-) - -diff --git a/src/sage/libs/fes.pyx b/src/sage/libs/fes.pyx -index 40b9c23..d188cf0 100644 ---- a/src/sage/libs/fes.pyx -+++ b/src/sage/libs/fes.pyx -@@ -1,17 +1,19 @@ - """ --Binding for the FES library. -+Binding for the libFES library. - - Finding solutions of systems of boolean equations by exhaustive - search, via the fes library. This is usually (much) faster than - computing a Groebner basis, except in special cases where the latter - is particularly easy. - --The FES library is presently only able to deal with polynomials in 64 -+More information is available at [http://www.lifl.fr/~bouillag/fes]. -+ -+The libFES library is presently only able to deal with polynomials in 64 - variables. Performing a full exhaustive search over 64 variables will - take a **long** time. The number of variables can be artificially - reduced to 64 by specializing some of them. - --Note that the FES library **requires** at least of the equations to be -+Note that the libFES library **requires** at least of the equations to be - non-linear. - - AUTHORS: -@@ -71,7 +73,7 @@ from libc.stdint cimport uint64_t - cdef extern from "fes_interface.h": - ctypedef int (*solution_callback_t)(void *, uint64_t) - -- void exhaustive_search_wrapper(int n, int n_eqs, int degree, int ***coeffs, solution_callback_t callback, void* callback_state, int verbose) -+ void exhaustive_search_wrapper(int n, int n_eqs, int degree, int ***coeffs, solution_callback_t callback, void* callback_state, int verbose, int T) - - - from sage.rings.integer import Integer -@@ -217,7 +217,7 @@ def exhaustive_search(eqs, max_sols=Infinity, verbose=False): - - # ------- runs the library - sig_on() -- exhaustive_search_wrapper(n, len(eqs), degree, coeffs, report_solution, <void *> internal_state, verbose) -+ exhaustive_search_wrapper(n, len(eqs), degree, coeffs, report_solution, <void *> internal_state, verbose, 0) - sig_off() - - # ------- frees memory occupied by the dense representation of the equations --- -cgit v1.0-1-gd88e - Copied: sagemath/repos/community-x86_64/fes02.patch (from rev 512887, sagemath/trunk/fes02.patch) =================================================================== --- fes02.patch (rev 0) +++ fes02.patch 2019-10-05 08:08:49 UTC (rev 512888) @@ -0,0 +1,57 @@ +From b1f5e3ecc789db674fe17552812f2d0e2ab84be0 Mon Sep 17 00:00:00 2001 +From: Charles Bouillaguet <charles.bouillag...@lifl.fr> +Date: Thu, 19 Sep 2013 10:31:11 +0200 +Subject: updating the libFES binding to match a change in the interface + +--- + src/sage/libs/fes.pyx | 12 +++++++----- + 1 file changed, 7 insertions(+), 5 deletions(-) + +diff --git a/src/sage/libs/fes.pyx b/src/sage/libs/fes.pyx +index 40b9c23..d188cf0 100644 +--- a/src/sage/libs/fes.pyx ++++ b/src/sage/libs/fes.pyx +@@ -1,17 +1,19 @@ + """ +-Binding for the FES library. ++Binding for the libFES library. + + Finding solutions of systems of boolean equations by exhaustive + search, via the fes library. This is usually (much) faster than + computing a Groebner basis, except in special cases where the latter + is particularly easy. + +-The FES library is presently only able to deal with polynomials in 64 ++More information is available at [http://www.lifl.fr/~bouillag/fes]. ++ ++The libFES library is presently only able to deal with polynomials in 64 + variables. Performing a full exhaustive search over 64 variables will + take a **long** time. The number of variables can be artificially + reduced to 64 by specializing some of them. + +-Note that the FES library **requires** at least of the equations to be ++Note that the libFES library **requires** at least of the equations to be + non-linear. + + AUTHORS: +@@ -71,7 +73,7 @@ from libc.stdint cimport uint64_t + cdef extern from "fes_interface.h": + ctypedef int (*solution_callback_t)(void *, uint64_t) + +- void exhaustive_search_wrapper(int n, int n_eqs, int degree, int ***coeffs, solution_callback_t callback, void* callback_state, int verbose) ++ void exhaustive_search_wrapper(int n, int n_eqs, int degree, int ***coeffs, solution_callback_t callback, void* callback_state, int verbose, int T) + + + from sage.rings.integer import Integer +@@ -217,7 +217,7 @@ def exhaustive_search(eqs, max_sols=Infinity, verbose=False): + + # ------- runs the library + sig_on() +- exhaustive_search_wrapper(n, len(eqs), degree, coeffs, report_solution, <void *> internal_state, verbose) ++ exhaustive_search_wrapper(n, len(eqs), degree, coeffs, report_solution, <void *> internal_state, verbose, 0) + sig_off() + + # ------- frees memory occupied by the dense representation of the equations +-- +cgit v1.0-1-gd88e + Deleted: latte-count.patch =================================================================== --- latte-count.patch 2019-10-05 08:07:41 UTC (rev 512887) +++ latte-count.patch 2019-10-05 08:08:49 UTC (rev 512888) @@ -1,89 +0,0 @@ -diff --git a/src/sage/geometry/polyhedron/base_ZZ.py b/src/sage/geometry/polyhedron/base_ZZ.py -index 268af9db0d..70d41dfa30 100644 ---- a/src/sage/geometry/polyhedron/base_ZZ.py -+++ b/src/sage/geometry/polyhedron/base_ZZ.py -@@ -170,7 +170,7 @@ class Polyhedron_ZZ(Polyhedron_base): - sage: p = P.ehrhart_polynomial(maxdet=5, verbose=True) # optional - latte_int - This is LattE integrale ... - ... -- Invocation: count --ehrhart-polynomial '--redundancy-check=none' --cdd '--maxdet=5' /dev/stdin -+ Invocation: latte-count --ehrhart-polynomial '--redundancy-check=none' --cdd '--maxdet=5' /dev/stdin - ... - sage: p # optional - latte_int - 1/2*t^2 + 3/2*t + 1 -@@ -178,7 +178,7 @@ class Polyhedron_ZZ(Polyhedron_base): - sage: p = P.ehrhart_polynomial(dual=True, verbose=True) # optional - latte_int - This is LattE integrale ... - ... -- Invocation: count --ehrhart-polynomial '--redundancy-check=none' --cdd --dual /dev/stdin -+ Invocation: latte-count --ehrhart-polynomial '--redundancy-check=none' --cdd --dual /dev/stdin - ... - sage: p # optional - latte_int - 1/2*t^2 + 3/2*t + 1 -@@ -186,7 +186,7 @@ class Polyhedron_ZZ(Polyhedron_base): - sage: p = P.ehrhart_polynomial(irrational_primal=True, verbose=True) # optional - latte_int - This is LattE integrale ... - ... -- Invocation: count --ehrhart-polynomial '--redundancy-check=none' --cdd --irrational-primal /dev/stdin -+ Invocation: latte-count --ehrhart-polynomial '--redundancy-check=none' --cdd --irrational-primal /dev/stdin - ... - sage: p # optional - latte_int - 1/2*t^2 + 3/2*t + 1 -@@ -194,7 +194,7 @@ class Polyhedron_ZZ(Polyhedron_base): - sage: p = P.ehrhart_polynomial(irrational_all_primal=True, verbose=True) # optional - latte_int - This is LattE integrale ... - ... -- Invocation: count --ehrhart-polynomial '--redundancy-check=none' --cdd --irrational-all-primal /dev/stdin -+ Invocation: latte-count --ehrhart-polynomial '--redundancy-check=none' --cdd --irrational-all-primal /dev/stdin - ... - sage: p # optional - latte_int - 1/2*t^2 + 3/2*t + 1 -@@ -206,7 +206,7 @@ class Polyhedron_ZZ(Polyhedron_base): - ... - RuntimeError: LattE integrale program failed (exit code 1): - ... -- Invocation: count --ehrhart-polynomial '--redundancy-check=none' --cdd '--bim-bam-boum=19' /dev/stdin -+ Invocation: latte-count --ehrhart-polynomial '--redundancy-check=none' --cdd '--bim-bam-boum=19' /dev/stdin - Unknown command/option --bim-bam-boum=19 - """ - if self.is_empty(): -diff --git a/src/sage/interfaces/latte.py b/src/sage/interfaces/latte.py -index 066cedd401..302b39910d 100644 ---- a/src/sage/interfaces/latte.py -+++ b/src/sage/interfaces/latte.py -@@ -96,7 +96,7 @@ def count(arg, ehrhart_polynomial=False, multivariate_generating_function=False, - sage: n = count(cddin, cdd=True, verbose=True, raw_output=True) # optional - latte_int - This is LattE integrale ... - ... -- Invocation: count '--redundancy-check=none' --cdd /dev/stdin -+ Invocation: latte-count '--redundancy-check=none' --cdd /dev/stdin - ... - Total Unimodular Cones: ... - Maximum number of simplicial cones in memory at once: ... -@@ -117,7 +117,7 @@ def count(arg, ehrhart_polynomial=False, multivariate_generating_function=False, - - arg = str_to_bytes(arg) - -- args = ['count'] -+ args = ['latte-count'] - if ehrhart_polynomial and multivariate_generating_function: - raise ValueError - if ehrhart_polynomial: -diff --git a/src/sage/features/latte.py b/src/sage/features/latte.py -index 63d227fd35..040a5cf1f9 100644 ---- a/src/sage/features/latte.py -+++ b/src/sage/features/latte.py -@@ -9,10 +9,10 @@ from . import Executable, Feature, FeatureTestResult - - class Latte_count(Executable): - r""" -- Feature for the executable ``count`` from the LattE suite. -+ Feature for the executable ``latte-count`` from the LattE suite. - """ - def __init__(self): -- Executable.__init__(self, "count", executable="count", -+ Executable.__init__(self, "latte-count", executable="count", - spkg="latte_int", - url=LATTE_URL) - - Copied: sagemath/repos/community-x86_64/latte-count.patch (from rev 512887, sagemath/trunk/latte-count.patch) =================================================================== --- latte-count.patch (rev 0) +++ latte-count.patch 2019-10-05 08:08:49 UTC (rev 512888) @@ -0,0 +1,89 @@ +diff --git a/src/sage/geometry/polyhedron/base_ZZ.py b/src/sage/geometry/polyhedron/base_ZZ.py +index 268af9db0d..70d41dfa30 100644 +--- a/src/sage/geometry/polyhedron/base_ZZ.py ++++ b/src/sage/geometry/polyhedron/base_ZZ.py +@@ -170,7 +170,7 @@ class Polyhedron_ZZ(Polyhedron_base): + sage: p = P.ehrhart_polynomial(maxdet=5, verbose=True) # optional - latte_int + This is LattE integrale ... + ... +- Invocation: count --ehrhart-polynomial '--redundancy-check=none' --cdd '--maxdet=5' /dev/stdin ++ Invocation: latte-count --ehrhart-polynomial '--redundancy-check=none' --cdd '--maxdet=5' /dev/stdin + ... + sage: p # optional - latte_int + 1/2*t^2 + 3/2*t + 1 +@@ -178,7 +178,7 @@ class Polyhedron_ZZ(Polyhedron_base): + sage: p = P.ehrhart_polynomial(dual=True, verbose=True) # optional - latte_int + This is LattE integrale ... + ... +- Invocation: count --ehrhart-polynomial '--redundancy-check=none' --cdd --dual /dev/stdin ++ Invocation: latte-count --ehrhart-polynomial '--redundancy-check=none' --cdd --dual /dev/stdin + ... + sage: p # optional - latte_int + 1/2*t^2 + 3/2*t + 1 +@@ -186,7 +186,7 @@ class Polyhedron_ZZ(Polyhedron_base): + sage: p = P.ehrhart_polynomial(irrational_primal=True, verbose=True) # optional - latte_int + This is LattE integrale ... + ... +- Invocation: count --ehrhart-polynomial '--redundancy-check=none' --cdd --irrational-primal /dev/stdin ++ Invocation: latte-count --ehrhart-polynomial '--redundancy-check=none' --cdd --irrational-primal /dev/stdin + ... + sage: p # optional - latte_int + 1/2*t^2 + 3/2*t + 1 +@@ -194,7 +194,7 @@ class Polyhedron_ZZ(Polyhedron_base): + sage: p = P.ehrhart_polynomial(irrational_all_primal=True, verbose=True) # optional - latte_int + This is LattE integrale ... + ... +- Invocation: count --ehrhart-polynomial '--redundancy-check=none' --cdd --irrational-all-primal /dev/stdin ++ Invocation: latte-count --ehrhart-polynomial '--redundancy-check=none' --cdd --irrational-all-primal /dev/stdin + ... + sage: p # optional - latte_int + 1/2*t^2 + 3/2*t + 1 +@@ -206,7 +206,7 @@ class Polyhedron_ZZ(Polyhedron_base): + ... + RuntimeError: LattE integrale program failed (exit code 1): + ... +- Invocation: count --ehrhart-polynomial '--redundancy-check=none' --cdd '--bim-bam-boum=19' /dev/stdin ++ Invocation: latte-count --ehrhart-polynomial '--redundancy-check=none' --cdd '--bim-bam-boum=19' /dev/stdin + Unknown command/option --bim-bam-boum=19 + """ + if self.is_empty(): +diff --git a/src/sage/interfaces/latte.py b/src/sage/interfaces/latte.py +index 066cedd401..302b39910d 100644 +--- a/src/sage/interfaces/latte.py ++++ b/src/sage/interfaces/latte.py +@@ -96,7 +96,7 @@ def count(arg, ehrhart_polynomial=False, multivariate_generating_function=False, + sage: n = count(cddin, cdd=True, verbose=True, raw_output=True) # optional - latte_int + This is LattE integrale ... + ... +- Invocation: count '--redundancy-check=none' --cdd /dev/stdin ++ Invocation: latte-count '--redundancy-check=none' --cdd /dev/stdin + ... + Total Unimodular Cones: ... + Maximum number of simplicial cones in memory at once: ... +@@ -117,7 +117,7 @@ def count(arg, ehrhart_polynomial=False, multivariate_generating_function=False, + + arg = str_to_bytes(arg) + +- args = ['count'] ++ args = ['latte-count'] + if ehrhart_polynomial and multivariate_generating_function: + raise ValueError + if ehrhart_polynomial: +diff --git a/src/sage/features/latte.py b/src/sage/features/latte.py +index 63d227fd35..040a5cf1f9 100644 +--- a/src/sage/features/latte.py ++++ b/src/sage/features/latte.py +@@ -9,10 +9,10 @@ from . import Executable, Feature, FeatureTestResult + + class Latte_count(Executable): + r""" +- Feature for the executable ``count`` from the LattE suite. ++ Feature for the executable ``latte-count`` from the LattE suite. + """ + def __init__(self): +- Executable.__init__(self, "count", executable="count", ++ Executable.__init__(self, "latte-count", executable="count", + spkg="latte_int", + url=LATTE_URL) + + Deleted: package.patch =================================================================== --- package.patch 2019-10-05 08:07:41 UTC (rev 512887) +++ package.patch 2019-10-05 08:08:49 UTC (rev 512888) @@ -1,39 +0,0 @@ ---- src/sage/misc/package.py.orig 2014-11-23 15:58:13.000000000 +0100 -+++ src/sage/misc/package.py 2015-01-22 20:32:25.651383902 +0100 -@@ -336,7 +336,7 @@ - Use the framework provided by :mod:`sage.features` to check - whether a library is installed and functional. - """ -- return any(p.split('-')[0] == package for p in installed_packages(exclude_pip)) -+ return True - - - def package_versions(package_type, local=False): ---- src/sage_setup/optional_extension.py.orig 2016-10-19 18:35:10.092577510 +0000 -+++ src/sage_setup/optional_extension.py 2016-10-19 18:38:13.514765366 +0000 -@@ -21,8 +21,6 @@ - from distutils.extension import Extension - from sage.misc.package import list_packages - --all_packages = list_packages(local=True) -- - - class CythonizeExtension(Extension): - """ -@@ -76,15 +74,7 @@ - condition = kwds.pop("condition") - except KeyError: - pkg = kwds.pop("package") -- from sage.misc.package import is_package_installed -- try: -- pkginfo = all_packages[pkg] -- except KeyError: -- # Might be an installed old-style package -- condition = is_package_installed(pkg) -- else: -- condition = (pkginfo["installed_version"] == pkginfo["remote_version"]) -- -+ condition = True - if condition: - return Extension(*args, **kwds) - else: Copied: sagemath/repos/community-x86_64/package.patch (from rev 512887, sagemath/trunk/package.patch) =================================================================== --- package.patch (rev 0) +++ package.patch 2019-10-05 08:08:49 UTC (rev 512888) @@ -0,0 +1,39 @@ +--- src/sage/misc/package.py.orig 2014-11-23 15:58:13.000000000 +0100 ++++ src/sage/misc/package.py 2015-01-22 20:32:25.651383902 +0100 +@@ -336,7 +336,7 @@ + Use the framework provided by :mod:`sage.features` to check + whether a library is installed and functional. + """ +- return any(p.split('-')[0] == package for p in installed_packages(exclude_pip)) ++ return True + + + def package_versions(package_type, local=False): +--- src/sage_setup/optional_extension.py.orig 2016-10-19 18:35:10.092577510 +0000 ++++ src/sage_setup/optional_extension.py 2016-10-19 18:38:13.514765366 +0000 +@@ -21,8 +21,6 @@ + from distutils.extension import Extension + from sage.misc.package import list_packages + +-all_packages = list_packages(local=True) +- + + class CythonizeExtension(Extension): + """ +@@ -76,15 +74,7 @@ + condition = kwds.pop("condition") + except KeyError: + pkg = kwds.pop("package") +- from sage.misc.package import is_package_installed +- try: +- pkginfo = all_packages[pkg] +- except KeyError: +- # Might be an installed old-style package +- condition = is_package_installed(pkg) +- else: +- condition = (pkginfo["installed_version"] == pkginfo["remote_version"]) +- ++ condition = True + if condition: + return Extension(*args, **kwds) + else: Deleted: sagemath-cremona.patch =================================================================== --- sagemath-cremona.patch 2019-10-05 08:07:41 UTC (rev 512887) +++ sagemath-cremona.patch 2019-10-05 08:08:49 UTC (rev 512888) @@ -1,31 +0,0 @@ -diff --git a/src/sage/databases/cremona.py b/src/sage/databases/cremona.py -index 3f8dd62..ed5726a 100644 ---- a/src/sage/databases/cremona.py -+++ b/src/sage/databases/cremona.py -@@ -51,7 +51,7 @@ from sage.misc.prandom import randint - - import sage.schemes.elliptic_curves.constructor as elliptic - from .sql_db import SQLDatabase, verify_column --from sage.misc.package import is_package_installed -+from sage.features.databases import DatabaseCremona - from sage.env import CREMONA_MINI_DATA_DIR, CREMONA_LARGE_DATA_DIR, SAGE_SHARE - from sage.misc.all import walltime - -@@ -843,7 +843,7 @@ class MiniCremonaDatabase(SQLDatabase): - if N < self.largest_conductor(): - message = "There is no elliptic curve with label " + label \ - + " in the database" -- elif is_package_installed('database_cremona_ellcurve'): -+ elif DatabaseCremona().is_present(): - message = "There is no elliptic curve with label " + label \ - + " in the currently available databases" - else: -@@ -1695,7 +1695,7 @@ def CremonaDatabase(name=None,mini=None,set_global=None): - if name is None and not set_global: - return _db - if set_global and name is None: -- if is_package_installed('database_cremona_ellcurve'): -+ if DatabaseCremona().is_present(): - name = 'cremona' - else: - name = 'cremona mini' Copied: sagemath/repos/community-x86_64/sagemath-cremona.patch (from rev 512887, sagemath/trunk/sagemath-cremona.patch) =================================================================== --- sagemath-cremona.patch (rev 0) +++ sagemath-cremona.patch 2019-10-05 08:08:49 UTC (rev 512888) @@ -0,0 +1,31 @@ +diff --git a/src/sage/databases/cremona.py b/src/sage/databases/cremona.py +index 3f8dd62..ed5726a 100644 +--- a/src/sage/databases/cremona.py ++++ b/src/sage/databases/cremona.py +@@ -51,7 +51,7 @@ from sage.misc.prandom import randint + + import sage.schemes.elliptic_curves.constructor as elliptic + from .sql_db import SQLDatabase, verify_column +-from sage.misc.package import is_package_installed ++from sage.features.databases import DatabaseCremona + from sage.env import CREMONA_MINI_DATA_DIR, CREMONA_LARGE_DATA_DIR, SAGE_SHARE + from sage.misc.all import walltime + +@@ -843,7 +843,7 @@ class MiniCremonaDatabase(SQLDatabase): + if N < self.largest_conductor(): + message = "There is no elliptic curve with label " + label \ + + " in the database" +- elif is_package_installed('database_cremona_ellcurve'): ++ elif DatabaseCremona().is_present(): + message = "There is no elliptic curve with label " + label \ + + " in the currently available databases" + else: +@@ -1695,7 +1695,7 @@ def CremonaDatabase(name=None,mini=None,set_global=None): + if name is None and not set_global: + return _db + if set_global and name is None: +- if is_package_installed('database_cremona_ellcurve'): ++ if DatabaseCremona().is_present(): + name = 'cremona' + else: + name = 'cremona mini' Deleted: sagemath-ecl-sigfpe.patch =================================================================== --- sagemath-ecl-sigfpe.patch 2019-10-05 08:07:41 UTC (rev 512887) +++ sagemath-ecl-sigfpe.patch 2019-10-05 08:08:49 UTC (rev 512888) @@ -1,147 +0,0 @@ -diff --git a/src/sage/libs/ecl.pyx b/src/sage/libs/ecl.pyx -index e408866..fa24ac0 100644 ---- a/src/sage/libs/ecl.pyx -+++ b/src/sage/libs/ecl.pyx -@@ -16,7 +16,7 @@ from __future__ import print_function, absolute_import - #adapted to work with pure Python types. - - from libc.stdlib cimport abort --from libc.signal cimport SIGINT, SIGBUS, SIGSEGV, SIGCHLD -+from libc.signal cimport SIGINT, SIGBUS, SIGSEGV, SIGCHLD, SIGFPE - from libc.signal cimport raise_ as signal_raise - from posix.signal cimport sigaction, sigaction_t - cimport cysignals.signals -@@ -48,9 +48,14 @@ cdef extern from "eclsig.h": - void ecl_sig_off() - cdef sigaction_t ecl_sigint_handler - cdef sigaction_t ecl_sigbus_handler -+ cdef sigaction_t ecl_sigfpe_handler - cdef sigaction_t ecl_sigsegv_handler - cdef mpz_t ecl_mpz_from_bignum(cl_object obj) - cdef cl_object ecl_bignum_from_mpz(mpz_t num) -+ cdef int fegetexcept() -+ cdef int feenableexcept(int) -+ cdef int fedisableexcept(int) -+ cdef int ecl_feflags - - cdef cl_object string_to_object(char * s): - return ecl_read_from_cstring(s) -@@ -239,6 +244,7 @@ def init_ecl(): - global ecl_has_booted - cdef char *argv[1] - cdef sigaction_t sage_action[32] -+ cdef int sage_fpes - cdef int i - - if ecl_has_booted: -@@ -258,6 +264,8 @@ def init_ecl(): - for i in range(1,32): - sigaction(i, NULL, &sage_action[i]) - -+ sage_fpes = fegetexcept() -+ - #initialize ECL - ecl_set_option(ECL_OPT_SIGNAL_HANDLING_THREAD, 0) - cl_boot(1, argv) -@@ -265,8 +273,12 @@ def init_ecl(): - #save signal handler from ECL - sigaction(SIGINT, NULL, &ecl_sigint_handler) - sigaction(SIGBUS, NULL, &ecl_sigbus_handler) -+ sigaction(SIGFPE, NULL, &ecl_sigfpe_handler) - sigaction(SIGSEGV, NULL, &ecl_sigsegv_handler) - -+ #save ECL's floating point exception flags -+ ecl_feflags = fegetexcept() -+ - #verify that no SIGCHLD handler was installed - cdef sigaction_t sig_test - sigaction(SIGCHLD, NULL, &sig_test) -@@ -277,6 +289,9 @@ def init_ecl(): - for i in range(1,32): - sigaction(i, &sage_action[i], NULL) - -+ fedisableexcept(ecl_feflags) -+ feenableexcept(sage_fpes) -+ - #initialise list of objects and bind to global variable - # *SAGE-LIST-OF-OBJECTS* to make it rooted in the reachable tree for the GC - list_of_objects=cl_cons(Cnil,cl_cons(Cnil,Cnil)) -@@ -320,7 +335,6 @@ def init_ecl(): - (values nil (princ-to-string cnd))))) - """)) - safe_funcall_clobj=cl_eval(string_to_object(b"(symbol-function 'sage-safe-funcall)")) -- - ecl_has_booted = 1 - - cdef cl_object ecl_safe_eval(cl_object form) except NULL: -diff --git a/src/sage/libs/eclsig.h b/src/sage/libs/eclsig.h -index f9f2690..a7e1f40 100644 ---- a/src/sage/libs/eclsig.h -+++ b/src/sage/libs/eclsig.h -@@ -9,24 +9,66 @@ - - - #include <signal.h> -+ -+/* Rummage around to determine how ECL was configured */ -+#define ECL_AVOID_FPE_H /* Prevent some local includes */ -+#include <ecl/config-internal.h> -+ -+#ifdef HAVE_FENV_H -+#include <fenv.h> -+#ifndef FE_ALL_EXCEPT -+#define FE_ALL_EXCEPT FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW | FE_INVALID -+#endif -+#else -+#ifndef FE_ALL_EXCEPT -+#define FE_ALL_EXCEPT 0 -+#endif -+#define feclearexcept(flags) do {} while (0) -+#endif -+ -+#ifndef HAVE_FEENABLEEXCEPT -+/* These are GNU extensions */ -+#define fegetexcept() 0 -+#define feenablexcept(flags) do {} while (0) -+#define fdisableexcept(flags) do {} while (0) -+#endif -+ - static struct sigaction ecl_sigint_handler; - static struct sigaction ecl_sigbus_handler; -+static struct sigaction ecl_sigfpe_handler; - static struct sigaction ecl_sigsegv_handler; - static struct sigaction sage_sigint_handler; - static struct sigaction sage_sigbus_handler; -+static struct sigaction sage_sigfpe_handler; - static struct sigaction sage_sigsegv_handler; -+static int ecl_feflags; -+static int sage_feflags; - - static inline void set_ecl_signal_handler(void) - { - sigaction(SIGINT, &ecl_sigint_handler, &sage_sigint_handler); - sigaction(SIGBUS, &ecl_sigbus_handler, &sage_sigbus_handler); -+ sigaction(SIGFPE, &ecl_sigfpe_handler, &sage_sigfpe_handler); - sigaction(SIGSEGV, &ecl_sigsegv_handler, &sage_sigsegv_handler); -+ -+ /* first clear pending floating point exceptions, if any */ -+ feclearexcept(FE_ALL_EXCEPT); -+ -+ /* sage_feflags should be 0; we don't set them otherwise */ -+ sage_feflags = fedisableexcept(FE_ALL_EXCEPT); -+ feenableexcept(ecl_feflags); - } - - static inline void unset_ecl_signal_handler(void) - { -+ /* clear pending exceptions and restore previous exception mask */ -+ feclearexcept(FE_ALL_EXCEPT); -+ ecl_feflags = fedisableexcept(FE_ALL_EXCEPT); -+ feenableexcept(sage_feflags); -+ - sigaction(SIGINT, &sage_sigint_handler, NULL); - sigaction(SIGBUS, &sage_sigbus_handler, NULL); -+ sigaction(SIGFPE, &sage_sigfpe_handler, NULL); - sigaction(SIGSEGV, &sage_sigsegv_handler, NULL); - } - Copied: sagemath/repos/community-x86_64/sagemath-ecl-sigfpe.patch (from rev 512887, sagemath/trunk/sagemath-ecl-sigfpe.patch) =================================================================== --- sagemath-ecl-sigfpe.patch (rev 0) +++ sagemath-ecl-sigfpe.patch 2019-10-05 08:08:49 UTC (rev 512888) @@ -0,0 +1,147 @@ +diff --git a/src/sage/libs/ecl.pyx b/src/sage/libs/ecl.pyx +index e408866..fa24ac0 100644 +--- a/src/sage/libs/ecl.pyx ++++ b/src/sage/libs/ecl.pyx +@@ -16,7 +16,7 @@ from __future__ import print_function, absolute_import + #adapted to work with pure Python types. + + from libc.stdlib cimport abort +-from libc.signal cimport SIGINT, SIGBUS, SIGSEGV, SIGCHLD ++from libc.signal cimport SIGINT, SIGBUS, SIGSEGV, SIGCHLD, SIGFPE + from libc.signal cimport raise_ as signal_raise + from posix.signal cimport sigaction, sigaction_t + cimport cysignals.signals +@@ -48,9 +48,14 @@ cdef extern from "eclsig.h": + void ecl_sig_off() + cdef sigaction_t ecl_sigint_handler + cdef sigaction_t ecl_sigbus_handler ++ cdef sigaction_t ecl_sigfpe_handler + cdef sigaction_t ecl_sigsegv_handler + cdef mpz_t ecl_mpz_from_bignum(cl_object obj) + cdef cl_object ecl_bignum_from_mpz(mpz_t num) ++ cdef int fegetexcept() ++ cdef int feenableexcept(int) ++ cdef int fedisableexcept(int) ++ cdef int ecl_feflags + + cdef cl_object string_to_object(char * s): + return ecl_read_from_cstring(s) +@@ -239,6 +244,7 @@ def init_ecl(): + global ecl_has_booted + cdef char *argv[1] + cdef sigaction_t sage_action[32] ++ cdef int sage_fpes + cdef int i + + if ecl_has_booted: +@@ -258,6 +264,8 @@ def init_ecl(): + for i in range(1,32): + sigaction(i, NULL, &sage_action[i]) + ++ sage_fpes = fegetexcept() ++ + #initialize ECL + ecl_set_option(ECL_OPT_SIGNAL_HANDLING_THREAD, 0) + cl_boot(1, argv) +@@ -265,8 +273,12 @@ def init_ecl(): + #save signal handler from ECL + sigaction(SIGINT, NULL, &ecl_sigint_handler) + sigaction(SIGBUS, NULL, &ecl_sigbus_handler) ++ sigaction(SIGFPE, NULL, &ecl_sigfpe_handler) + sigaction(SIGSEGV, NULL, &ecl_sigsegv_handler) + ++ #save ECL's floating point exception flags ++ ecl_feflags = fegetexcept() ++ + #verify that no SIGCHLD handler was installed + cdef sigaction_t sig_test + sigaction(SIGCHLD, NULL, &sig_test) +@@ -277,6 +289,9 @@ def init_ecl(): + for i in range(1,32): + sigaction(i, &sage_action[i], NULL) + ++ fedisableexcept(ecl_feflags) ++ feenableexcept(sage_fpes) ++ + #initialise list of objects and bind to global variable + # *SAGE-LIST-OF-OBJECTS* to make it rooted in the reachable tree for the GC + list_of_objects=cl_cons(Cnil,cl_cons(Cnil,Cnil)) +@@ -320,7 +335,6 @@ def init_ecl(): + (values nil (princ-to-string cnd))))) + """)) + safe_funcall_clobj=cl_eval(string_to_object(b"(symbol-function 'sage-safe-funcall)")) +- + ecl_has_booted = 1 + + cdef cl_object ecl_safe_eval(cl_object form) except NULL: +diff --git a/src/sage/libs/eclsig.h b/src/sage/libs/eclsig.h +index f9f2690..a7e1f40 100644 +--- a/src/sage/libs/eclsig.h ++++ b/src/sage/libs/eclsig.h +@@ -9,24 +9,66 @@ + + + #include <signal.h> ++ ++/* Rummage around to determine how ECL was configured */ ++#define ECL_AVOID_FPE_H /* Prevent some local includes */ ++#include <ecl/config-internal.h> ++ ++#ifdef HAVE_FENV_H ++#include <fenv.h> ++#ifndef FE_ALL_EXCEPT ++#define FE_ALL_EXCEPT FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW | FE_INVALID ++#endif ++#else ++#ifndef FE_ALL_EXCEPT ++#define FE_ALL_EXCEPT 0 ++#endif ++#define feclearexcept(flags) do {} while (0) ++#endif ++ ++#ifndef HAVE_FEENABLEEXCEPT ++/* These are GNU extensions */ ++#define fegetexcept() 0 ++#define feenablexcept(flags) do {} while (0) ++#define fdisableexcept(flags) do {} while (0) ++#endif ++ + static struct sigaction ecl_sigint_handler; + static struct sigaction ecl_sigbus_handler; ++static struct sigaction ecl_sigfpe_handler; + static struct sigaction ecl_sigsegv_handler; + static struct sigaction sage_sigint_handler; + static struct sigaction sage_sigbus_handler; ++static struct sigaction sage_sigfpe_handler; + static struct sigaction sage_sigsegv_handler; ++static int ecl_feflags; ++static int sage_feflags; + + static inline void set_ecl_signal_handler(void) + { + sigaction(SIGINT, &ecl_sigint_handler, &sage_sigint_handler); + sigaction(SIGBUS, &ecl_sigbus_handler, &sage_sigbus_handler); ++ sigaction(SIGFPE, &ecl_sigfpe_handler, &sage_sigfpe_handler); + sigaction(SIGSEGV, &ecl_sigsegv_handler, &sage_sigsegv_handler); ++ ++ /* first clear pending floating point exceptions, if any */ ++ feclearexcept(FE_ALL_EXCEPT); ++ ++ /* sage_feflags should be 0; we don't set them otherwise */ ++ sage_feflags = fedisableexcept(FE_ALL_EXCEPT); ++ feenableexcept(ecl_feflags); + } + + static inline void unset_ecl_signal_handler(void) + { ++ /* clear pending exceptions and restore previous exception mask */ ++ feclearexcept(FE_ALL_EXCEPT); ++ ecl_feflags = fedisableexcept(FE_ALL_EXCEPT); ++ feenableexcept(sage_feflags); ++ + sigaction(SIGINT, &sage_sigint_handler, NULL); + sigaction(SIGBUS, &sage_sigbus_handler, NULL); ++ sigaction(SIGFPE, &sage_sigfpe_handler, NULL); + sigaction(SIGSEGV, &sage_sigsegv_handler, NULL); + } + Deleted: sagemath-mathjax-dir.patch =================================================================== --- sagemath-mathjax-dir.patch 2019-10-05 08:07:41 UTC (rev 512887) +++ sagemath-mathjax-dir.patch 2019-10-05 08:08:49 UTC (rev 512888) @@ -1,27 +0,0 @@ -diff --git a/src/sage/docs/conf.py b/src/sage/docs/conf.py -index 401342da5b..12c418ad93 100644 ---- a/src/sage/docs/conf.py -+++ b/src/sage/docs/conf.py -@@ -1,5 +1,5 @@ - import sys, os, sphinx --from sage.env import SAGE_DOC_SRC, SAGE_DOC, SAGE_SRC, THEBE_DIR, PPLPY_DOCS, SAGE_SHARE -+from sage.env import SAGE_DOC_SRC, SAGE_DOC, SAGE_SRC, THEBE_DIR, PPLPY_DOCS, MATHJAX_DIR - import sage.version - from sage.misc.sagedoc import extlinks - import dateutil.parser -@@ -260,13 +260,12 @@ if (os.environ.get('SAGE_DOC_MATHJAX', 'no') != 'no' - from sage.misc.latex_macros import sage_mathjax_macros - html_theme_options['mathjax_macros'] = sage_mathjax_macros() - -- mathjax_relative = 'mathjax' -+ mathjax_relative = os.path.basename(MATHJAX_DIR) - - # It would be really nice if sphinx would copy the entire mathjax directory, - # (so we could have a _static/mathjax directory), rather than the contents of the directory - -- mathjax_static = os.path.join(SAGE_SHARE, mathjax_relative) -- html_static_path.append(mathjax_static) -+ html_static_path.append(MATHJAX_DIR) - exclude_patterns += ['**/'+os.path.join(mathjax_relative, i) - for i in ('docs', 'README*', 'test', - 'unpacked', 'LICENSE')] Copied: sagemath/repos/community-x86_64/sagemath-mathjax-dir.patch (from rev 512887, sagemath/trunk/sagemath-mathjax-dir.patch) =================================================================== --- sagemath-mathjax-dir.patch (rev 0) +++ sagemath-mathjax-dir.patch 2019-10-05 08:08:49 UTC (rev 512888) @@ -0,0 +1,27 @@ +diff --git a/src/sage/docs/conf.py b/src/sage/docs/conf.py +index 401342da5b..12c418ad93 100644 +--- a/src/sage/docs/conf.py ++++ b/src/sage/docs/conf.py +@@ -1,5 +1,5 @@ + import sys, os, sphinx +-from sage.env import SAGE_DOC_SRC, SAGE_DOC, SAGE_SRC, THEBE_DIR, PPLPY_DOCS, SAGE_SHARE ++from sage.env import SAGE_DOC_SRC, SAGE_DOC, SAGE_SRC, THEBE_DIR, PPLPY_DOCS, MATHJAX_DIR + import sage.version + from sage.misc.sagedoc import extlinks + import dateutil.parser +@@ -260,13 +260,12 @@ if (os.environ.get('SAGE_DOC_MATHJAX', 'no') != 'no' + from sage.misc.latex_macros import sage_mathjax_macros + html_theme_options['mathjax_macros'] = sage_mathjax_macros() + +- mathjax_relative = 'mathjax' ++ mathjax_relative = os.path.basename(MATHJAX_DIR) + + # It would be really nice if sphinx would copy the entire mathjax directory, + # (so we could have a _static/mathjax directory), rather than the contents of the directory + +- mathjax_static = os.path.join(SAGE_SHARE, mathjax_relative) +- html_static_path.append(mathjax_static) ++ html_static_path.append(MATHJAX_DIR) + exclude_patterns += ['**/'+os.path.join(mathjax_relative, i) + for i in ('docs', 'README*', 'test', + 'unpacked', 'LICENSE')] Deleted: sagemath-primecount-5.1.patch =================================================================== --- sagemath-primecount-5.1.patch 2019-10-05 08:07:41 UTC (rev 512887) +++ sagemath-primecount-5.1.patch 2019-10-05 08:08:49 UTC (rev 512888) @@ -1,89 +0,0 @@ -diff --git a/src/sage/interfaces/primecount.pyx b/src/sage/interfaces/primecount.pyx -index a0f698779e..86dce1c790 100644 ---- a/src/sage/interfaces/primecount.pyx -+++ b/src/sage/interfaces/primecount.pyx -@@ -22,7 +22,7 @@ cdef inline int _do_sig(int64_t n): - "threshold for sig_on/sig_off" - return n >> 26 - --cpdef int64_t prime_pi(int64_t n, method=None) except -1: -+cpdef int64_t prime_pi(int64_t n) except -1: - r""" - Return the number of prime numbers smaller or equal than ``n``. - -@@ -30,71 +30,17 @@ cpdef int64_t prime_pi(int64_t n, method=None) except -1: - - - ``n`` - an integer - -- - ``method`` - ``None`` or a string that determines the primecount -- function to be called -- -- - ``"deleglise_rivat"`` -- - ``"legendre"`` -- - ``"lehmer"`` -- - ``"lmo"`` -- - ``"meissel"`` -- - ``"primesieve"`` -- - EXAMPLES:: - - sage: from sage.interfaces.primecount import prime_pi # optional - primecount - - sage: prime_pi(1000) == 168 # optional - primecount - True -- sage: prime_pi(1000, "deleglise_rivat") == 168 # optional - primecount -- True -- sage: prime_pi(1000, "legendre") == 168 # optional - primecount -- True -- sage: prime_pi(1000, "lehmer") == 168 # optional - primecount -- True -- sage: prime_pi(1000, "lmo") == 168 # optional - primecount -- True -- sage: prime_pi(1000, "meissel") == 168 # optional - primecount -- True -- sage: prime_pi(1000, "primesieve") == 168 # optional - primecount -- True -- sage: prime_pi(1000, "youpi") # optional - primecount -- Traceback (most recent call last): -- ... -- ValueError: unknown method 'youpi' - """ - cdef int64_t ans -- if method is None: -- if _do_sig(n): sig_on() -- ans = primecount.pi(n) -- if _do_sig(n): sig_off() -- elif method == "deleglise_rivat": -- if _do_sig(n): sig_on() -- ans = primecount.pi_deleglise_rivat(n) -- if _do_sig(n): sig_off() -- elif method == "legendre": -- if _do_sig(n): sig_on() -- ans = primecount.pi_legendre(n) -- if _do_sig(n): sig_off() -- elif method == "lehmer": -- if _do_sig(n): sig_on() -- ans = primecount.pi_lehmer(n) -- if _do_sig(n): sig_off() -- elif method == "lmo": -- if _do_sig(n): sig_on() -- ans = primecount.pi_lmo(n) -- if _do_sig(n): sig_off() -- elif method == "meissel": -- if _do_sig(n): sig_on() -- ans = primecount.pi_meissel(n) -- if _do_sig(n): sig_off() -- elif method == "primesieve": -- if _do_sig(n): sig_on() -- ans = primecount.pi_primesieve(n) -- if _do_sig(n): sig_off() -- else: -- raise ValueError("unknown method {!r}".format(method)) -- -+ if _do_sig(n): sig_on() -+ ans = primecount.pi(n) -+ if _do_sig(n): sig_off() - return ans - - cpdef prime_pi_128(n): - Copied: sagemath/repos/community-x86_64/sagemath-primecount-5.1.patch (from rev 512887, sagemath/trunk/sagemath-primecount-5.1.patch) =================================================================== --- sagemath-primecount-5.1.patch (rev 0) +++ sagemath-primecount-5.1.patch 2019-10-05 08:08:49 UTC (rev 512888) @@ -0,0 +1,89 @@ +diff --git a/src/sage/interfaces/primecount.pyx b/src/sage/interfaces/primecount.pyx +index a0f698779e..86dce1c790 100644 +--- a/src/sage/interfaces/primecount.pyx ++++ b/src/sage/interfaces/primecount.pyx +@@ -22,7 +22,7 @@ cdef inline int _do_sig(int64_t n): + "threshold for sig_on/sig_off" + return n >> 26 + +-cpdef int64_t prime_pi(int64_t n, method=None) except -1: ++cpdef int64_t prime_pi(int64_t n) except -1: + r""" + Return the number of prime numbers smaller or equal than ``n``. + +@@ -30,71 +30,17 @@ cpdef int64_t prime_pi(int64_t n, method=None) except -1: + + - ``n`` - an integer + +- - ``method`` - ``None`` or a string that determines the primecount +- function to be called +- +- - ``"deleglise_rivat"`` +- - ``"legendre"`` +- - ``"lehmer"`` +- - ``"lmo"`` +- - ``"meissel"`` +- - ``"primesieve"`` +- + EXAMPLES:: + + sage: from sage.interfaces.primecount import prime_pi # optional - primecount + + sage: prime_pi(1000) == 168 # optional - primecount + True +- sage: prime_pi(1000, "deleglise_rivat") == 168 # optional - primecount +- True +- sage: prime_pi(1000, "legendre") == 168 # optional - primecount +- True +- sage: prime_pi(1000, "lehmer") == 168 # optional - primecount +- True +- sage: prime_pi(1000, "lmo") == 168 # optional - primecount +- True +- sage: prime_pi(1000, "meissel") == 168 # optional - primecount +- True +- sage: prime_pi(1000, "primesieve") == 168 # optional - primecount +- True +- sage: prime_pi(1000, "youpi") # optional - primecount +- Traceback (most recent call last): +- ... +- ValueError: unknown method 'youpi' + """ + cdef int64_t ans +- if method is None: +- if _do_sig(n): sig_on() +- ans = primecount.pi(n) +- if _do_sig(n): sig_off() +- elif method == "deleglise_rivat": +- if _do_sig(n): sig_on() +- ans = primecount.pi_deleglise_rivat(n) +- if _do_sig(n): sig_off() +- elif method == "legendre": +- if _do_sig(n): sig_on() +- ans = primecount.pi_legendre(n) +- if _do_sig(n): sig_off() +- elif method == "lehmer": +- if _do_sig(n): sig_on() +- ans = primecount.pi_lehmer(n) +- if _do_sig(n): sig_off() +- elif method == "lmo": +- if _do_sig(n): sig_on() +- ans = primecount.pi_lmo(n) +- if _do_sig(n): sig_off() +- elif method == "meissel": +- if _do_sig(n): sig_on() +- ans = primecount.pi_meissel(n) +- if _do_sig(n): sig_off() +- elif method == "primesieve": +- if _do_sig(n): sig_on() +- ans = primecount.pi_primesieve(n) +- if _do_sig(n): sig_off() +- else: +- raise ValueError("unknown method {!r}".format(method)) +- ++ if _do_sig(n): sig_on() ++ ans = primecount.pi(n) ++ if _do_sig(n): sig_off() + return ans + + cpdef prime_pi_128(n): + Deleted: sagemath-python3-notebook.patch =================================================================== --- sagemath-python3-notebook.patch 2019-10-05 08:07:41 UTC (rev 512887) +++ sagemath-python3-notebook.patch 2019-10-05 08:08:49 UTC (rev 512888) @@ -1,79 +0,0 @@ -diff --git a/src/bin/sage-notebook b/src/bin/sage-notebook -index 83109e6..b954c22 100755 ---- a/src/bin/sage-notebook -+++ b/src/bin/sage-notebook -@@ -91,12 +91,8 @@ class NotebookJupyter(object): - - def __init__(self, argv): - self.print_banner() -- from sage.repl.ipython_kernel.install import have_prerequisites -- if not have_prerequisites(): -- print(self.PREREQUISITE_ERROR) -- raise SystemExit(1) -- from notebook.notebookapp import main -- main(argv) -+ from sys import prefix -+ os.execv(os.path.join(prefix, 'bin', 'jupyter-notebook'), ['jupyter-notebook'] + argv) - - - class NotebookJupyterlab(object): -@@ -109,15 +105,15 @@ class NotebookJupyterlab(object): - cls(['help']) - - def __init__(self, argv): -+ self.print_banner() -+ from sys import prefix - try: -- from jupyterlab.labapp import main -- except ImportError: -+ os.execv(os.path.join(prefix, 'bin', 'jupyter-lab'), ['jupyter-lab'] + argv) -+ except OSError: - print("Jupyterlab is not installed (at least not in this Sage installation).") - print("You can install it by running") - print(" sage --pip install jupyterlab") - raise SystemExit(1) -- self.print_banner() -- main(argv) - - - class SageNBExport(NotebookJupyter): -diff --git a/src/sage/repl/ipython_kernel/install.py b/src/sage/repl/ipython_kernel/install.py -index 073fae5..81378f4 100644 ---- a/src/sage/repl/ipython_kernel/install.py -+++ b/src/sage/repl/ipython_kernel/install.py -@@ -279,35 +279,3 @@ class SageKernelSpec(object): - instance.use_local_threejs() - instance._install_spec() - instance._symlink_resources() -- -- --def have_prerequisites(debug=True): -- """ -- Check that we have all prerequisites to run the Jupyter notebook. -- -- In particular, the Jupyter notebook requires OpenSSL whether or -- not you are using https. See :trac:`17318`. -- -- INPUT: -- -- ``debug`` -- boolean (default: ``True``). Whether to print debug -- information in case that prerequisites are missing. -- -- OUTPUT: -- -- Boolean. -- -- EXAMPLES:: -- -- sage: from sage.repl.ipython_kernel.install import have_prerequisites -- sage: have_prerequisites(debug=False) in [True, False] -- True -- """ -- try: -- from notebook.notebookapp import NotebookApp -- return True -- except ImportError: -- if debug: -- import traceback -- traceback.print_exc() -- return False Copied: sagemath/repos/community-x86_64/sagemath-python3-notebook.patch (from rev 512887, sagemath/trunk/sagemath-python3-notebook.patch) =================================================================== --- sagemath-python3-notebook.patch (rev 0) +++ sagemath-python3-notebook.patch 2019-10-05 08:08:49 UTC (rev 512888) @@ -0,0 +1,79 @@ +diff --git a/src/bin/sage-notebook b/src/bin/sage-notebook +index 83109e6..b954c22 100755 +--- a/src/bin/sage-notebook ++++ b/src/bin/sage-notebook +@@ -91,12 +91,8 @@ class NotebookJupyter(object): + + def __init__(self, argv): + self.print_banner() +- from sage.repl.ipython_kernel.install import have_prerequisites +- if not have_prerequisites(): +- print(self.PREREQUISITE_ERROR) +- raise SystemExit(1) +- from notebook.notebookapp import main +- main(argv) ++ from sys import prefix ++ os.execv(os.path.join(prefix, 'bin', 'jupyter-notebook'), ['jupyter-notebook'] + argv) + + + class NotebookJupyterlab(object): +@@ -109,15 +105,15 @@ class NotebookJupyterlab(object): + cls(['help']) + + def __init__(self, argv): ++ self.print_banner() ++ from sys import prefix + try: +- from jupyterlab.labapp import main +- except ImportError: ++ os.execv(os.path.join(prefix, 'bin', 'jupyter-lab'), ['jupyter-lab'] + argv) ++ except OSError: + print("Jupyterlab is not installed (at least not in this Sage installation).") + print("You can install it by running") + print(" sage --pip install jupyterlab") + raise SystemExit(1) +- self.print_banner() +- main(argv) + + + class SageNBExport(NotebookJupyter): +diff --git a/src/sage/repl/ipython_kernel/install.py b/src/sage/repl/ipython_kernel/install.py +index 073fae5..81378f4 100644 +--- a/src/sage/repl/ipython_kernel/install.py ++++ b/src/sage/repl/ipython_kernel/install.py +@@ -279,35 +279,3 @@ class SageKernelSpec(object): + instance.use_local_threejs() + instance._install_spec() + instance._symlink_resources() +- +- +-def have_prerequisites(debug=True): +- """ +- Check that we have all prerequisites to run the Jupyter notebook. +- +- In particular, the Jupyter notebook requires OpenSSL whether or +- not you are using https. See :trac:`17318`. +- +- INPUT: +- +- ``debug`` -- boolean (default: ``True``). Whether to print debug +- information in case that prerequisites are missing. +- +- OUTPUT: +- +- Boolean. +- +- EXAMPLES:: +- +- sage: from sage.repl.ipython_kernel.install import have_prerequisites +- sage: have_prerequisites(debug=False) in [True, False] +- True +- """ +- try: +- from notebook.notebookapp import NotebookApp +- return True +- except ImportError: +- if debug: +- import traceback +- traceback.print_exc() +- return False Deleted: sagemath-singular-4.1.2.patch =================================================================== --- sagemath-singular-4.1.2.patch 2019-10-05 08:07:41 UTC (rev 512887) +++ sagemath-singular-4.1.2.patch 2019-10-05 08:08:49 UTC (rev 512888) @@ -1,102 +0,0 @@ -diff --git a/src/sage/libs/singular/function.pyx b/src/sage/libs/singular/function.pyx -index 87342e8..9a0d37d 100644 ---- a/src/sage/libs/singular/function.pyx -+++ b/src/sage/libs/singular/function.pyx -@@ -1258,7 +1258,7 @@ cdef class SingularFunction(SageObject): - Traceback (most recent call last): - ... - RuntimeError: error in Singular function call 'size': -- Wrong number of arguments (got 2 arguments, arity code is 300) -+ Wrong number of arguments (got 2 arguments, arity code is 302) - sage: size('foobar', ring=P) - 6 - -@@ -1667,17 +1667,17 @@ def singular_function(name): - Traceback (most recent call last): - ... - RuntimeError: error in Singular function call 'factorize': -- Wrong number of arguments (got 0 arguments, arity code is 303) -+ Wrong number of arguments (got 0 arguments, arity code is 305) - sage: factorize(f, 1, 2) - Traceback (most recent call last): - ... - RuntimeError: error in Singular function call 'factorize': -- Wrong number of arguments (got 3 arguments, arity code is 303) -+ Wrong number of arguments (got 3 arguments, arity code is 305) - sage: factorize(f, 1, 2, 3) - Traceback (most recent call last): - ... - RuntimeError: error in Singular function call 'factorize': -- Wrong number of arguments (got 4 arguments, arity code is 303) -+ Wrong number of arguments (got 4 arguments, arity code is 305) - - The Singular function ``list`` can be called with any number of - arguments:: -diff --git a/src/sage/algebras/letterplace/free_algebra_element_letterplace.pyx b/src/sage/algebras/letterplace/free_algebra_element_letterplace.pyx -index 8f6576b477..deaf0f5769 100644 ---- a/src/sage/algebras/letterplace/free_algebra_element_letterplace.pyx -+++ b/src/sage/algebras/letterplace/free_algebra_element_letterplace.pyx -@@ -447,7 +447,7 @@ cdef class FreeAlgebraElement_letterplace(AlgebraElement): - return True - for i from 0 <= i < p_d-s_d: - s_poly = singular_system("stest",s_poly,1, -- A._degbound,A.__ngens,ring=P) -+ ring=P) - if P.monomial_divides(s_poly,p_poly): - return True - return False -@@ -601,7 +601,7 @@ cdef class FreeAlgebraElement_letterplace(AlgebraElement): - # we must put the polynomials into the same ring - left._poly = A._current_ring(left._poly) - right._poly = A._current_ring(right._poly) -- rshift = singular_system("stest",right._poly,left._poly.degree(),A._degbound,A.__ngens, ring=A._current_ring) -+ rshift = singular_system("stest",right._poly,left._poly.degree(), ring=A._current_ring) - return FreeAlgebraElement_letterplace(A,left._poly*rshift, check=False) - - def __pow__(FreeAlgebraElement_letterplace self, int n, k): -@@ -629,7 +629,7 @@ cdef class FreeAlgebraElement_letterplace(AlgebraElement): - q = p = self._poly - cdef int i - for i from 0<i<n: -- q = singular_system("stest",q,d,A._degbound,A.__ngens, -+ q = singular_system("stest",q,d, - ring=A._current_ring) - p *= q - return FreeAlgebraElement_letterplace(A, p, check=False) -diff --git a/src/sage/algebras/letterplace/free_algebra_letterplace.pyx b/src/sage/algebras/letterplace/free_algebra_letterplace.pyx -index 7a8400052e..b3474fa07c 100644 ---- a/src/sage/algebras/letterplace/free_algebra_letterplace.pyx -+++ b/src/sage/algebras/letterplace/free_algebra_letterplace.pyx -@@ -683,7 +683,7 @@ cdef class FreeAlgebra_letterplace(Algebra): - degbound = self._degbound - cdef list G = [C(x._poly) for x in g] - for y in G: -- out.extend([y]+[singular_system("stest",y,n+1,degbound,ngens,ring=C) for n in xrange(d-y.degree())]) -+ out.extend([y]+[singular_system("stest",y,n+1,ring=C) for n in xrange(d-y.degree())]) - return C.ideal(out) - - ########################### -diff --git a/src/sage/algebras/letterplace/letterplace_ideal.pyx b/src/sage/algebras/letterplace/letterplace_ideal.pyx -index 5776c58cf7..e4ad267bd4 100644 ---- a/src/sage/algebras/letterplace/letterplace_ideal.pyx -+++ b/src/sage/algebras/letterplace/letterplace_ideal.pyx -@@ -48,7 +48,7 @@ from sage.rings.infinity import Infinity - ##################### - # Define some singular functions - lib("freegb.lib") --singular_system=singular_function("system") -+singular_std=singular_function("std") - poly_reduce=singular_function("NF") - - class LetterplaceIdeal(Ideal_nc): -@@ -276,8 +276,7 @@ class LetterplaceIdeal(Ideal_nc): - A.set_degbound(degbound) - P = A._current_ring - out = [FreeAlgebraElement_letterplace(A,X,check=False) for X in -- singular_system("freegb",P.ideal([x._poly for x in self.__GB.gens()]), -- degbound,A.__ngens, ring = P)] -+ singular_std(P.ideal([x._poly for x in self.__GB.gens()]), ring = P)] - libsingular_options['redTail'] = bck[0] - libsingular_options['redSB'] = bck[1] - self.__GB = A.ideal(out,side='twosided',coerce=False) - Copied: sagemath/repos/community-x86_64/sagemath-singular-4.1.2.patch (from rev 512887, sagemath/trunk/sagemath-singular-4.1.2.patch) =================================================================== --- sagemath-singular-4.1.2.patch (rev 0) +++ sagemath-singular-4.1.2.patch 2019-10-05 08:08:49 UTC (rev 512888) @@ -0,0 +1,102 @@ +diff --git a/src/sage/libs/singular/function.pyx b/src/sage/libs/singular/function.pyx +index 87342e8..9a0d37d 100644 +--- a/src/sage/libs/singular/function.pyx ++++ b/src/sage/libs/singular/function.pyx +@@ -1258,7 +1258,7 @@ cdef class SingularFunction(SageObject): + Traceback (most recent call last): + ... + RuntimeError: error in Singular function call 'size': +- Wrong number of arguments (got 2 arguments, arity code is 300) ++ Wrong number of arguments (got 2 arguments, arity code is 302) + sage: size('foobar', ring=P) + 6 + +@@ -1667,17 +1667,17 @@ def singular_function(name): + Traceback (most recent call last): + ... + RuntimeError: error in Singular function call 'factorize': +- Wrong number of arguments (got 0 arguments, arity code is 303) ++ Wrong number of arguments (got 0 arguments, arity code is 305) + sage: factorize(f, 1, 2) + Traceback (most recent call last): + ... + RuntimeError: error in Singular function call 'factorize': +- Wrong number of arguments (got 3 arguments, arity code is 303) ++ Wrong number of arguments (got 3 arguments, arity code is 305) + sage: factorize(f, 1, 2, 3) + Traceback (most recent call last): + ... + RuntimeError: error in Singular function call 'factorize': +- Wrong number of arguments (got 4 arguments, arity code is 303) ++ Wrong number of arguments (got 4 arguments, arity code is 305) + + The Singular function ``list`` can be called with any number of + arguments:: +diff --git a/src/sage/algebras/letterplace/free_algebra_element_letterplace.pyx b/src/sage/algebras/letterplace/free_algebra_element_letterplace.pyx +index 8f6576b477..deaf0f5769 100644 +--- a/src/sage/algebras/letterplace/free_algebra_element_letterplace.pyx ++++ b/src/sage/algebras/letterplace/free_algebra_element_letterplace.pyx +@@ -447,7 +447,7 @@ cdef class FreeAlgebraElement_letterplace(AlgebraElement): + return True + for i from 0 <= i < p_d-s_d: + s_poly = singular_system("stest",s_poly,1, +- A._degbound,A.__ngens,ring=P) ++ ring=P) + if P.monomial_divides(s_poly,p_poly): + return True + return False +@@ -601,7 +601,7 @@ cdef class FreeAlgebraElement_letterplace(AlgebraElement): + # we must put the polynomials into the same ring + left._poly = A._current_ring(left._poly) + right._poly = A._current_ring(right._poly) +- rshift = singular_system("stest",right._poly,left._poly.degree(),A._degbound,A.__ngens, ring=A._current_ring) ++ rshift = singular_system("stest",right._poly,left._poly.degree(), ring=A._current_ring) + return FreeAlgebraElement_letterplace(A,left._poly*rshift, check=False) + + def __pow__(FreeAlgebraElement_letterplace self, int n, k): +@@ -629,7 +629,7 @@ cdef class FreeAlgebraElement_letterplace(AlgebraElement): + q = p = self._poly + cdef int i + for i from 0<i<n: +- q = singular_system("stest",q,d,A._degbound,A.__ngens, ++ q = singular_system("stest",q,d, + ring=A._current_ring) + p *= q + return FreeAlgebraElement_letterplace(A, p, check=False) +diff --git a/src/sage/algebras/letterplace/free_algebra_letterplace.pyx b/src/sage/algebras/letterplace/free_algebra_letterplace.pyx +index 7a8400052e..b3474fa07c 100644 +--- a/src/sage/algebras/letterplace/free_algebra_letterplace.pyx ++++ b/src/sage/algebras/letterplace/free_algebra_letterplace.pyx +@@ -683,7 +683,7 @@ cdef class FreeAlgebra_letterplace(Algebra): + degbound = self._degbound + cdef list G = [C(x._poly) for x in g] + for y in G: +- out.extend([y]+[singular_system("stest",y,n+1,degbound,ngens,ring=C) for n in xrange(d-y.degree())]) ++ out.extend([y]+[singular_system("stest",y,n+1,ring=C) for n in xrange(d-y.degree())]) + return C.ideal(out) + + ########################### +diff --git a/src/sage/algebras/letterplace/letterplace_ideal.pyx b/src/sage/algebras/letterplace/letterplace_ideal.pyx +index 5776c58cf7..e4ad267bd4 100644 +--- a/src/sage/algebras/letterplace/letterplace_ideal.pyx ++++ b/src/sage/algebras/letterplace/letterplace_ideal.pyx +@@ -48,7 +48,7 @@ from sage.rings.infinity import Infinity + ##################### + # Define some singular functions + lib("freegb.lib") +-singular_system=singular_function("system") ++singular_std=singular_function("std") + poly_reduce=singular_function("NF") + + class LetterplaceIdeal(Ideal_nc): +@@ -276,8 +276,7 @@ class LetterplaceIdeal(Ideal_nc): + A.set_degbound(degbound) + P = A._current_ring + out = [FreeAlgebraElement_letterplace(A,X,check=False) for X in +- singular_system("freegb",P.ideal([x._poly for x in self.__GB.gens()]), +- degbound,A.__ngens, ring = P)] ++ singular_std(P.ideal([x._poly for x in self.__GB.gens()]), ring = P)] + libsingular_options['redTail'] = bck[0] + libsingular_options['redSB'] = bck[1] + self.__GB = A.ideal(out,side='twosided',coerce=False) + Deleted: test-optional.patch =================================================================== --- test-optional.patch 2019-10-05 08:07:41 UTC (rev 512887) +++ test-optional.patch 2019-10-05 08:08:49 UTC (rev 512888) @@ -1,20 +0,0 @@ ---- src/sage/doctest/control.py.orig 2016-10-20 19:39:53.714618246 +0200 -+++ src/sage/doctest/control.py 2016-10-20 19:40:15.158049920 +0200 -@@ -347,17 +347,6 @@ - # Special case to run all optional tests - options.optional = True - else: -- # We replace the 'optional' tag by all optional -- # packages for which the installed version matches the -- # latest available version (this implies in particular -- # that the package is actually installed). -- if 'optional' in options.optional: -- options.optional.discard('optional') -- from sage.misc.package import list_packages -- for pkg in list_packages('optional', local=True).values(): -- if pkg['installed_version'] == pkg['remote_version']: -- options.optional.add(pkg['name']) -- - # Check that all tags are valid - for o in options.optional: - if not optionaltag_regex.search(o): Copied: sagemath/repos/community-x86_64/test-optional.patch (from rev 512887, sagemath/trunk/test-optional.patch) =================================================================== --- test-optional.patch (rev 0) +++ test-optional.patch 2019-10-05 08:08:49 UTC (rev 512888) @@ -0,0 +1,20 @@ +--- src/sage/doctest/control.py.orig 2016-10-20 19:39:53.714618246 +0200 ++++ src/sage/doctest/control.py 2016-10-20 19:40:15.158049920 +0200 +@@ -347,17 +347,6 @@ + # Special case to run all optional tests + options.optional = True + else: +- # We replace the 'optional' tag by all optional +- # packages for which the installed version matches the +- # latest available version (this implies in particular +- # that the package is actually installed). +- if 'optional' in options.optional: +- options.optional.discard('optional') +- from sage.misc.package import list_packages +- for pkg in list_packages('optional', local=True).values(): +- if pkg['installed_version'] == pkg['remote_version']: +- options.optional.add(pkg['name']) +- + # Check that all tags are valid + for o in options.optional: + if not optionaltag_regex.search(o):