[arch-commits] Commit in sagemath/trunk (7 files)

Antonio Rojas arojas at gemini.archlinux.org
Mon May 16 06:50:36 UTC 2022


    Date: Monday, May 16, 2022 @ 06:50:35
  Author: arojas
Revision: 1207511

Update to 9.6

Modified:
  sagemath/trunk/PKGBUILD
  sagemath/trunk/latte-count.patch
  sagemath/trunk/sagemath-bliss-0.77.patch
  sagemath/trunk/sagemath-optional-packages.patch
  sagemath/trunk/test-optional.patch
Deleted:
  sagemath/trunk/sagemath-doc-sphinx4.3.patch
  sagemath/trunk/sagemath-lrcalc2.patch

----------------------------------+
 PKGBUILD                         |   29 -
 latte-count.patch                |   71 ---
 sagemath-bliss-0.77.patch        |   96 ++++-
 sagemath-doc-sphinx4.3.patch     |   12 
 sagemath-lrcalc2.patch           |  685 -------------------------------------
 sagemath-optional-packages.patch |    2 
 test-optional.patch              |    5 
 7 files changed, 93 insertions(+), 807 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2022-05-16 06:50:08 UTC (rev 1207510)
+++ PKGBUILD	2022-05-16 06:50:35 UTC (rev 1207511)
@@ -6,8 +6,8 @@
 # Contributor: Stefan Husmann <stefan-husmann at t-online dot de>
 
 pkgname=sagemath
-pkgver=9.5
-pkgrel=4
+pkgver=9.6
+pkgrel=1
 pkgdesc='Open Source Mathematics Software, free alternative to Magma, Maple, Mathematica, and Matlab'
 arch=(x86_64)
 url='http://www.sagemath.org'
@@ -45,8 +45,9 @@
   'python-pycosat: picosat SAT solver'
   'python-pip: to install optional packages with sage -pip'
   'sage-notebook-exporter: convert flask notebooks to Jupyter'
