The package rpms/sagemath.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/sagemath.git/commit/?id=b6408b931....
Change:
+%ifarch %{ix86} x86_64
Thanks.
Full change:
============
commit b6408b93135f7f82750bcaaa6008798bf814e2ac
Author: Jerry James <loganjerry(a)gmail.com>
Date: Mon Feb 18 19:21:17 2019 -0700
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.
diff --git a/sagemath-escape.patch b/sagemath-escape.patch
index 45a1292..0aa5527 100644
--- a/sagemath-escape.patch
+++ b/sagemath-escape.patch
@@ -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 2018-12-22 16:37:07.000000000 -0700
-+++ src/sage/combinat/crystals/alcove_path.py 2019-01-04 11:16:55.320833974 -0700
+--- src/sage/combinat/crystals/alcove_path.py.orig 2019-01-14 17:16:01.000000000 -0700
++++ src/sage/combinat/crystals/alcove_path.py 2019-02-07 15:43:21.188614487 -0700
@@ -383,7 +383,7 @@ class CrystalOfAlcovePaths(UniqueReprese
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.
.. WARNING::
-diff -up src/sage/homology/homology_group.py.orig src/sage/homology/homology_group.py
---- src/sage/homology/homology_group.py.orig 2018-12-22 16:37:08.000000000 -0700
-+++ src/sage/homology/homology_group.py 2019-01-04 11:17:37.136047323 -0700
+--- src/sage/combinat/crystals/kirillov_reshetikhin.py.orig 2019-01-14 17:16:01.000000000
-0700
++++ src/sage/combinat/crystals/kirillov_reshetikhin.py 2019-02-07 15:44:37.612978369
-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
sage: from sage.homology.homology_group import HomologyGroup
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))
\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 2018-12-22 16:37:10.000000000 -0700
-+++ src/sage/rings/number_field/number_field.py 2019-01-08 16:25:39.730547708 -0700
-@@ -6613,7 +6613,7 @@ class NumberField_generic(WithEqualityBy
+--- 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 2019-02-07 15:43:21.220614222 -0700
+@@ -6622,7 +6622,7 @@ class NumberField_generic(WithEqualityBy
return U
def S_unit_solutions(self, S=[], prec=106, include_exponents=False,
include_bound=False, proof=None):
diff --git a/sagemath-fes-build.patch b/sagemath-fes-build.patch
index c2f8f28..6532b6c 100644
--- a/sagemath-fes-build.patch
+++ b/sagemath-fes-build.patch
@@ -1,14 +1,30 @@
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 2019-01-17 09:46:02.925523575 -0700
-@@ -86,8 +86,8 @@ from sage.rings.polynomial.pbori import
- from sage.arith.all import binomial
- from sage.combinat.subset import Subsets
+--- src/sage/libs/fes.pyx.orig 2019-01-14 17:16:03.000000000 -0700
++++ src/sage/libs/fes.pyx 2019-02-07 08:30:50.024227599 -0700
+@@ -11,7 +11,7 @@ variables. Performing a full exhaustive
+ take a **long** time. The number of variables can be artificially
+ reduced to 64 by specializing some of them.
--from sage.matrix.all import *
--from sage.modules.all import *
-+from sage.matrix.all import identity_matrix, matrix
-+from sage.modules.all import vector
+-Note that the FES library **requires** at least of the equations to be
++Note that the FES library **requires** at least one of the equations to be
+ non-linear.
+ 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
diff --git a/sagemath-libgap.patch b/sagemath-libgap.patch
index d744dda..3c64ab8 100644
--- a/sagemath-libgap.patch
+++ b/sagemath-libgap.patch
@@ -1,53 +1,51 @@
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 2019-01-04 11:08:22.825475344 -0700
+--- src/sage/env.py.orig 2019-01-14 17:16:02.000000000 -0700
++++ src/sage/env.py 2019-02-07 16:11:38.887417503 -0700
@@ -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('ELLCURVE_DATA_DIR',opj('$SAGE_SHARE','ellcurves'))
_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('THEBE_DIR',
opj('$SAGE_SHARE','thebe'))
_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'))
-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
---- src/sage/libs/gap/util.pyx.orig 2018-12-22 16:37:08.000000000 -0700
-+++ src/sage/libs/gap/util.pyx 2019-01-04 11:08:22.843475005 -0700
-@@ -27,6 +27,8 @@ from sage.cpython.string cimport str_to_
- from sage.interfaces.gap_workspace import prepare_workspace_dir
- from sage.env import SAGE_LOCAL, GAP_ROOT_DIR
+--- src/sage/libs/gap/util.pyx.orig 2019-01-14 17:16:03.000000000 -0700
++++ src/sage/libs/gap/util.pyx 2019-02-07 16:13:52.658939819 -0700
+@@ -18,6 +18,7 @@ import os
+ import signal
+ import warnings
-+import re
-+
++from posix.dlfcn cimport dlopen, dlclose, RTLD_NOW, RTLD_GLOBAL
+ from libc.string cimport strcpy, strlen
- ############################################################################
- ### Hooking into the GAP memory management #################################
-@@ -185,7 +187,7 @@ def gap_root():
+ from cpython.exc cimport PyErr_SetObject, PyErr_Occurred, PyErr_Fetch
+@@ -181,7 +182,7 @@ def gap_root():
sage: from sage.libs.gap.util import gap_root
sage: gap_root() # random output
- '/home/vbraun/opt/sage-5.3.rc0/local/gap/latest'
+ '/usr/lib/gap'
"""
- try:
- if os.path.exists(GAP_ROOT_DIR):
-@@ -251,6 +253,7 @@ cdef initialize():
- libgap_initialize(argc, argv)
- gap_error_msg = char_to_str(libgap_get_output())
- 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)
+ if os.path.exists(sage.env.GAP_ROOT_DIR):
+ return sage.env.GAP_ROOT_DIR
+@@ -259,6 +260,18 @@ cdef initialize():
+ global _gap_is_initialized, environ
+ if _gap_is_initialized: return
++ # 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!
diff --git a/sagemath.spec b/sagemath.spec
index 046bcdf..e691c45 100644
--- a/sagemath.spec
+++ b/sagemath.spec
@@ -21,13 +21,13 @@
# not functional due to missing jar dependencies
%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
# use workaround to match upstream sagemath patched cython
%bcond_with cython_hack
-%ifarch x86_64
+%ifarch %{ix86} x86_64
%bcond_without fes
%else
%bcond_with fes
@@ -73,7 +73,7 @@
# 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
# 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_LOCAL %{SAGE_ROOT}/local
@@ -86,8 +86,8 @@
Name: sagemath
Summary: A free open-source mathematics software system
-Version: 8.5
-Release: 4%{?dist}
+Version: 8.6
+Release: 1%{?dist}
# The file ${SAGE_ROOT}/COPYING.txt is the upstream license breakdown file
# Additionally, every $files section has a comment with the license name
# before files with that license
@@ -356,7 +356,6 @@ Requires: cddlib-tools
Requires: ecl
Requires: gap
Requires: GAPDoc
-Requires: gap-libs
Requires: gap-pkg-atlasrep
Requires: gap-pkg-crime
Requires: gap-pkg-design
@@ -366,6 +365,7 @@ Requires: gap-pkg-sonata
Requires: gap-pkg-toric
Requires: gfan
Requires: gmp-ecm
+Requires: hicolor-icon-theme
Requires: jmol
Requires: jsmol
Requires: jsmath-fonts
@@ -467,7 +467,6 @@ packages into a common Python-based interface.
%package core
Summary: Open Source Mathematics Software
Requires: %{name}%{?_isa} = %{version}-%{release}
-Obsoletes: %{name}-devel < 6.8-1
%if %{with bundled_ipython}
Provides: bundled(ipython) = %(cut -d- -f2- <<< %{ipython_pkg})
Provides: bundled(prompt_toolkit) = %(cut -d- -f2- <<< %{prompt_tookit_pkg})
@@ -535,7 +534,6 @@ Includes two databases:
%package data-etc
Summary: Extcode for Sagemath
Requires: %{name}-data = %{version}-%{release}
-Obsoletes: %{name}-data-extcode < %{version}
BuildArch: noarch
%description data-etc
@@ -674,7 +672,7 @@ Summary: Several programs for working with Rubik's cubes
Requires: %{name}%{?_isa} = %{version}-%{release}
%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:
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(fancyvrb.sty)
Requires: tex(graphicx.sty)
+Requires: tex(hyperref.sty)
Requires: tex(ifpdf.sty)
Requires: tex(ifthen.sty)
Requires: tex(ifxetex.sty)
Requires: tex(listings.sty)
Requires: tex(makecmds.sty)
+Requires: tex(tikz.sty)
Requires: tex(verbatim.sty)
+Requires: tex(xspace.sty)
%description sagetex
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
-%set_build_flags
export CC=%{__cc}
+export CFLAGS="%{optflags}"
+export CXXFLAGS="%{optflags}"
export SAGE_PYTHON_VERSION=3
export SAGE_ROOT=%{buildroot}%{SAGE_ROOT}
export SAGE_LOCAL=%{buildroot}%{SAGE_LOCAL}
@@ -1435,9 +1437,8 @@ ln -sf %{SAGE_SHARE} $SAGE_ROOT/share
ln -sf src $SAGE_ROOT/devel
# Install menu and icons
-pushd build/pkgs/sagenb/src/sagenb/data
- install -p -m644 -D sage/images/icon128x128.png
%{buildroot}%{_datadir}/pixmaps/%{name}.png
-popd
+install -p -m644 -D src/ext/notebook-ipython/logo.svg \
+ %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/sagemath.svg
mkdir -p %{buildroot}%{_datadir}/applications
cat > %{buildroot}%{_datadir}/applications/%{name}.desktop << EOF
[Desktop Entry]
@@ -1587,7 +1588,7 @@ rm -fr $DOT_SAGE
%dir %{SAGE_PYTHONPATH}
# GPLv2+
%{_bindir}/sage
-%{_datadir}/pixmaps/%{name}.png
+%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg
%{_datadir}/applications/%{name}.desktop
%if %{with bundled_thebe}
# MIT
@@ -1825,6 +1826,12 @@ rm -fr $DOT_SAGE
########################################################################
%changelog
+* Mon Feb 18 2019 Jerry James <loganjerry(a)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(a)fedoraproject.org> - 8.5-4
- Rebuild for readline 8.0
diff --git a/sources b/sources
index ebeb72a..48c5f01 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (sage-8.5.tar.gz) =
ebe373c7be50dc1df96de8a26ce41455869d79159eb584570525bc8a886d95c2605985bdecfa3e5d0ca50248d6bef605e3b8006266eafb39c4fb351bdc3510f4
+SHA512 (sage-8.6.tar.gz) =
cbadb485e645ac44e9f55defc011e934e9d89d82058312c69ae6e87bb5a30228d484d3e54d99a088bf5b8d9b2b464e8b59fdd63d9cc575a519cab5734950c1f1