Update to sagemath 8.6.

Also:
- Install an SVG icon instead of a fixed size (128x128) icon.
- Require hicolor-icon-theme since we install an icon.
- Drop obsolete Obsolete.
This commit is contained in:
Jerry James 2019-02-18 19:21:17 -07:00
parent 62dc22fafb
commit b6408b9313
5 changed files with 117 additions and 68 deletions

View file

@ -1,6 +1,5 @@
diff -up src/sage/combinat/crystals/alcove_path.py.orig src/sage/combinat/crystals/alcove_path.py --- src/sage/combinat/crystals/alcove_path.py.orig 2019-01-14 17:16:01.000000000 -0700
--- src/sage/combinat/crystals/alcove_path.py.orig 2018-12-22 16:37:07.000000000 -0700 +++ src/sage/combinat/crystals/alcove_path.py 2019-02-07 15:43:21.188614487 -0700
+++ src/sage/combinat/crystals/alcove_path.py 2019-01-04 11:16:55.320833974 -0700
@@ -383,7 +383,7 @@ class CrystalOfAlcovePaths(UniqueReprese @@ -383,7 +383,7 @@ class CrystalOfAlcovePaths(UniqueReprese
One can compute all vertices of the crystal by finding all the One can compute all vertices of the crystal by finding all the
@ -10,9 +9,39 @@ diff -up src/sage/combinat/crystals/alcove_path.py.orig src/sage/combinat/crysta
search algorithm. search algorithm.
.. WARNING:: .. WARNING::
diff -up src/sage/homology/homology_group.py.orig src/sage/homology/homology_group.py --- src/sage/combinat/crystals/kirillov_reshetikhin.py.orig 2019-01-14 17:16:01.000000000 -0700
--- src/sage/homology/homology_group.py.orig 2018-12-22 16:37:08.000000000 -0700 +++ src/sage/combinat/crystals/kirillov_reshetikhin.py 2019-02-07 15:44:37.612978369 -0700
+++ src/sage/homology/homology_group.py 2019-01-04 11:17:37.136047323 -0700 @@ -3443,7 +3443,7 @@ class CrystalOfTableaux_E7(CrystalOfTabl
<sage.combinat.crystals.kirillov_reshetikhin.KR_type_E7>` `B^{7,s}`.
"""
def module_generator(self, shape):
- """
+ r"""
Return the module generator of ``self`` with shape ``shape``.
.. NOTE::
@@ -3496,7 +3496,7 @@ class KR_type_E7(KirillovReshetikhinGene
@cached_method
def A7_decomposition(self):
- """
+ r"""
Return the decomposition of ``self`` into `A_7` highest
weight crystals.
--- src/sage/groups/perm_gps/permgroup_named.py.orig 2019-01-14 17:16:02.000000000 -0700
+++ src/sage/groups/perm_gps/permgroup_named.py 2019-02-07 15:51:38.530055246 -0700
@@ -3027,7 +3027,7 @@ class SuzukiGroup(PermutationGroup_uniqu
return "The Suzuki group over %s" % self.base_ring()
class ComplexReflectionGroup(PermutationGroup_unique):
- """
+ r"""
A finite complex reflection group as a permutation group.
We can realize `G(m,1,n)` as `m` copies of the symmetric group
--- src/sage/homology/homology_group.py.orig 2019-01-14 17:16:03.000000000 -0700
+++ src/sage/homology/homology_group.py 2019-02-07 15:43:21.197614413 -0700
@@ -109,7 +109,7 @@ class HomologyGroup_class(AdditiveAbelia @@ -109,7 +109,7 @@ class HomologyGroup_class(AdditiveAbelia
sage: from sage.homology.homology_group import HomologyGroup sage: from sage.homology.homology_group import HomologyGroup
sage: H = HomologyGroup(7, ZZ, [4,4,4,4,4,7,7]) sage: H = HomologyGroup(7, ZZ, [4,4,4,4,4,7,7])
@ -22,10 +51,9 @@ diff -up src/sage/homology/homology_group.py.orig src/sage/homology/homology_gro
sage: latex(HomologyGroup(6, ZZ)) sage: latex(HomologyGroup(6, ZZ))
\ZZ^{6} \ZZ^{6}
""" """
diff -up src/sage/rings/number_field/number_field.py.orig src/sage/rings/number_field/number_field.py --- src/sage/rings/number_field/number_field.py.orig 2019-01-14 17:16:04.000000000 -0700
--- src/sage/rings/number_field/number_field.py.orig 2018-12-22 16:37:10.000000000 -0700 +++ src/sage/rings/number_field/number_field.py 2019-02-07 15:43:21.220614222 -0700
+++ src/sage/rings/number_field/number_field.py 2019-01-08 16:25:39.730547708 -0700 @@ -6622,7 +6622,7 @@ class NumberField_generic(WithEqualityBy
@@ -6613,7 +6613,7 @@ class NumberField_generic(WithEqualityBy
return U return U
def S_unit_solutions(self, S=[], prec=106, include_exponents=False, include_bound=False, proof=None): def S_unit_solutions(self, S=[], prec=106, include_exponents=False, include_bound=False, proof=None):

View file

@ -1,14 +1,30 @@
diff -up src/sage/libs/fes.pyx.orig src/sage/libs/fes.pyx diff -up src/sage/libs/fes.pyx.orig src/sage/libs/fes.pyx
--- src/sage/libs/fes.pyx.orig 2018-12-22 16:37:08.000000000 -0700 --- src/sage/libs/fes.pyx.orig 2019-01-14 17:16:03.000000000 -0700
+++ src/sage/libs/fes.pyx 2019-01-17 09:46:02.925523575 -0700 +++ src/sage/libs/fes.pyx 2019-02-07 08:30:50.024227599 -0700
@@ -86,8 +86,8 @@ from sage.rings.polynomial.pbori import @@ -11,7 +11,7 @@ variables. Performing a full exhaustive
from sage.arith.all import binomial take a **long** time. The number of variables can be artificially
from sage.combinat.subset import Subsets reduced to 64 by specializing some of them.
-from sage.matrix.all import * -Note that the FES library **requires** at least of the equations to be
-from sage.modules.all import * +Note that the FES library **requires** at least one of the equations to be
+from sage.matrix.all import identity_matrix, matrix non-linear.
+from sage.modules.all import vector
AUTHORS:
@@ -71,7 +71,7 @@ from cysignals.signals cimport sig_on, s
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=Inf
# ------- 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

View file

@ -1,53 +1,51 @@
diff -up src/sage/env.py.orig src/sage/env.py diff -up src/sage/env.py.orig src/sage/env.py
--- src/sage/env.py.orig 2018-12-22 16:37:08.000000000 -0700 --- src/sage/env.py.orig 2019-01-14 17:16:02.000000000 -0700
+++ src/sage/env.py 2019-01-04 11:08:22.825475344 -0700 +++ src/sage/env.py 2019-02-07 16:11:38.887417503 -0700
@@ -164,7 +164,7 @@ _add_variable_or_fallback('CONWAY_POLYNO @@ -164,7 +164,7 @@ _add_variable_or_fallback('CONWAY_POLYNO
_add_variable_or_fallback('GRAPHS_DATA_DIR', opj('$SAGE_SHARE','graphs')) _add_variable_or_fallback('GRAPHS_DATA_DIR', opj('$SAGE_SHARE','graphs'))
_add_variable_or_fallback('ELLCURVE_DATA_DIR',opj('$SAGE_SHARE','ellcurves')) _add_variable_or_fallback('ELLCURVE_DATA_DIR',opj('$SAGE_SHARE','ellcurves'))
_add_variable_or_fallback('POLYTOPE_DATA_DIR',opj('$SAGE_SHARE','reflexive_polytopes')) _add_variable_or_fallback('POLYTOPE_DATA_DIR',opj('$SAGE_SHARE','reflexive_polytopes'))
-_add_variable_or_fallback('GAP_ROOT_DIR', opj('$SAGE_LOCAL','gap','latest')) -_add_variable_or_fallback('GAP_ROOT_DIR', opj('$SAGE_SHARE','gap'))
+_add_variable_or_fallback('GAP_ROOT_DIR', opj('/usr','lib','gap')) +_add_variable_or_fallback('GAP_ROOT_DIR', opj('/usr','lib','gap'))
_add_variable_or_fallback('THEBE_DIR', opj('$SAGE_SHARE','thebe')) _add_variable_or_fallback('THEBE_DIR', opj('$SAGE_SHARE','thebe'))
_add_variable_or_fallback('COMBINATORIAL_DESIGN_DATA_DIR', opj('$SAGE_SHARE', 'combinatorial_designs')) _add_variable_or_fallback('COMBINATORIAL_DESIGN_DATA_DIR', opj('$SAGE_SHARE', 'combinatorial_designs'))
_add_variable_or_fallback('CREMONA_MINI_DATA_DIR', opj('$SAGE_SHARE', 'cremona')) _add_variable_or_fallback('CREMONA_MINI_DATA_DIR', opj('$SAGE_SHARE', 'cremona'))
diff -up src/sage/libs/gap/test/main.c.orig src/sage/libs/gap/test/main.c
--- src/sage/libs/gap/test/main.c.orig 2018-12-22 16:37:08.000000000 -0700
+++ src/sage/libs/gap/test/main.c 2019-01-04 11:08:22.842475024 -0700
@@ -22,7 +22,7 @@ void eval(char* cmd) {
libgap_start_interaction(cmd);
libgap_enter();
- libGAP_ReadEvalCommand(libGAP_BottomLVars);
+ libGAP_ReadEvalCommand(libGAP_BottomLVars, NULL);
libGAP_ViewObjHandler(libGAP_ReadEvalResult);
char* out = libgap_get_output();
libgap_exit();
diff -up src/sage/libs/gap/util.pyx.orig src/sage/libs/gap/util.pyx diff -up src/sage/libs/gap/util.pyx.orig src/sage/libs/gap/util.pyx
--- src/sage/libs/gap/util.pyx.orig 2018-12-22 16:37:08.000000000 -0700 --- src/sage/libs/gap/util.pyx.orig 2019-01-14 17:16:03.000000000 -0700
+++ src/sage/libs/gap/util.pyx 2019-01-04 11:08:22.843475005 -0700 +++ src/sage/libs/gap/util.pyx 2019-02-07 16:13:52.658939819 -0700
@@ -27,6 +27,8 @@ from sage.cpython.string cimport str_to_ @@ -18,6 +18,7 @@ import os
from sage.interfaces.gap_workspace import prepare_workspace_dir import signal
from sage.env import SAGE_LOCAL, GAP_ROOT_DIR import warnings
+import re +from posix.dlfcn cimport dlopen, dlclose, RTLD_NOW, RTLD_GLOBAL
+ from libc.string cimport strcpy, strlen
############################################################################ from cpython.exc cimport PyErr_SetObject, PyErr_Occurred, PyErr_Fetch
### Hooking into the GAP memory management ################################# @@ -181,7 +182,7 @@ def gap_root():
@@ -185,7 +187,7 @@ def gap_root():
sage: from sage.libs.gap.util import gap_root sage: from sage.libs.gap.util import gap_root
sage: gap_root() # random output sage: gap_root() # random output
- '/home/vbraun/opt/sage-5.3.rc0/local/gap/latest' - '/home/vbraun/opt/sage-5.3.rc0/local/gap/latest'
+ '/usr/lib/gap' + '/usr/lib/gap'
""" """
try: if os.path.exists(sage.env.GAP_ROOT_DIR):
if os.path.exists(GAP_ROOT_DIR): return sage.env.GAP_ROOT_DIR
@@ -251,6 +253,7 @@ cdef initialize(): @@ -259,6 +260,18 @@ cdef initialize():
libgap_initialize(argc, argv) global _gap_is_initialized, environ
gap_error_msg = char_to_str(libgap_get_output()) if _gap_is_initialized: return
libgap_finish_interaction()
+ gap_error_msg = re.sub(r'#I.*\n?', '', gap_error_msg, flags=re.MULTILINE)
if gap_error_msg:
raise RuntimeError('libGAP initialization failed\n' + gap_error_msg)
+ # Hack to ensure that all symbols provided by libgap are loaded into the
+ # global symbol table
+ # Note: we could use RTLD_NOLOAD and avoid the subsequent dlclose() but
+ # this isn't portable
+ cdef void* handle
+ handle = dlopen("libgap.so", RTLD_NOW | RTLD_GLOBAL)
+ if handle == NULL:
+ raise RuntimeError(
+ "Could not dlopen() libgap.so even though it should already "
+ "be loaded!")
+ dlclose(handle)
+
# Define argv and environ variables, which we will pass in to
# initialize GAP. Note that we must pass define the memory pool
# size!

View file

@ -21,13 +21,13 @@
# not functional due to missing jar dependencies # not functional due to missing jar dependencies
%bcond_with sage3d %bcond_with sage3d
# use an workaround to match upstream sagemath patched sphinx # use a workaround to match upstream sagemath patched sphinx
%bcond_without sphinx_hack %bcond_without sphinx_hack
# use workaround to match upstream sagemath patched cython # use workaround to match upstream sagemath patched cython
%bcond_with cython_hack %bcond_with cython_hack
%ifarch x86_64 %ifarch %{ix86} x86_64
%bcond_without fes %bcond_without fes
%else %else
%bcond_with fes %bcond_with fes
@ -73,7 +73,7 @@
# Spkg equivalents of required rpms; we pretend they are installed as spkgs. # Spkg equivalents of required rpms; we pretend they are installed as spkgs.
# The version numbers shown are those of the latest released spkg, if the Fedora # The version numbers shown are those of the latest released spkg, if the Fedora
# version is not behind. # version is not behind.
%global SAGE_REQUIRED_PKGS 4ti2-1.6.7 cbc-2.9.4 CoCoALib-0.99564 cryptominisat-5.0.1 gap_packages-4.8.6new2.p0 gmp-6.1.2 gmpy2-2.1.0a4.p0 lrslib-062+autotools-2017-03-03 qepcad-B.1.71 saclib-2.2.7 sirocco-2.0 surf-1.0.6-gcc6 %global SAGE_REQUIRED_PKGS 4ti2-1.6.7 cbc-2.9.4 CoCoALib-0.99564 cryptominisat-5.0.1 gap_packages-4.10.0 gmp-6.1.2 gmpy2-2.1.0a4.p0 lrslib-062+autotools-2017-03-03 qepcad-B.1.71 saclib-2.2.7 sirocco-2.0 surf-1.0.6-gcc6
%global SAGE_ROOT %{_libdir}/sagemath %global SAGE_ROOT %{_libdir}/sagemath
%global SAGE_LOCAL %{SAGE_ROOT}/local %global SAGE_LOCAL %{SAGE_ROOT}/local
@ -86,8 +86,8 @@
Name: sagemath Name: sagemath
Summary: A free open-source mathematics software system Summary: A free open-source mathematics software system
Version: 8.5 Version: 8.6
Release: 4%{?dist} Release: 1%{?dist}
# The file ${SAGE_ROOT}/COPYING.txt is the upstream license breakdown file # The file ${SAGE_ROOT}/COPYING.txt is the upstream license breakdown file
# Additionally, every $files section has a comment with the license name # Additionally, every $files section has a comment with the license name
# before files with that license # before files with that license
@ -356,7 +356,6 @@ Requires: cddlib-tools
Requires: ecl Requires: ecl
Requires: gap Requires: gap
Requires: GAPDoc Requires: GAPDoc
Requires: gap-libs
Requires: gap-pkg-atlasrep Requires: gap-pkg-atlasrep
Requires: gap-pkg-crime Requires: gap-pkg-crime
Requires: gap-pkg-design Requires: gap-pkg-design
@ -366,6 +365,7 @@ Requires: gap-pkg-sonata
Requires: gap-pkg-toric Requires: gap-pkg-toric
Requires: gfan Requires: gfan
Requires: gmp-ecm Requires: gmp-ecm
Requires: hicolor-icon-theme
Requires: jmol Requires: jmol
Requires: jsmol Requires: jsmol
Requires: jsmath-fonts Requires: jsmath-fonts
@ -467,7 +467,6 @@ packages into a common Python-based interface.
%package core %package core
Summary: Open Source Mathematics Software Summary: Open Source Mathematics Software
Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}%{?_isa} = %{version}-%{release}
Obsoletes: %{name}-devel < 6.8-1
%if %{with bundled_ipython} %if %{with bundled_ipython}
Provides: bundled(ipython) = %(cut -d- -f2- <<< %{ipython_pkg}) Provides: bundled(ipython) = %(cut -d- -f2- <<< %{ipython_pkg})
Provides: bundled(prompt_toolkit) = %(cut -d- -f2- <<< %{prompt_tookit_pkg}) Provides: bundled(prompt_toolkit) = %(cut -d- -f2- <<< %{prompt_tookit_pkg})
@ -535,7 +534,6 @@ Includes two databases:
%package data-etc %package data-etc
Summary: Extcode for Sagemath Summary: Extcode for Sagemath
Requires: %{name}-data = %{version}-%{release} Requires: %{name}-data = %{version}-%{release}
Obsoletes: %{name}-data-extcode < %{version}
BuildArch: noarch BuildArch: noarch
%description data-etc %description data-etc
@ -674,7 +672,7 @@ Summary: Several programs for working with Rubik's cubes
Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}%{?_isa} = %{version}-%{release}
%description rubiks %description rubiks
Several programs for working with Rubik's cubes, by three different people. Several programs for working with Rubik's cubes, by three different people.
In summary the three contributors are: In summary the three contributors are:
Michael Reid (GPL) http://www.math.ucf.edu/~reid/Rubik/optimal_solver.html Michael Reid (GPL) http://www.math.ucf.edu/~reid/Rubik/optimal_solver.html
@ -698,12 +696,15 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: tex(color.sty) Requires: tex(color.sty)
Requires: tex(fancyvrb.sty) Requires: tex(fancyvrb.sty)
Requires: tex(graphicx.sty) Requires: tex(graphicx.sty)
Requires: tex(hyperref.sty)
Requires: tex(ifpdf.sty) Requires: tex(ifpdf.sty)
Requires: tex(ifthen.sty) Requires: tex(ifthen.sty)
Requires: tex(ifxetex.sty) Requires: tex(ifxetex.sty)
Requires: tex(listings.sty) Requires: tex(listings.sty)
Requires: tex(makecmds.sty) Requires: tex(makecmds.sty)
Requires: tex(tikz.sty)
Requires: tex(verbatim.sty) Requires: tex(verbatim.sty)
Requires: tex(xspace.sty)
%description sagetex %description sagetex
This is the SageTeX package. It allows you to embed code, results of This is the SageTeX package. It allows you to embed code, results of
@ -935,8 +936,9 @@ sed -i 's/64m/128m/' src/sage/libs/gap/util.pyx
######################################################################## ########################################################################
%build %build
%set_build_flags
export CC=%{__cc} export CC=%{__cc}
export CFLAGS="%{optflags}"
export CXXFLAGS="%{optflags}"
export SAGE_PYTHON_VERSION=3 export SAGE_PYTHON_VERSION=3
export SAGE_ROOT=%{buildroot}%{SAGE_ROOT} export SAGE_ROOT=%{buildroot}%{SAGE_ROOT}
export SAGE_LOCAL=%{buildroot}%{SAGE_LOCAL} export SAGE_LOCAL=%{buildroot}%{SAGE_LOCAL}
@ -1435,9 +1437,8 @@ ln -sf %{SAGE_SHARE} $SAGE_ROOT/share
ln -sf src $SAGE_ROOT/devel ln -sf src $SAGE_ROOT/devel
# Install menu and icons # Install menu and icons
pushd build/pkgs/sagenb/src/sagenb/data install -p -m644 -D src/ext/notebook-ipython/logo.svg \
install -p -m644 -D sage/images/icon128x128.png %{buildroot}%{_datadir}/pixmaps/%{name}.png %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/sagemath.svg
popd
mkdir -p %{buildroot}%{_datadir}/applications mkdir -p %{buildroot}%{_datadir}/applications
cat > %{buildroot}%{_datadir}/applications/%{name}.desktop << EOF cat > %{buildroot}%{_datadir}/applications/%{name}.desktop << EOF
[Desktop Entry] [Desktop Entry]
@ -1587,7 +1588,7 @@ rm -fr $DOT_SAGE
%dir %{SAGE_PYTHONPATH} %dir %{SAGE_PYTHONPATH}
# GPLv2+ # GPLv2+
%{_bindir}/sage %{_bindir}/sage
%{_datadir}/pixmaps/%{name}.png %{_datadir}/icons/hicolor/scalable/apps/%{name}.svg
%{_datadir}/applications/%{name}.desktop %{_datadir}/applications/%{name}.desktop
%if %{with bundled_thebe} %if %{with bundled_thebe}
# MIT # MIT
@ -1825,6 +1826,12 @@ rm -fr $DOT_SAGE
######################################################################## ########################################################################
%changelog %changelog
* Mon Feb 18 2019 Jerry James <loganjerry@gmail.com> - 8.6-1
- Update to sagemath 8.6
- Install an SVG icon instead of a fixed size (128x128) icon
- Require hicolor-icon-theme since we install an icon
- Drop obsolete Obsoletes
* Sun Feb 17 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 8.5-4 * Sun Feb 17 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 8.5-4
- Rebuild for readline 8.0 - Rebuild for readline 8.0

View file

@ -1 +1 @@
SHA512 (sage-8.5.tar.gz) = ebe373c7be50dc1df96de8a26ce41455869d79159eb584570525bc8a886d95c2605985bdecfa3e5d0ca50248d6bef605e3b8006266eafb39c4fb351bdc3510f4 SHA512 (sage-8.6.tar.gz) = cbadb485e645ac44e9f55defc011e934e9d89d82058312c69ae6e87bb5a30228d484d3e54d99a088bf5b8d9b2b464e8b59fdd63d9cc575a519cab5734950c1f1