-  'python-database-knotinfo: interface to the KnotInfo and LinkInfo databases')
-makedepends=(cython boost ratpoints python-jinja sirocco mcqd coxeter bliss tdlib python-pkgconfig shared_meataxe)
+  'python-database-knotinfo: interface to the KnotInfo and LinkInfo databases'
+  'python-phitigra: graph editor')
+makedepends=(cython boost python-jinja sirocco mcqd coxeter bliss tdlib python-pkgconfig shared_meataxe)
 conflicts=(sagemath-jupyter)
 replaces=(sagemath-jupyter)
 source=(https://github.com/sagemath/sage/archive/$pkgver/$pkgname-$pkgver.tar.gz
@@ -53,31 +54,23 @@
         sagemath-optional-packages.patch
         latte-count.patch
         test-optional.patch
-        sagemath-lrcalc2.patch
         sagemath-linbox-1.7.patch
-        sagemath-bliss-0.77.patch
-        sagemath-doc-sphinx4.3.patch)
-sha256sums=('8d70a3b26080802c5b2e33dda4c23795d494d8216a0c2ecfcd608ebab0e64ff6'
-            'eee5fa15d8c7be7e009166dbde3ea24bb10d7793dc12880516f278f86b1a6694'
-            '2bf9e2b44c20c5bec9d90782f59a87374a3c726241179191e9589179e1550a03'
-            '9d042070df3dfd53a1248659677798da888f733548eda91a6d5169c7aa1907e1'
-            'c8a1fb98f454dfd52101373e478e396d83a7d55c2c658b1d246a86603cbb15e8'
+        sagemath-bliss-0.77.patch)
+sha256sums=('c6225d48f70ac955fceed5c1fddfdd7294001d460b43a686329d5d44d836f6a3'
+            'e24c075a9f8e562fe9d85e6fd5b01eac4691683c01d4d22c83cde145b63f4dba'
+            'bd188af45ce31579b82407adee8e9bf6033a996f7ea6e328fabca526f31c08ba'
+            '89c1f82dbba376087f08b39b11f43bf781cec199d7d894713167d09dc32e3e18'
             'eacea27b214d32cb886a75695153dfc36b5bad2fd2517e8e4eee18e74220e9e3'
-            '49ede468b8e1e7b8d7a390aab9ff1a6e899a0c5e487632cbf76902d80c637505'
-            '4e311733bc4c1d7ab4e898356838f101eff26738e7d24fb50c1879fa13a75c6e')
+            'b467a41e1e0a0850f7722d875a743233751966a206c2f61401c7582aa722f84e')
 
 prepare(){
   cd sage-$pkgver
 
 # Upstream patches
-# Replace lrcalc.pyx with a wrapper over lrcalc's python bindings https://trac.sagemath.org/ticket/31355
-  patch -p1 -i ../sagemath-lrcalc2.patch
 # Fix build with linbox 1.7 https://trac.sagemath.org/ticket/32959
   patch -p1 -i ../sagemath-linbox-1.7.patch
 # Fix build with bliss 0.77 https://trac.sagemath.org/ticket/33010
   patch -p1 -i ../sagemath-bliss-0.77.patch
-# Fix sagemath-doc build with Sphinx 4.3 https://trac.sagemath.org/ticket/32968
-  patch -p1 -i ../sagemath-doc-sphinx4.3.patch
 
 # Arch-specific patches
 # assume all optional packages are installed

Modified: latte-count.patch
===================================================================
--- latte-count.patch	2022-05-16 06:50:08 UTC (rev 1207510)
+++ latte-count.patch	2022-05-16 06:50:35 UTC (rev 1207511)
@@ -1,74 +1,3 @@
-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
-@@ -194,7 +194,7 @@ class Polyhedron_ZZ(Polyhedron_base):
-             sage: p = P._ehrhart_polynomial_latte(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
-@@ -202,7 +202,7 @@ class Polyhedron_ZZ(Polyhedron_base):
-             sage: p = P._ehrhart_polynomial_latte(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
-@@ -210,7 +210,7 @@ class Polyhedron_ZZ(Polyhedron_base):
-             sage: p = P._ehrhart_polynomial_latte(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
-@@ -218,7 +218,7 @@ class Polyhedron_ZZ(Polyhedron_base):
-             sage: p = P._ehrhart_polynomial_latte(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
-@@ -230,7 +230,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
-         """
-         # note: the options below are explicitly written in the function
-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
-@@ -95,7 +95,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: ...
-@@ -127,7 +127,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

Modified: sagemath-bliss-0.77.patch
===================================================================
--- sagemath-bliss-0.77.patch	2022-05-16 06:50:08 UTC (rev 1207510)
+++ sagemath-bliss-0.77.patch	2022-05-16 06:50:35 UTC (rev 1207511)
@@ -1,3 +1,34 @@
+diff --git a/build/pkgs/bliss/SPKG.rst b/build/pkgs/bliss/SPKG.rst
+index 236b87a199..77407f16ac 100644
+--- a/build/pkgs/bliss/SPKG.rst
++++ b/build/pkgs/bliss/SPKG.rst
+@@ -10,20 +10,19 @@ canonical forms of graphs.
+ License
+ -------
+ 
+-LGPL
++LGPL3
+ 
+ 
+ Upstream Contact
+ ----------------
+ 
+-Bliss is currently being maintained by Tommi Junttila and Petteri Kaski.
++Bliss is currently being maintained by Tommi Junttila at
+ 
+-http://www.tcs.tkk.fi/Software/bliss/index.html
++https://users.aalto.fi/~tjunttil/bliss/index.html
++
++Bliss used to be maintained by Tommi Junttila and Petteri Kaski up to version 0.73 at
+ 
+-We apply patches generated from https://github.com/mkoeppe/bliss (branch
+-apply_debian_patches) as our upstream. This tracks the patches from the
+-Debian package, adding an autotools build system and adjusting the
+-include file locations.
++http://www.tcs.tkk.fi/Software/bliss/index.html
+ 
+ Dependencies
+ ------------
 diff --git a/build/pkgs/bliss/checksums.ini b/build/pkgs/bliss/checksums.ini
 index e97d89587b..0c1ebf647b 100644
 --- a/build/pkgs/bliss/checksums.ini
@@ -29,19 +60,54 @@
 @@ -1 +1 @@
 -0.73+debian-1+sage-2016-08-02.p0
 +0.77
+diff --git a/build/pkgs/bliss/patches/bliss-0.77-install.patch b/build/pkgs/bliss/patches/bliss-0.77-install.patch
+new file mode 100644
+index 0000000000..caab14aa40
+--- /dev/null
++++ b/build/pkgs/bliss/patches/bliss-0.77-install.patch
+@@ -0,0 +1,32 @@
++diff --git a/CMakeLists.txt b/CMakeLists.txt
++index 01ed093..cfdb0a6 100644
++--- a/CMakeLists.txt
+++++ b/CMakeLists.txt
++@@ -62,3 +62,27 @@ if(USE_GMP)
++   target_link_libraries(bliss-executable ${GMP_LIBRARIES})
++ endif(USE_GMP)
++ set_target_properties(bliss-executable PROPERTIES OUTPUT_NAME bliss)
+++
+++include(GNUInstallDirs)
+++
+++set(
+++  BLISS_HEADERS
+++  src/bliss_C.h
+++  src/uintseqhash.hh
+++  src/abstractgraph.hh
+++  src/stats.hh
+++  src/digraph.hh
+++  src/defs.hh
+++  src/heap.hh
+++  src/graph.hh
+++  src/partition.hh
+++  src/kqueue.hh
+++  src/utils.hh
+++  src/orbit.hh
+++  src/timer.hh
+++  src/bignum.hh
+++)
+++
+++install(TARGETS bliss-executable RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+++install(TARGETS bliss LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+++install(FILES ${BLISS_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/bliss)
 diff --git a/build/pkgs/bliss/spkg-install.in b/build/pkgs/bliss/spkg-install.in
-index aaf4c3037b..ad1fe8176c 100644
+index aaf4c3037b..4124a2338e 100644
 --- a/build/pkgs/bliss/spkg-install.in
 +++ b/build/pkgs/bliss/spkg-install.in
-@@ -1,4 +1,6 @@
+@@ -1,4 +1,4 @@
  cd src
 -sdh_configure --disable-gmp
 +sdh_cmake -DUSE_GMP=OFF -DCMAKE_VERBOSE_MAKEFILE=ON
  sdh_make
--sdh_make_install
-+sdh_install src/*.hh $SAGE_LOCAL/include/bliss/
-+sdh_install libbliss.so $SAGE_LOCAL/lib/
-+sdh_install bliss $SAGE_LOCAL/bin/
+ sdh_make_install
 diff --git a/build/pkgs/bliss/spkg-src b/build/pkgs/bliss/spkg-src
 deleted file mode 100755
 index 90073233b7..0000000000
@@ -77,18 +143,16 @@
 -
 -
 diff --git a/src/sage/graphs/bliss.pyx b/src/sage/graphs/bliss.pyx
-index 22e861a587..fa426e3d11 100644
+index bf15833664..4f4e0ee3ca 100644
 --- a/src/sage/graphs/bliss.pyx
 +++ b/src/sage/graphs/bliss.pyx
-@@ -47,22 +47,27 @@ cdef extern from "bliss/graph.hh" namespace "bliss":
+@@ -47,22 +47,23 @@ cdef extern from "bliss/graph.hh" namespace "bliss":
      cdef cppclass Graph(AbstractGraph):
          Graph(const unsigned int)
          void add_edge(const unsigned int, const unsigned int)
 -        void find_automorphisms(Stats&, void (*)(void* , unsigned int,
 -                    const unsigned int*), void*)
-+        #void find_automorphisms(Stats&, void (*)(void* , unsigned int,
-+                    #const unsigned int*), void*)
-         void change_color(const unsigned int, const unsigned int);
+         void change_color(const unsigned int, const unsigned int)
 -        const unsigned int* canonical_form(Stats&, void (*)(void*,unsigned int,
 -                    const unsigned int*), void*)
 +        const unsigned int* canonical_form(Stats&)
@@ -100,9 +164,7 @@
          void add_edge(const unsigned int, const unsigned int)
 -        void find_automorphisms(Stats&, void (*)(void* , unsigned int,
 -                    const unsigned int*), void*)
-+        #void find_automorphisms(Stats&, void (*)(void* , unsigned int,
-+                    #const unsigned int*), void*)
-         void change_color(const unsigned int, const unsigned int);
+         void change_color(const unsigned int, const unsigned int)
 -        const unsigned int* canonical_form(Stats&, void (*)(void*,unsigned int,
 -                    const unsigned int*), void*)
 +        const unsigned int* canonical_form(Stats&)
@@ -116,7 +178,7 @@
  
  cdef int encoding_numbits(int n):
      r"""
-@@ -124,9 +129,6 @@ cdef void add_gen(void *user_param, unsigned int n, const unsigned int *aut):
+@@ -124,9 +125,6 @@ cdef void add_gen(void *user_param, unsigned int n, const unsigned int *aut):
  
      sig_free(done)
  
@@ -126,7 +188,7 @@
  #####################################################
  # constructing bliss graphs from edge lists
  #####################################################
-@@ -345,10 +347,10 @@ cdef canonical_form_from_edge_list(int Vnr, list Vout, list Vin, int Lnr=1, list
+@@ -345,10 +343,10 @@ cdef canonical_form_from_edge_list(int Vnr, list Vout, list Vin, int Lnr=1, list
  
      if directed:
          d = bliss_digraph_from_labelled_edges(Vnr, Lnr, Vout, Vin, labels, partition)
@@ -139,7 +201,7 @@
  
      for i in range(len(Vout)):
          x = Vout[i]
-@@ -640,11 +642,11 @@ cdef automorphism_group_gens_from_edge_list(int Vnr, Vout, Vin, int Lnr=1, label
+@@ -640,11 +638,11 @@ cdef automorphism_group_gens_from_edge_list(int Vnr, Vout, Vin, int Lnr=1, label
  
      if directed:
          d = bliss_digraph_from_labelled_edges(Vnr, Lnr, Vout, Vin, labels, partition)

Deleted: sagemath-doc-sphinx4.3.patch
===================================================================
--- sagemath-doc-sphinx4.3.patch	2022-05-16 06:50:08 UTC (rev 1207510)
+++ sagemath-doc-sphinx4.3.patch	2022-05-16 06:50:35 UTC (rev 1207511)
@@ -1,12 +0,0 @@
-diff --git a/src/sage/docs/conf.py b/src/sage/docs/conf.py
-index c788623..dd92d4c 100644
---- a/src/sage/docs/conf.py
-+++ b/src/sage/docs/conf.py
-@@ -911,6 +911,7 @@ def setup(app):
-     if app.srcdir.startswith(SAGE_DOC_SRC):
-         app.add_config_value('intersphinx_mapping', {}, False)
-         app.add_config_value('intersphinx_cache_limit', 5, False)
-+        app.add_config_value('intersphinx_disabled_reftypes', [], False)
-         app.connect('config-inited', set_intersphinx_mappings)
-         app.connect('builder-inited', intersphinx.load_mappings)
-         # We do *not* fully initialize intersphinx since we call it by hand

Deleted: sagemath-lrcalc2.patch
===================================================================
--- sagemath-lrcalc2.patch	2022-05-16 06:50:08 UTC (rev 1207510)
+++ sagemath-lrcalc2.patch	2022-05-16 06:50:35 UTC (rev 1207511)
@@ -1,685 +0,0 @@
-diff --git a/build/pkgs/lrcalc/checksums.ini b/build/pkgs/lrcalc/checksums.ini
-index 7a0e6a1b96..8b8620ba52 100644
---- a/build/pkgs/lrcalc/checksums.ini
-+++ b/build/pkgs/lrcalc/checksums.ini
-@@ -1,4 +1,5 @@
--tarball=lrcalc-VERSION.tar.gz
--sha1=89c288875bc3e3e2919876cb645bdfd7316b5965
--md5=6bba16c0cca9debccd0af847bd3d4a23
--cksum=3738483656
-+tarball=liblrcalc-VERSION.tar.gz
-+sha1=2a98661eb39c7ef526c932f7886fc3142fd639ab
-+md5=7cfa8f67287f2b70a15a833b94bc24b6
-+cksum=2250996027
-+upstream_url=https://sites.math.rutgers.edu/~asbuch/lrcalc/lrcalc-VERSION.tar.gz
-diff --git a/build/pkgs/lrcalc/package-version.txt b/build/pkgs/lrcalc/package-version.txt
-index 92ab3427e8..879b416e60 100644
---- a/build/pkgs/lrcalc/package-version.txt
-+++ b/build/pkgs/lrcalc/package-version.txt
-@@ -1 +1 @@
--1.2.p1
-+2.1
-diff --git a/build/pkgs/lrcalc/patches/includes.patch b/build/pkgs/lrcalc/patches/includes.patch
-deleted file mode 100644
-index 707da176a6..0000000000
---- a/build/pkgs/lrcalc/patches/includes.patch
-+++ /dev/null
-@@ -1,90 +0,0 @@
--From 4a5e1c8c3c11efdb1cbb4239825a6bf4bf1c52f8 Mon Sep 17 00:00:00 2001
--From: Anders Skovsted Buch <asbuch at math.rutgers.edu>
--Date: Sun, 29 Nov 2015 16:25:56 -0500
--Subject: [PATCH] Patch by Jeroen Demeyer to change include <vector.h> to
-- "vector.h", plus similar cases.
--
-----
-- src/lrcalc.c   | 2 +-
-- src/maple.c    | 4 ++--
-- src/schublib.h | 2 +-
-- src/symfcn.c   | 6 +++---
-- src/symfcn.h   | 4 ++--
-- 5 files changed, 9 insertions(+), 9 deletions(-)
--
--diff --git a/src/lrcalc.c b/src/lrcalc.c
--index aff3f75..60df49e 100644
----- a/src/lrcalc.c
--+++ b/src/lrcalc.c
--@@ -8,7 +8,7 @@
-- #include <stdlib.h>
-- extern char *optarg;
-- 
---#include <vectarg.h>
--+#include "vectarg.h"
-- 
-- #include "symfcn.h"
-- #include "maple.h"
--diff --git a/src/maple.c b/src/maple.c
--index fdc0768..a5f4d14 100644
----- a/src/maple.c
--+++ b/src/maple.c
--@@ -4,8 +4,8 @@
--  */
-- 
-- #include <stdio.h>
---#include <vector.h>
---#include <hashtab.h>
--+#include "vector.h"
--+#include "hashtab.h"
-- #include "maple.h"
-- 
-- 
--diff --git a/src/schublib.h b/src/schublib.h
--index a8e8511..864850c 100644
----- a/src/schublib.h
--+++ b/src/schublib.h
--@@ -1,7 +1,7 @@
-- #ifndef _SCHUBLIB_H
-- #define _SCHUBLIB_H
-- 
---#include <hashtab.h>
--+#include "hashtab.h"
-- 
-- hashtab *trans(vector *w, int vars, hashtab *res);
-- hashtab *monk(int i, hashtab *slc, int rank);
--diff --git a/src/symfcn.c b/src/symfcn.c
--index 4ffbe4b..fd5df5d 100644
----- a/src/symfcn.c
--+++ b/src/symfcn.c
--@@ -5,9 +5,9 @@
-- 
-- #include <stdio.h>
-- 
---#include <alloc.h>
---#include <vector.h>
---#include <hashtab.h>
--+#include "alloc.h"
--+#include "vector.h"
--+#include "hashtab.h"
-- 
-- #include "symfcn.h"
-- 
--diff --git a/src/symfcn.h b/src/symfcn.h
--index b8543b1..29bb00d 100644
----- a/src/symfcn.h
--+++ b/src/symfcn.h
--@@ -1,8 +1,8 @@
-- #ifndef _SYMFCN_H
-- #define _SYMFCN_H
-- 
---#include <hashtab.h>
---#include <vector.h>
--+#include "hashtab.h"
--+#include "vector.h"
-- 
-- int part_itr_sz(vector *part);
-- int part_itr_sub(vector *part, vector *outer);
---- 
--2.1.1.1.g1fb337f
--
-diff --git a/build/pkgs/lrcalc/spkg-configure.m4 b/build/pkgs/lrcalc/spkg-configure.m4
-index f2f8b74f8f..b8171ce23f 100644
---- a/build/pkgs/lrcalc/spkg-configure.m4
-+++ b/build/pkgs/lrcalc/spkg-configure.m4
-@@ -1,9 +1,10 @@
- SAGE_SPKG_CONFIGURE([lrcalc], [
--    AC_CHECK_HEADERS([lrcalc/schublib.h], [
-+    AC_LANG_PUSH([C])
-+    AC_CHECK_HEADERS([lrcalc/schublib.h] [lrcalc/lrcoef.h], [
-           AC_SEARCH_LIBS([mult_poly_schubert], [lrcalc], [], [sage_spkg_install_lrcalc=yes])
-     ], [sage_spkg_install_lrcalc=yes],
--    [[#ifndef _HASHTAB_H
--      #include <lrcalc/hashtab.h>
--      #include <lrcalc/vector.h>
-+    [[#ifndef _IVECTOR_H
-+      #include <lrcalc/ivector.h>
-       #endif]])
-+    AC_LANG_POP
- ])
-diff --git a/build/pkgs/lrcalc/spkg-install.in b/build/pkgs/lrcalc/spkg-install.in
-index d6665bfb42..a863950189 100644
---- a/build/pkgs/lrcalc/spkg-install.in
-+++ b/build/pkgs/lrcalc/spkg-install.in
-@@ -1,9 +1,5 @@
- cd src
- 
--# Use newer version of config.guess and config.sub (see Trac #19725)
--cp "$SAGE_ROOT"/config/config.guess .
--cp "$SAGE_ROOT"/config/config.sub .
--
- sdh_configure
- sdh_make
- sdh_make_install
-diff --git a/build/pkgs/lrcalc_python/SPKG.rst b/build/pkgs/lrcalc_python/SPKG.rst
-new file mode 100644
-index 0000000000..3a98d556ca
---- /dev/null
-+++ b/build/pkgs/lrcalc_python/SPKG.rst
-@@ -0,0 +1,22 @@
-+lrcalc_python: Littlewood-Richardson calculator
-+===============================================
-+
-+Description
-+-----------
-+
-+Python bindings for the Littlewood-Richardson Calculator
-+
-+http://sites.math.rutgers.edu/~asbuch/lrcalc/
-+
-+License
-+-------
-+
-+GNU General Public License V3
-+
-+
-+Upstream Contact
-+----------------
-+
-+Anders S. Buch (asbuch at math.rutgers.edu)
-+
-+https://bitbucket.org/asbuch/lrcalc
-diff --git a/build/pkgs/lrcalc_python/checksums.ini b/build/pkgs/lrcalc_python/checksums.ini
-new file mode 100644
-index 0000000000..bdfef8711e
---- /dev/null
-+++ b/build/pkgs/lrcalc_python/checksums.ini
-@@ -0,0 +1,5 @@
-+tarball=lrcalc-VERSION.tar.gz
-+sha1=3e9366d9e8b8beccec70b07d174b8f6683c01574
-+md5=4ae444d12ed8e0dd770594ea3ef4a208
-+cksum=2741305196
-+upstream_url=https://pypi.io/packages/source/l/lrcalc/lrcalc-VERSION.tar.gz
-diff --git a/build/pkgs/lrcalc_python/dependencies b/build/pkgs/lrcalc_python/dependencies
-new file mode 100644
-index 0000000000..63e5177ae0
---- /dev/null
-+++ b/build/pkgs/lrcalc_python/dependencies
-@@ -0,0 +1,5 @@
-+$(PYTHON) lrcalc | $(PYTHON_TOOLCHAIN) cython
-+
-+----------
-+All lines of this file are ignored except the first.
-+It is copied by SAGE_ROOT/build/make/install into SAGE_ROOT/build/make/Makefile.
-diff --git a/build/pkgs/lrcalc_python/install-requires.txt b/build/pkgs/lrcalc_python/install-requires.txt
-new file mode 100644
-index 0000000000..8b44d97f4b
---- /dev/null
-+++ b/build/pkgs/lrcalc_python/install-requires.txt
-@@ -0,0 +1 @@
-+lrcalc ~=2.1
-diff --git a/build/pkgs/lrcalc_python/package-version.txt b/build/pkgs/lrcalc_python/package-version.txt
-new file mode 100644
-index 0000000000..879b416e60
---- /dev/null
-+++ b/build/pkgs/lrcalc_python/package-version.txt
-@@ -0,0 +1 @@
-+2.1
-diff --git a/build/pkgs/lrcalc_python/spkg-install.in b/build/pkgs/lrcalc_python/spkg-install.in
-new file mode 100644
-index 0000000000..deba1bb42b
---- /dev/null
-+++ b/build/pkgs/lrcalc_python/spkg-install.in
-@@ -0,0 +1 @@
-+cd src && sdh_pip_install .
-diff --git a/build/pkgs/lrcalc_python/type b/build/pkgs/lrcalc_python/type
-new file mode 100644
-index 0000000000..a6a7b9cd72
---- /dev/null
-+++ b/build/pkgs/lrcalc_python/type
-@@ -0,0 +1 @@
-+standard
-diff --git a/build/pkgs/sagelib/dependencies b/build/pkgs/sagelib/dependencies
-index 9c7797b1f4..3369d4d905 100644
---- a/build/pkgs/sagelib/dependencies
-+++ b/build/pkgs/sagelib/dependencies
-@@ -1,4 +1,4 @@
--FORCE $(SCRIPTS) arb boost_cropped $(BLAS) brial cliquer cypari cysignals cython ecl eclib ecm flint libgd gap giac givaro glpk gmpy2 gsl iml jinja2 jupyter_core lcalc lrcalc libbraiding libhomfly libpng linbox m4ri m4rie memory_allocator mpc mpfi mpfr $(MP_LIBRARY) ntl numpy pari pip pkgconfig planarity ppl pplpy primesieve primecount primecountpy pycygwin $(PYTHON) ratpoints requests rw sage_conf singular symmetrica zn_poly $(PCFILES) | $(PYTHON_TOOLCHAIN) sage_setup
-+FORCE $(SCRIPTS) arb boost_cropped $(BLAS) brial cliquer cypari cysignals cython ecl eclib ecm flint libgd gap giac givaro glpk gmpy2 gsl iml jinja2 jupyter_core lcalc lrcalc_python libbraiding libhomfly libpng linbox m4ri m4rie memory_allocator mpc mpfi mpfr $(MP_LIBRARY) ntl numpy pari pip pkgconfig planarity ppl pplpy primesieve primecount primecountpy pycygwin $(PYTHON) ratpoints requests rw sage_conf singular symmetrica zn_poly $(PCFILES) | $(PYTHON_TOOLCHAIN) sage_setup
- 
- ----------
- All lines of this file are ignored except the first.
-diff --git a/src/sage/libs/lrcalc/lrcalc.pxd b/src/sage/libs/lrcalc/lrcalc.pxd
-deleted file mode 100644
-index 10b88db93f..0000000000
---- a/src/sage/libs/lrcalc/lrcalc.pxd
-+++ /dev/null
-@@ -1,77 +0,0 @@
--# distutils: libraries = lrcalc
--
--cdef extern from "lrcalc/hashtab.h":
--    ctypedef struct hashtab:
--        pass
--
--    ctypedef struct hash_itr:
--        pass
--
--    ctypedef unsigned long hashkey_t
--    ctypedef int (*cmp_t) (void* a, void* b)
--    ctypedef hashkey_t (*hash_t) (void* a)
--
--    hashtab* hash_new(cmp_t cm, hash_t hsh)
--    void hash_free(hashtab *ht)
--
--    void* hash_lookup(hashtab *ht, void *key)
--    void* hash_insert(hashtab *ht, void *key, void *value)
--
--    bint hash_good(hash_itr)
--    void hash_first(hashtab* s, hash_itr itr)
--    void hash_next(hash_itr itr)
--    void* hash_key(hash_itr itr)
--    void* hash_value(hash_itr itr)
--    int hash_intvalue(hash_itr itr)
--
--cdef extern from "lrcalc/vector.h":
--    ctypedef struct vector:
--        size_t length
--        int* array
--
--    vector* v_new(int length)
--    void v_free(vector* v)
--    void v_print(vector *v)
--    int v_length(vector* v)
--    int v_elem(vector* v, int i)
--
--    ctypedef struct vecpair:
--        vector *first
--        vector *second
--
--    vector* vp_first(vecpair* vp)
--    vector* vp_second(vecpair* vp)
--
--cdef extern from "lrcalc/list.h":
--    cdef struct _list:
--        void **array
--        size_t allocated
--        size_t length
--    void l_free(_list *lst)
--
--cdef extern from "lrcalc/symfcn.h":
--    long long lrcoef_c "lrcoef"(vector* outer, vector* inner1, vector* inner2)
--    hashtab* mult_c "mult"(vector *sh1, vector *sh2, int maxrows)
--    hashtab* skew_c "skew"(vector *outer, vector *inner, int maxrows)
--    hashtab* coprod_c "coprod"(vector *part, int all)
--    void fusion_reduce_c "fusion_reduce"(hashtab* ht, int rows, int cols, int opt_zero)
--    _list *quantum_reduce_c "quantum_reduce"(hashtab* ht, int rows, int col)
--
--    ctypedef struct skewtab:
--        vector *outer
--        vector *inner
--        vector *conts
--        int maxrows
--        vector *conjugate
--        int rows
--        int cols
--        int matrix[1]
--
--    skewtab *st_new(vector *outer, vector *inner, vector *conts, int maxrows)
--    int st_next(skewtab *st)
--    void st_print(skewtab *st)
--    void st_free(skewtab *st)
--
--
--cdef extern from "lrcalc/schublib.h":
--    hashtab* mult_schubert_c "mult_schubert"(vector *sh1, vector *sh2, int rank)
-diff --git a/src/sage/libs/lrcalc/lrcalc.pyx b/src/sage/libs/lrcalc/lrcalc.py
-similarity index 65%
-rename from src/sage/libs/lrcalc/lrcalc.pyx
-rename to src/sage/libs/lrcalc/lrcalc.py
-index b591081ec4..65db959944 100644
---- a/src/sage/libs/lrcalc/lrcalc.pyx
-+++ b/src/sage/libs/lrcalc/lrcalc.py
-@@ -187,180 +187,24 @@ AUTHORS:
- #                  https://www.gnu.org/licenses/
- # ****************************************************************************
- 
--from sage.rings.integer cimport Integer
--from sage.structure.parent cimport Parent
- from sage.combinat.partition import _Partitions
- from sage.combinat.permutation import Permutation
--from sage.combinat.skew_tableau import SkewTableau
-+from sage.combinat.skew_tableau import SkewTableaux
-+from sage.combinat.skew_partition import SkewPartition
-+from sage.rings.integer import Integer
-+import lrcalc
- 
--
--cdef vector* iterable_to_vector(it):
--    """
--    Return an lrcalc vector (which is a list of integers) from a Python iterable.
--
--    TESTS::
--
--        sage: from sage.libs.lrcalc.lrcalc import test_iterable_to_vector
--        sage: x = test_iterable_to_vector(Partition([3,2,1])); x   #indirect doctest
--        [3, 2, 1]
--    """
--    cdef vector* v
--    cdef list itr = list(it)
--    cdef int n = len(itr)
--    cdef int i
--    v = v_new(n)
--    for i in range(n):
--        v.array[i] = int(itr[i])
--    return v
--
--
--cdef list vector_to_list(vector *v):
--    """
--    Converts a lrcalc vector to Python list.
--
--    TESTS::
--
--        sage: from sage.libs.lrcalc.lrcalc import test_iterable_to_vector
--        sage: x = test_iterable_to_vector([]); x         #indirect doctest
--        []
--    """
--    cdef int i, n
--    n = v_length(v)
--    cdef list result = [None]*n
--    for i in range(n):
--        result[i] = Integer(v_elem(v, i))
--    return result
--
--
--def test_iterable_to_vector(it):
--    """
--    A wrapper function for the cdef function ``iterable_to_vector``
--    and ``vector_to_list``, to test that they are working correctly.
--
--    EXAMPLES::
--
--        sage: from sage.libs.lrcalc.lrcalc import test_iterable_to_vector
--        sage: x = test_iterable_to_vector([3,2,1]); x
--        [3, 2, 1]
--    """
--    cdef vector *v = iterable_to_vector(it)
--    result = vector_to_list(v)
--    v_free(v)
--    return result
--
--
--cdef skewtab_to_SkewTableau(skewtab *st):
--    """
--    A wrapper function which transforms the data set ``st`` used in
--    ``lrcalc`` to a ``SkewTableau`` in Sage.
-+def _lrcalc_dict_to_sage(result):
-+    r"""
-+    Translate from lrcalc output format to Sage expected format.
- 
-     TESTS::
- 
--        sage: from sage.libs.lrcalc.lrcalc import test_skewtab_to_SkewTableau
--        sage: test_skewtab_to_SkewTableau([],[])
--        []
--    """
--    inner = vector_to_list(st.inner)
--    outer = vector_to_list(st.outer)
--    return SkewTableau(expr=[[inner[y] for y in range(len(outer))],
--                             [[st.matrix[x + y * st.cols] + 1
--                                for x in range(inner[y], outer[y])]
--                              for y in range(len(outer) - 1, -1, -1)]])
--
--
--def test_skewtab_to_SkewTableau(outer, inner):
--    """
--    A wrapper function for the cdef function ``skewtab_to_SkewTableau``
--    for testing purposes.
--
--    It constructs the first LR skew tableau of shape ``outer/inner``
--    as an ``lrcalc`` ``skewtab``, and converts it to a
--    :class:`SkewTableau`.
--
--    EXAMPLES::
--
--        sage: from sage.libs.lrcalc.lrcalc import test_skewtab_to_SkewTableau
--        sage: test_skewtab_to_SkewTableau([3,2,1],[])
--        [[1, 1, 1], [2, 2], [3]]
--        sage: test_skewtab_to_SkewTableau([4,3,2,1],[1,1]).pp()
--        .  1  1  1
--        .  2  2
--        1  3
--        2
--    """
--    cdef vector* o = iterable_to_vector(outer)
--    cdef vector* i = iterable_to_vector(inner+[0]*(len(outer)-len(inner)))
--    cdef skewtab* st = st_new(o, i, NULL, 0)
--    return skewtab_to_SkewTableau(st)
--
--
--cdef dict sf_hashtab_to_dict(hashtab *ht):
--    """
--    Return a dictionary representing a Schur function. The keys are
--    partitions and the values are integers <class 'sage.rings.integer.Integer'>.
--
--    EXAMPLES::
--
-         sage: from sage.libs.lrcalc.lrcalc import mult
--        sage: sorted(mult([1],[1]).items())        #indirect doctest
--        [([1, 1], 1), ([2], 1)]
--        sage: assert isinstance(mult([1],[1]),dict)#indirect doctest
--    """
--    cdef hash_itr itr
--    cdef dict result = {}
--    cdef list p
--    hash_first(ht, itr)
--    while hash_good(itr):
--        p = vector_to_list(<vector*> hash_key(itr))
--        result[_Partitions(p)] = Integer(hash_intvalue(itr))
--        hash_next(itr)
--    return result
--
--
--cdef dict schubert_hashtab_to_dict(hashtab *ht):
--    """
--    Return a dictionary corresponding to a Schubert polynomial whose keys
--    are permutations and whose values are integers <class 'sage.rings.integer.Integer'>.
--
--    EXAMPLES::
--
--        sage: from sage.libs.lrcalc.lrcalc import mult_schubert
--        sage: mult_schubert([3,2,1], [1,2,3])      #indirect doctest
--        {[3, 2, 1]: 1}
--    """
--    cdef hash_itr itr
--    cdef dict result = {}
--    hash_first(ht, itr)
--    while hash_good(itr):
--        p = vector_to_list(<vector*> hash_key(itr))
--        result[Permutation(p)] = Integer(hash_intvalue(itr))
--        hash_next(itr)
--    return result
--
--
--cdef dict vp_hashtab_to_dict(hashtab *ht):
--    """
--    Return a dictionary corresponding to the coproduct of a Schur function whose keys are
--    pairs of partitions and whose values are integers <class 'sage.rings.integer.Integer'>.
--
--    EXAMPLES::
--
--        sage: from sage.libs.lrcalc.lrcalc import coprod
--        sage: coprod([1])      #indirect doctest
--        {([1], []): 1}
-+        sage: mult([2,1],[3,2,1],3) # indirect doctest
-+        {[3, 3, 3]: 1, [4, 3, 2]: 2, [4, 4, 1]: 1, [5, 2, 2]: 1, [5, 3, 1]: 1}
-     """
--    cdef hash_itr itr
--    cdef vecpair* vp
--    cdef dict result = {}
--    hash_first(ht, itr)
--    while hash_good(itr):
--        vp = <vecpair*> hash_key(itr)
--        p1 = _Partitions(vector_to_list(vp_first(vp)))
--        p2 = _Partitions(vector_to_list(vp_second(vp)))
--        result[(p1, p2)] = Integer(hash_intvalue(itr))
--        hash_next(itr)
--    return result
--
-+    return {_Partitions(la):Integer(k) for la,k in result.items()}
- 
- def lrcoef_unsafe(outer, inner1, inner2):
-     r"""
-@@ -392,18 +236,7 @@ def lrcoef_unsafe(outer, inner1, inner2):
-         sage: lrcoef_unsafe([2,1,1,1,1], [2,1], [2,1])
-         0
-     """
--    cdef long long result
--    cdef vector *o
--    cdef vector *i1
--    cdef vector *i2
--    o = iterable_to_vector(outer)
--    i1 = iterable_to_vector(inner1)
--    i2 = iterable_to_vector(inner2)
--    result = lrcoef_c(o, i1, i2)
--    v_free(o)
--    v_free(i1)
--    v_free(i2)
--    return Integer(result)
-+    return Integer(lrcalc.lrcoef(outer, inner1, inner2))
- 
- 
- def lrcoef(outer, inner1, inner2):
-@@ -510,44 +343,24 @@ def mult(part1, part2, maxrows=None, level=None, quantum=None):
-     if quantum is not None and (level is None or maxrows is None):
-         raise ValueError('missing parameters maxrows or level')
- 
--    cdef vector* v1 = iterable_to_vector(part1)
--    cdef vector* v2 = iterable_to_vector(part2)
--    if maxrows is None:
--        maxrows = 0
--    cdef hashtab* ht = mult_c(v1, v2, int(maxrows))
--    cdef hashtab* tab
--    cdef dict result
--
-     if quantum is None:
-         if level is not None:
--            fusion_reduce_c(ht, int(maxrows), int(level), int(0))
--        result = sf_hashtab_to_dict(ht)
--        v_free(v1)
--        v_free(v2)
--        hash_free(ht)
--        return result
-+            return _lrcalc_dict_to_sage(lrcalc.mult_fusion(part1, part2, maxrows, level))
-+        if maxrows is None:
-+            maxrows = -1
-+        return _lrcalc_dict_to_sage(lrcalc.mult(part1, part2, maxrows))
- 
-     # Otherwise do quantum multiplication
--    cdef _list *qlist
--    cdef dict temp
--    qlist = quantum_reduce_c(ht, int(maxrows), int(level))
--    # The above call frees the memory associated with ht
--    v_free(v1)
--    v_free(v2)
--
--    cdef Parent P = quantum.parent()
--    result = {}
--    for i in range(qlist.length):
--        tab = <hashtab*>(qlist.array[i])
--        temp = sf_hashtab_to_dict(tab)
--        for k in temp:
--            result[k] = result.get(k, P.zero()) + quantum**i * temp[k]
--        hash_free(tab)
--    l_free(qlist)
--    return result
--
--
--def skew(outer, inner, maxrows=0):
-+    result = lrcalc.mult_quantum(part1, part2, maxrows, level, degrees=True)
-+    P = quantum.parent()
-+    output = {}
-+    for i,k in result.items():
-+        la = _Partitions(i[0])
-+        output[la] = output.get(la, P.zero()) + k*quantum**(i[1])
-+    return output
-+
-+
-+def skew(outer, inner, maxrows=-1):
-     """
-     Compute the Schur expansion of a skew Schur function.
- 
-@@ -572,14 +385,7 @@ def skew(outer, inner, maxrows=0):
-         sage: sorted(skew([2,1],[1]).items())
-         [([1, 1], 1), ([2], 1)]
-     """
--    cdef vector* v1 = iterable_to_vector(outer)
--    cdef vector* v2 = iterable_to_vector(inner)
--    cdef hashtab* ht = skew_c(v1, v2, int(maxrows))
--    result = sf_hashtab_to_dict(ht)
--    v_free(v1)
--    v_free(v2)
--    hash_free(ht)
--    return result
-+    return _lrcalc_dict_to_sage(lrcalc.skew(outer, inner, maxrows))
- 
- 
- def coprod(part, all=0):
-@@ -609,12 +415,8 @@ def coprod(part, all=0):
-         sage: sorted(coprod([2,1]).items())
-         [(([1, 1], [1]), 1), (([2], [1]), 1), (([2, 1], []), 1)]
-     """
--    cdef vector* v1 = iterable_to_vector(part)
--    cdef hashtab* ht = coprod_c(v1, int(all))
--    result = vp_hashtab_to_dict(ht)
--    v_free(v1)
--    hash_free(ht)
--    return result
-+    result = lrcalc.coprod(part, all)
-+    return {tuple(_Partitions(mu) for mu in la):Integer(k) for la,k in result.items()}
- 
- 
- def mult_schubert(w1, w2, rank=0):
-@@ -646,17 +448,11 @@ def mult_schubert(w1, w2, rank=0):
-          ([6, 4, 3, 1, 2, 5], 1), ([6, 5, 2, 1, 3, 4], 1),
-          ([7, 3, 4, 1, 2, 5, 6], 1), ([7, 4, 2, 1, 3, 5, 6], 1)]
-     """
--    cdef vector* v1 = iterable_to_vector(w1)
--    cdef vector* v2 = iterable_to_vector(w2)
--    cdef hashtab* ht = mult_schubert_c(v1, v2, int(rank))
--    result = schubert_hashtab_to_dict(ht)
--    v_free(v1)
--    v_free(v2)
--    hash_free(ht)
--    return result
-+    result = lrcalc.schubmult(w1, w2, rank)
-+    return {Permutation(list(la)):Integer(k) for la,k in result.items()}
- 
- 
--def lrskew(outer, inner, weight=None, maxrows=0):
-+def lrskew(outer, inner, weight=None, maxrows=-1):
-     r"""
-     Iterate over the skew LR tableaux of shape ``outer / inner``.
- 
-@@ -703,21 +499,20 @@ def lrskew(outer, inner, weight=None, maxrows=0):
-         sage: list(lrskew([3,2,1],[2], weight=[3,1]))
-         [[[None, None, 1], [1, 1], [2]]]
-     """
--    cdef vector* o = iterable_to_vector(outer)
--    cdef vector* i = iterable_to_vector(inner + [0]*(len(outer) - len(inner)))
--    cdef skewtab* st = st_new(o, i, NULL, int(maxrows))
-+    iterator = lrcalc.lr_iterator(outer, inner, maxrows)
-+    shape = SkewPartition([outer, inner])
- 
-     if weight is None:
--        yield skewtab_to_SkewTableau(st)
--        while st_next(st):
--            yield skewtab_to_SkewTableau(st)
-+        ST = SkewTableaux()
-+        for data in iterator:
-+            yield ST.from_shape_and_word(shape, [i+1 for i in data])
-     else:
-         wt = _Partitions(weight)
--        r = skewtab_to_SkewTableau(st)
--        if r.weight() == wt:
--            yield r
--        while st_next(st):
--            r = skewtab_to_SkewTableau(st)
--            if r.weight() == wt:
--                yield r
--    st_free(st)
-+        ST = SkewTableaux()
-+        for data in iterator:
-+            m = max(data) + 1
-+            w = [0] * m
-+            for j in data:
-+                w[j] += 1
-+            if w == wt:
-+                yield ST.from_shape_and_word(shape, [i+1 for i in data])

Modified: sagemath-optional-packages.patch
===================================================================
--- sagemath-optional-packages.patch	2022-05-16 06:50:08 UTC (rev 1207510)
+++ sagemath-optional-packages.patch	2022-05-16 06:50:35 UTC (rev 1207511)
@@ -3,7 +3,7 @@
 --- a/pkgs/sagemath-standard/setup.py
 +++ b/pkgs/sagemath-standard/setup.py
 @@ -81,10 +81,9 @@ else:
-     from sage_setup.optional_extension import is_package_installed_and_updated
+     from sage.misc.package import is_package_installed_and_updated
      distributions = ['']
      optional_packages_with_extensions = ['mcqd', 'bliss', 'tdlib',
 -                                         'coxeter3', 'fes', 'sirocco', 'meataxe']

Modified: test-optional.patch
===================================================================
--- test-optional.patch	2022-05-16 06:50:08 UTC (rev 1207510)
+++ test-optional.patch	2022-05-16 06:50:35 UTC (rev 1207511)
@@ -2,7 +2,7 @@
 index 2d93841e50..937e20cd2e 100644
 --- a/src/sage/doctest/control.py
 +++ b/src/sage/doctest/control.py
-@@ -400,11 +400,6 @@ class DocTestController(SageObject):
+@@ -411,11 +411,6 @@ class DocTestController(SageObject):
                  # that the package is actually installed).
                  if 'optional' in options.optional:
                      options.optional.discard('optional')
@@ -13,5 +13,4 @@
 -
                      from sage.features import package_systems
                      options.optional.update(system.name
- 
- 
+                                             for system in package_systems())



More information about the arch-commits mailing list