From fed038c8153fa0cb02552da85e44048a687bef7c Mon Sep 17 00:00:00 2001 From: Jerry James Date: Fri, 13 Jan 2023 10:16:25 -0700 Subject: [PATCH] Update for split GAP tree - Add patch for FTBFS with latest giac (see bz 2160197) - Fix eclib detection - Add BR on pcre-devel - Add BR on texlive-tex-gyre - Rebuild for libfplll 5.4.4 --- sagemath-giac.patch | 95 +++++++++++++++++++++++++++++++++++++++++++ sagemath-libgap.patch | 12 ------ sagemath-sphinx.patch | 11 +++++ sagemath.spec | 26 ++++++++++-- 4 files changed, 129 insertions(+), 15 deletions(-) create mode 100644 sagemath-giac.patch create mode 100644 sagemath-sphinx.patch diff --git a/sagemath-giac.patch b/sagemath-giac.patch new file mode 100644 index 0000000..5aa9a14 --- /dev/null +++ b/sagemath-giac.patch @@ -0,0 +1,95 @@ +--- build/pkgs/giac/spkg-configure.m4.orig 2022-05-15 16:11:10.000000000 -0600 ++++ build/pkgs/giac/spkg-configure.m4 2023-01-11 11:45:33.450425286 -0700 +@@ -2,7 +2,7 @@ SAGE_SPKG_CONFIGURE([giac], [ + SAGE_SPKG_DEPCHECK([pari], [ + dnl giac does not seem to reveal its patchlevel + m4_pushdef([GIAC_MIN_VERSION], [1.5.0]) +- m4_pushdef([GIAC_MAX_VERSION], [1.7.999]) ++ m4_pushdef([GIAC_MAX_VERSION], [1.9.999]) + AC_CACHE_CHECK([for giac >= ]GIAC_MIN_VERSION[, <= ]GIAC_MAX_VERSION, [ac_cv_path_GIAC], [ + AC_PATH_PROGS_FEATURE_CHECK([GIAC], [giac], [ + giac_version=$($ac_path_GIAC --version 2> /dev/null | tail -1) +@@ -21,7 +21,7 @@ SAGE_SPKG_CONFIGURE([giac], [ + AC_CHECK_HEADER([giac/giac.h], [ + AC_SEARCH_LIBS([ConvertUTF16toUTF8], [giac], [ + ], [sage_spkg_install_giac=yes]) +- ], [sage_spkg_install_giac=yes]) ++ ], [sage_spkg_install_giac=yes], [typedef unsigned char uchar;]) + m4_popdef([GIAC_MIN_VERSION]) + ]) + ]) +--- configure.orig 2022-05-15 16:12:35.000000000 -0600 ++++ configure 2023-01-11 12:07:02.062263416 -0700 +@@ -24488,8 +24488,8 @@ $as_echo "no" >&6; } + + + +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for giac >= 1.5.0, <= 1.7.999" >&5 +-$as_echo_n "checking for giac >= 1.5.0, <= 1.7.999... " >&6; } ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for giac >= 1.5.0, <= 1.9.999" >&5 ++$as_echo_n "checking for giac >= 1.5.0, <= 1.9.999... " >&6; } + if ${ac_cv_path_GIAC+:} false; then : + $as_echo_n "(cached) " >&6 + else +@@ -24562,7 +24562,7 @@ x$ax_compare_version_B" | sed 's/^ *//' + -e 's/[^0-9]//g'` + + +- ax_compare_version_B=`echo "1.7.999" | sed -e 's/\([0-9]*\)/Z\1Z/g' \ ++ ax_compare_version_B=`echo "1.9.999" | sed -e 's/\([0-9]*\)/Z\1Z/g' \ + -e 's/Z\([0-9]\)Z/Z0\1Z/g' \ + -e 's/Z\([0-9][0-9]\)Z/Z0\1Z/g' \ + -e 's/Z\([0-9][0-9][0-9]\)Z/Z0\1Z/g' \ +@@ -24606,7 +24606,8 @@ $as_echo "$ac_cv_path_GIAC" >&6; } + if test -z "$ac_cv_path_GIAC"; then : + sage_spkg_install_giac=yes + fi +- ac_fn_cxx_check_header_mongrel "$LINENO" "giac/giac.h" "ac_cv_header_giac_giac_h" "$ac_includes_default" ++ ac_fn_cxx_check_header_mongrel "$LINENO" "giac/giac.h" "ac_cv_header_giac_giac_h" "typedef unsigned char uchar; ++$ac_includes_default" + if test "x$ac_cv_header_giac_giac_h" = xyes; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ConvertUTF16toUTF8" >&5 +--- src/sage/libs/giac/giac.pxd.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/libs/giac/giac.pxd 2023-01-11 13:45:10.696009927 -0700 +@@ -12,6 +12,11 @@ + from sage.libs.gmp.mpz cimport mpz_t, mpz_set + from libcpp.string cimport string + ++cdef extern from *: ++ """ ++ typedef unsigned char uchar; ++ """ ++ + cdef extern from "giac/giac.h" namespace "giac": + cdef cppclass context: + context() +--- src/sage/libs/giac/misc.h.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/libs/giac/misc.h 2023-01-11 11:13:01.163906686 -0700 +@@ -1,5 +1,6 @@ + #ifndef GIACPYMISC_H + #define GIACPYMISC_H ++typedef unsigned char uchar; + #include + + #include +--- src/sage/symbolic/ginac/mpoly-giac.cpp.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/symbolic/ginac/mpoly-giac.cpp 2023-01-11 11:13:57.739878881 -0700 +@@ -44,6 +44,7 @@ + #include "function.h" + #include "utils.h" + ++typedef unsigned char uchar; + #include + #include + +--- src/sage/symbolic/ginac/numeric.cpp.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/symbolic/ginac/numeric.cpp 2023-01-11 11:14:43.876040741 -0700 +@@ -78,6 +78,7 @@ + #undef _POSIX_C_SOURCE + #undef _XOPEN_SOURCE + ++typedef unsigned char uchar; + #include + #include + #include diff --git a/sagemath-libgap.patch b/sagemath-libgap.patch index abe37ad..1daf9a0 100644 --- a/sagemath-libgap.patch +++ b/sagemath-libgap.patch @@ -111,18 +111,6 @@ diff -up src/sage/combinat/symmetric_group_algebra.py.orig src/sage/combinat/sym The preferred way to construct the symmetric group algebra is to go through the usual ``algebra`` method:: -diff -up src/sage/env.py.orig src/sage/env.py ---- src/sage/env.py.orig 2022-05-15 16:11:11.000000000 -0600 -+++ src/sage/env.py 2022-09-14 15:15:42.303907557 -0600 -@@ -197,7 +197,7 @@ CONWAY_POLYNOMIALS_DATA_DIR = var("CONWA - GRAPHS_DATA_DIR = var("GRAPHS_DATA_DIR", join(SAGE_SHARE, "graphs")) - ELLCURVE_DATA_DIR = var("ELLCURVE_DATA_DIR", join(SAGE_SHARE, "ellcurves")) - POLYTOPE_DATA_DIR = var("POLYTOPE_DATA_DIR", join(SAGE_SHARE, "reflexive_polytopes")) --GAP_ROOT_DIR = var("GAP_ROOT_DIR", join(SAGE_SHARE, "gap")) -+GAP_ROOT_DIR = var("GAP_ROOT_DIR", join('/usr', 'lib', "gap")) - THEBE_DIR = var("THEBE_DIR", join(SAGE_SHARE, "thebe")) - COMBINATORIAL_DESIGN_DATA_DIR = var("COMBINATORIAL_DESIGN_DATA_DIR", join(SAGE_SHARE, "combinatorial_designs")) - CREMONA_MINI_DATA_DIR = var("CREMONA_MINI_DATA_DIR", join(SAGE_SHARE, "cremona")) diff -up src/sage/groups/abelian_gps/abelian_group_gap.py.orig src/sage/groups/abelian_gps/abelian_group_gap.py --- src/sage/groups/abelian_gps/abelian_group_gap.py.orig 2022-05-15 16:11:11.000000000 -0600 +++ src/sage/groups/abelian_gps/abelian_group_gap.py 2022-09-14 15:23:05.702338312 -0600 diff --git a/sagemath-sphinx.patch b/sagemath-sphinx.patch new file mode 100644 index 0000000..ff1883c --- /dev/null +++ b/sagemath-sphinx.patch @@ -0,0 +1,11 @@ +--- src/sage_docbuild/ext/sage_autodoc.py.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage_docbuild/ext/sage_autodoc.py 2023-01-11 14:36:08.471075423 -0700 +@@ -35,7 +35,7 @@ from docutils.statemachine import ViewLi + + import sphinx + from sphinx.ext.autodoc import mock, ObjectMember +-from sphinx.ext.autodoc.importer import import_object, get_object_members, get_module_members ++from sphinx.ext.autodoc.importer import import_object, get_object_members + from sphinx.locale import _, __ + from sphinx.pycode import ModuleAnalyzer + from sphinx.errors import PycodeError diff --git a/sagemath.spec b/sagemath.spec index 57237b0..62af404 100644 --- a/sagemath.spec +++ b/sagemath.spec @@ -84,7 +84,7 @@ Name: sagemath Summary: A free open-source mathematics software system Version: 9.6 -Release: 7%{?dist} +Release: 8%{?dist} # The file ${SAGE_ROOT}/COPYING.txt is the upstream license breakdown file. # Note that many of the components listed in that file are not built in, but # are used as external libraries, and therefore do not affect the License tag. @@ -183,6 +183,13 @@ Patch22: %{name}-use-after-free.patch # Adapt to changes in python 3.11 Patch23: %{name}-python3.11.patch +# Adapt to changes in sphinx +Patch24: %{name}-sphinx.patch + +# Temporary workaround for https://bugzilla.redhat.com/show_bug.cgi?id=2160197 +# Remove this when that bug is fixed +Patch25: %{name}-giac.patch + BuildRequires: 4ti2 BuildRequires: 4ti2-devel BuildRequires: appstream @@ -326,6 +333,7 @@ BuildRequires: pkgconfig(isl) BuildRequires: pkgconfig(libavdevice) BuildRequires: pkgconfig(libcurl) BuildRequires: pkgconfig(libgvc) +BuildRequires: pkgconfig(libpcre) BuildRequires: pkgconfig(libpng) BuildRequires: pkgconfig(libsemigroups) BuildRequires: pkgconfig(libzmq) @@ -459,6 +467,7 @@ BuildRequires: tex(anyfontsize.sty) BuildRequires: tex(fncychap.sty) BuildRequires: tex(makecmds.sty) BuildRequires: tex(subfigure.sty) +BuildRequires: tex(tgtermes.sty) BuildRequires: tex(tikz-qtree.sty) BuildRequires: tex(tkz-berge.sty) BuildRequires: tex(xy.sty) @@ -1025,6 +1034,9 @@ chmod a-x src/sage/modules/fp_graded/{,steenrod/}*.py # GAP does not have enough memory to load the entire workspace sed -i 's/64m/256m/' src/sage/interfaces/gap.py +# Update the GAP root +sed -i '/GAP_ROOT_DIR/s,SAGE_SHARE,"%{_libdir}",' src/sage/env.py + # Fix detection of Fedora sed -i 's/yum/rpm/' build/bin/sage-guess-package-system @@ -1034,8 +1046,8 @@ sed -i 's/3\.11\.0/3.12.0/g' configure # Allow use of libfplll 5.4.2 sed -i 's/5\.4\.1/5.4.2/g' configure -# Allow use of eclib 20220621 -sed -i 's/20210625/20220621/g' configure +# Allow use of eclib 20221012 +sed -i 's/20210625/20221012/g' configure # Do not build with -march=native sed -i 's/CFLAGS_MARCH="-march=native"/CFLAGS_MARCH=""/' configure @@ -2043,6 +2055,14 @@ end ######################################################################## %changelog +* Thu Jan 12 2023 Jerry James - 9.6-8 +- Update for split GAP tree +- Add patch for FTBFS with latest giac (see bz 2160197) +- Fix eclib detection +- Add BR on pcre-devel +- Add BR on texlive-tex-gyre +- Rebuild for libfplll 5.4.4 + * Tue Dec 20 2022 Jerry James - 9.6-7 - Fix failure to install (bz 2154932) - Fix failure to find nauty binaries (bz 2125737)