diff options
-rw-r--r-- | .SRCINFO | 15 | ||||
-rw-r--r-- | PKGBUILD | 23 | ||||
-rw-r--r-- | disable-fes.patch | 19 | ||||
-rw-r--r-- | fes02.patch | 57 | ||||
-rw-r--r-- | sagemath-planarity3.patch | 113 |
5 files changed, 194 insertions, 33 deletions
@@ -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 @@ -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) |