summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO15
-rw-r--r--PKGBUILD23
-rw-r--r--disable-fes.patch19
-rw-r--r--fes02.patch57
-rw-r--r--sagemath-planarity3.patch113
5 files changed, 194 insertions, 33 deletions
diff --git a/.SRCINFO b/.SRCINFO
index dad179706cae..4a1bb825bd8f 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = sagemath-git
pkgdesc = Open Source Mathematics Software, free alternative to Magma, Maple, Mathematica, and Matlab
- pkgver = 7.6.beta0.r0.gd92d7c01f4
+ pkgver = 7.6.beta2.r0.g375d4ee776
pkgrel = 1
url = http://www.sagemath.org
arch = i686
@@ -31,7 +31,6 @@ pkgbase = sagemath-git
depends = maxima-ecl
depends = gfan
depends = sympow
- depends = tachyon
depends = nauty
depends = python2-rpy2
depends = python2-fpylll
@@ -84,31 +83,36 @@ pkgbase = sagemath-git
optdepends = lrs: Algorithms for linear reverse search used in game theory and for computing volume of polytopes
optdepends = libhomfly: for computing the homfly polynomial of links
optdepends = libbraiding: for computing in braid groups
+ optdepends = libfes: exhaustive search of solutions for boolean equations
optdepends = python2-pynormaliz: Normaliz backend for polyhedral computations
+ optdepends = three.js: alternative 3D plots engine
+ optdepends = tachyon: alternative 3D plots engine
source = git://git.sagemath.org/sage.git#branch=develop
source = env.patch
source = skip-check.patch
source = cython-sys-path.patch
source = is-package-installed.patch
source = package.patch
- source = disable-fes.patch
source = jupyter-path.patch
source = test-optional.patch
source = ecm-7.patch
source = increase-rtol.patch
source = r-no-readline.patch
+ source = sagemath-planarity3.patch
+ source = fes02.patch
sha256sums = SKIP
sha256sums = 9dba04ff13626a7b6c338a8b18a6c27d343f68a547a218533cf773af3dae6635
sha256sums = 178074c0a22da4a8129ec299a6845aaae8cf3ef1da6f62b34f2ec0ed50c1e6a2
sha256sums = ff7e034d08ab084fdb193484f7fe3a659ebcd8ab33a2b7177237d65b26de7872
sha256sums = d60fb0fbd27991ce9496ca035a54b03334b5b53f244227a8d6e13f3327ce75d2
sha256sums = 4a2297e4d9d28f0b3a1f58e1b463e332affcb109eafde44837b1657e309c8212
- sha256sums = c9e2bfa91baf155cce1bee09c11b0214c20c38e4fc9f5e2d090da86564110327
sha256sums = 889b65598d2a15e73eb482f543ec9b28d8992eeb57b07883c2e9627dfee15a9b
sha256sums = 81d08c6a760f171f3381455b66a6c84789c9f0eefddbe6ca5794075514ad8c3a
sha256sums = 06bc1e5b409e21d49fc71ef03e96ec35b7a9b524bfd1f81a2dbf5c64a55e5acf
sha256sums = 1c068c524a2926ba222b36b0f4229a45c6f00c2225ffde0b0555e4e9659342d5
sha256sums = ef9f401fa84fe1772af9efee6816643534f2896da4c23b809937b19771bdfbbf
+ sha256sums = a1c562ebe4538d672404ca3ac2e954a3c955afeb7463f7b4fe6eaa6fa74fe5c7
+ sha256sums = a39da083c038ada797ffc5bedc9ba47455a3f77057d42f86484ae877ef9172ea
pkgname = sagemath-git
optdepends = cython2: to compile cython code
@@ -131,7 +135,10 @@ pkgname = sagemath-git
optdepends = lrs: Algorithms for linear reverse search used in game theory and for computing volume of polytopes
optdepends = libhomfly: for computing the homfly polynomial of links
optdepends = libbraiding: for computing in braid groups
+ optdepends = libfes: exhaustive search of solutions for boolean equations
optdepends = python2-pynormaliz: Normaliz backend for polyhedral computations
+ optdepends = three.js: alternative 3D plots engine
+ optdepends = tachyon: alternative 3D plots engine
optdepends = sagemath-jupyter: Jupyter kernel
provides = sage-mathematics
provides = sagemath
diff --git a/PKGBUILD b/PKGBUILD
index 779e6c0d3e03..7567b325e12e 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -8,13 +8,13 @@
pkgbase=sagemath-git
pkgname=(sagemath-git sagemath-jupyter-git)
-pkgver=7.6.beta0.r0.gd92d7c01f4
+pkgver=7.6.beta2.r0.g375d4ee776
pkgrel=1
pkgdesc="Open Source Mathematics Software, free alternative to Magma, Maple, Mathematica, and Matlab"
arch=(i686 x86_64)
url="http://www.sagemath.org"
license=(GPL)
-depends=(ipython2 ppl palp brial cliquer maxima-ecl gfan sympow tachyon nauty python2-rpy2 python2-fpylll python2-psutil
+depends=(ipython2 ppl palp brial cliquer maxima-ecl gfan sympow nauty python2-rpy2 python2-fpylll python2-psutil
python2-matplotlib python2-scipy python2-sympy python2-networkx python2-pillow python2-future libgap flintqs lcalc lrcalc arb
eclib gmp-ecm zn_poly gd python2-cvxopt pynac linbox rubiks pari-galdata pari-seadata-small planarity rankwidth
sage-data-combinatorial_designs sage-data-elliptic_curves sage-data-graphs sage-data-polytopes_db sage-data-conway_polynomials)
@@ -27,24 +27,27 @@ optdepends=('cython2: to compile cython code' 'python2-pkgconfig: to compile cyt
'coxeter3: Coxeter groups implementation' 'cryptominisat2: SAT solver' 'gap-data: for computing Galois groups'
'lrs: Algorithms for linear reverse search used in game theory and for computing volume of polytopes'
'libhomfly: for computing the homfly polynomial of links' 'libbraiding: for computing in braid groups'
- 'python2-pynormaliz: Normaliz backend for polyhedral computations')
+ 'libfes: exhaustive search of solutions for boolean equations' 'python2-pynormaliz: Normaliz backend for polyhedral computations'
+ 'three.js: alternative 3D plots engine' 'tachyon: alternative 3D plots engine')
makedepends=(cython2 boost ratpoints symmetrica python2-jinja coin-or-cbc libhomfly libbraiding
mcqd coxeter3 cryptominisat2 modular_decomposition bliss-graphs tdlib python2-pkgconfig meataxe git) # libfes
source=("git://git.sagemath.org/sage.git#branch=develop"
- env.patch skip-check.patch cython-sys-path.patch is-package-installed.patch package.patch disable-fes.patch
- jupyter-path.patch test-optional.patch ecm-7.patch increase-rtol.patch r-no-readline.patch)
+ env.patch skip-check.patch cython-sys-path.patch is-package-installed.patch package.patch
+ jupyter-path.patch test-optional.patch ecm-7.patch increase-rtol.patch r-no-readline.patch
+ sagemath-planarity3.patch fes02.patch)
sha256sums=('SKIP'
'9dba04ff13626a7b6c338a8b18a6c27d343f68a547a218533cf773af3dae6635'
'178074c0a22da4a8129ec299a6845aaae8cf3ef1da6f62b34f2ec0ed50c1e6a2'
'ff7e034d08ab084fdb193484f7fe3a659ebcd8ab33a2b7177237d65b26de7872'
'd60fb0fbd27991ce9496ca035a54b03334b5b53f244227a8d6e13f3327ce75d2'
'4a2297e4d9d28f0b3a1f58e1b463e332affcb109eafde44837b1657e309c8212'
- 'c9e2bfa91baf155cce1bee09c11b0214c20c38e4fc9f5e2d090da86564110327'
'889b65598d2a15e73eb482f543ec9b28d8992eeb57b07883c2e9627dfee15a9b'
'81d08c6a760f171f3381455b66a6c84789c9f0eefddbe6ca5794075514ad8c3a'
'06bc1e5b409e21d49fc71ef03e96ec35b7a9b524bfd1f81a2dbf5c64a55e5acf'
'1c068c524a2926ba222b36b0f4229a45c6f00c2225ffde0b0555e4e9659342d5'
- 'ef9f401fa84fe1772af9efee6816643534f2896da4c23b809937b19771bdfbbf')
+ 'ef9f401fa84fe1772af9efee6816643534f2896da4c23b809937b19771bdfbbf'
+ 'a1c562ebe4538d672404ca3ac2e954a3c955afeb7463f7b4fe6eaa6fa74fe5c7'
+ 'a39da083c038ada797ffc5bedc9ba47455a3f77057d42f86484ae877ef9172ea')
pkgver() {
cd sage
@@ -73,12 +76,12 @@ prepare(){
patch -p1 -i ../increase-rtol.patch
# fix freezes in R interface with readline 7 (Debian)
patch -p1 -i ../r-no-readline.patch
+# fix build with planarity 3 (Debian)
+ patch -p2 -i ../sagemath-planarity3.patch
# Upstream patches
# fix build against libfes 0.2 http://trac.sagemath.org/ticket/15209
-# patch -p0 -i ../fes02.patch
-# disable fes module, fails to compile
- patch -p0 -i ../disable-fes.patch
+ patch -p1 -i ../fes02.patch
# replace is_package_installed usage http://trac.sagemath.org/ticket/20377
patch -p1 -i ../is-package-installed.patch
diff --git a/disable-fes.patch b/disable-fes.patch
deleted file mode 100644
index 32ddd30065be..000000000000
--- a/disable-fes.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- src/module_list.py.orig 2015-06-07 11:29:30.710612146 +0200
-+++ src/module_list.py 2015-06-07 11:30:21.877506106 +0200
-@@ -584,11 +584,11 @@
- sources = ["sage/libs/ecl.pyx"],
- libraries = ["ecl"]),
-
-- OptionalExtension("sage.libs.fes",
-- ["sage/libs/fes.pyx"],
-- language = "c",
-- libraries = ['fes'],
-- package = 'fes'),
-+# OptionalExtension("sage.libs.fes",
-+# ["sage/libs/fes.pyx"],
-+# language = "c",
-+# libraries = ['fes'],
-+# package = 'fes'),
-
- Extension('sage.libs.flint.flint',
- sources = ["sage/libs/flint/flint.pyx"],
diff --git a/fes02.patch b/fes02.patch
new file mode 100644
index 000000000000..155d114b1cec
--- /dev/null
+++ b/fes02.patch
@@ -0,0 +1,57 @@
+From b1f5e3ecc789db674fe17552812f2d0e2ab84be0 Mon Sep 17 00:00:00 2001
+From: Charles Bouillaguet <charles.bouillaguet@lifl.fr>
+Date: Thu, 19 Sep 2013 10:31:11 +0200
+Subject: updating the libFES binding to match a change in the interface
+
+---
+ src/sage/libs/fes.pyx | 12 +++++++-----
+ 1 file changed, 7 insertions(+), 5 deletions(-)
+
+diff --git a/src/sage/libs/fes.pyx b/src/sage/libs/fes.pyx
+index 40b9c23..d188cf0 100644
+--- a/src/sage/libs/fes.pyx
++++ b/src/sage/libs/fes.pyx
+@@ -1,17 +1,19 @@
+ """
+-Binding for the FES library.
++Binding for the libFES library.
+
+ Finding solutions of systems of boolean equations by exhaustive
+ search, via the fes library. This is usually (much) faster than
+ computing a Groebner basis, except in special cases where the latter
+ is particularly easy.
+
+-The FES library is presently only able to deal with polynomials in 64
++More information is available at [http://www.lifl.fr/~bouillag/fes].
++
++The libFES library is presently only able to deal with polynomials in 64
+ variables. Performing a full exhaustive search over 64 variables will
+ take a **long** time. The number of variables can be artificially
+ reduced to 64 by specializing some of them.
+
+-Note that the FES library **requires** at least of the equations to be
++Note that the libFES library **requires** at least of the equations to be
+ non-linear.
+
+ AUTHORS:
+@@ -71,7 +73,7 @@ from libc.stdint cimport uint64_t
+ 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)
+
+
+ include 'sage/ext/interrupt.pxi' #sig_on(), sig_off()
+@@ -219,7 +221,7 @@ def exhaustive_search(eqs, max_sols=Infinity, verbose=False):
+
+ # ------- 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
+--
+cgit v1.0-1-gd88e
+
diff --git a/sagemath-planarity3.patch b/sagemath-planarity3.patch
new file mode 100644
index 000000000000..6076008794f0
--- /dev/null
+++ b/sagemath-planarity3.patch
@@ -0,0 +1,113 @@
+Author: Ximin Luo <infinity0@debian.org>
+Bug: https://trac.sagemath.org/ticket/21774
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/sage/src/sage/graphs/planarity.pyx
++++ b/sage/src/sage/graphs/planarity.pyx
+@@ -3,13 +3,19 @@
+ """
+
+ cdef extern from "planarity/graph.h":
+- ctypedef struct graphNode:
+- int v
++ ctypedef struct vertexRec:
+ int link[2]
+- ctypedef graphNode * graphNodeP
++ int index
++ ctypedef vertexRec * vertexRecP
++
++ ctypedef struct edgeRec:
++ int link[2]
++ int neighbor
++ ctypedef edgeRec * edgeRecP
+
+ ctypedef struct BM_graph:
+- graphNodeP G
++ vertexRecP V
++ edgeRecP E
+ int N
+ ctypedef BM_graph * graphP
+
+@@ -93,15 +99,16 @@
+ g._pos = { u: [0,0], v: [0,1] }
+ return (True, None) if kuratowski else True
+
+- # create to and from mappings to relabel vertices to the set {0,...,n-1}
++ # create to and from mappings to relabel vertices to the set {1,...,n}
++ # (planarity 3 uses 1-based array indexing, with 0 representing NIL)
+ cdef int i
+ listto = g.vertices()
+ ffrom = {}
+ for vvv in listto:
+- ffrom[vvv] = listto.index(vvv)
++ ffrom[vvv] = listto.index(vvv) + 1
+ to = {}
+ for i from 0 <= i < len(listto):
+- to[i] = listto[i]
++ to[i + 1] = listto[i]
+ g.relabel(ffrom)
+
+ cdef graphP theGraph
+@@ -125,7 +132,7 @@
+ status = gp_Embed(theGraph, EMBEDFLAGS_PLANAR)
+ gp_SortVertices(theGraph)
+
+- # use to and from mappings to relabel vertices back from the set {0,...,n-1}
++ # use to and from mappings to relabel vertices back from the set {1,...,n}
+ g.relabel(to)
+
+ if status == NOTOK:
+@@ -134,12 +141,12 @@
+ # Kuratowski subgraph isolator
+ g_dict = {}
+ from sage.graphs.graph import Graph
+- for i from 0 <= i < theGraph.N:
++ for i from 0 < i <= theGraph.N:
+ linked_list = []
+- j = theGraph.G[i].link[1]
+- while j >= theGraph.N:
+- linked_list.append(to[theGraph.G[j].v])
+- j = theGraph.G[j].link[1]
++ j = theGraph.V[i].link[1]
++ while j:
++ linked_list.append(to[theGraph.E[j].neighbor])
++ j = theGraph.E[j].link[1]
+ if len(linked_list) > 0:
+ g_dict[to[i]] = linked_list
+ G = Graph(g_dict)
+@@ -153,12 +160,12 @@
+ if set_embedding:
+ emb_dict = {}
+ #for i in range(theGraph.N):
+- for i from 0 <= i < theGraph.N:
++ for i from 0 < i <= theGraph.N:
+ linked_list = []
+- j = theGraph.G[i].link[1]
+- while j >= theGraph.N:
+- linked_list.append(to[theGraph.G[j].v])
+- j = theGraph.G[j].link[1]
++ j = theGraph.V[i].link[1]
++ while j:
++ linked_list.append(to[theGraph.E[j].neighbor])
++ j = theGraph.E[j].link[1]
+ emb_dict[to[i]] = linked_list
+ g._embedding = emb_dict
+ if set_pos:
+@@ -174,12 +181,12 @@
+
+ emb_dict = {}
+ #for i in range(theGraph.N):
+- for i from 0 <= i < theGraph.N:
++ for i from 0 < i <= theGraph.N:
+ linked_list = []
+- j = theGraph.G[i].link[0]
+- while j >= theGraph.N:
+- linked_list.append(to[theGraph.G[j].v])
+- j = theGraph.G[j].link[0]
++ j = theGraph.V[i].link[0]
++ while j:
++ linked_list.append(to[theGraph.E[j].neighbor])
++ j = theGraph.E[j].link[0]
+ emb_dict[to[i]] = linked_list
+ g._embedding = emb_dict
+ gp_Free(&theGraph)