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 + ` `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, internal_state, verbose) ++ exhaustive_search_wrapper(n, len(eqs), degree, coeffs, report_solution, 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 - 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 - 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