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

Antonio Rojas arojas at archlinux.org
Mon May 16 07:38:21 UTC 2016


    Date: Monday, May 16, 2016 @ 09:38:21
  Author: arojas
Revision: 175469

archrelease: copy trunk to community-testing-any

Added:
  sagemath-doc/repos/community-testing-any/
  sagemath-doc/repos/community-testing-any/PKGBUILD
    (from rev 175468, sagemath-doc/trunk/PKGBUILD)
  sagemath-doc/repos/community-testing-any/disable-fes.patch
    (from rev 175468, sagemath-doc/trunk/disable-fes.patch)
  sagemath-doc/repos/community-testing-any/docbuild_main.patch
    (from rev 175468, sagemath-doc/trunk/docbuild_main.patch)
  sagemath-doc/repos/community-testing-any/linbox-1.4.patch
    (from rev 175468, sagemath-doc/trunk/linbox-1.4.patch)
  sagemath-doc/repos/community-testing-any/package.patch
    (from rev 175468, sagemath-doc/trunk/package.patch)
  sagemath-doc/repos/community-testing-any/paths.patch
    (from rev 175468, sagemath-doc/trunk/paths.patch)

---------------------+
 PKGBUILD            |  104 +++++++++++
 disable-fes.patch   |   19 ++
 docbuild_main.patch |    8 
 linbox-1.4.patch    |  470 ++++++++++++++++++++++++++++++++++++++++++++++++++
 package.patch       |   11 +
 paths.patch         |   39 ++++
 6 files changed, 651 insertions(+)

Copied: sagemath-doc/repos/community-testing-any/PKGBUILD (from rev 175468, sagemath-doc/trunk/PKGBUILD)
===================================================================
--- community-testing-any/PKGBUILD	                        (rev 0)
+++ community-testing-any/PKGBUILD	2016-05-16 07:38:21 UTC (rev 175469)
@@ -0,0 +1,104 @@
+# $Id$
+# Maintainer: Antonio Rojas <arojas at archlinux.org>
+
+pkgbase=sagemath-doc
+pkgname=(sagemath-doc sagemath-src)
+pkgver=7.2
+pkgrel=1
+arch=(any)
+url="http://www.sagemath.org"
+license=(GPL)
+makedepends=(sagemath sage-notebook python2-pyzmq python2-pillow python2-docutils ipython2-notebook python2-pkgconfig cython2 python2-sphinx)
+source=("$pkgbase-$pkgver.tar.gz::https://github.com/sagemath/sage/archive/$pkgver.tar.gz"
+	package.patch paths.patch disable-fes.patch docbuild_main.patch linbox-1.4.patch)
+md5sums=('2afeb8f75a33107fef5d509698c0eabc'
+         '9ba81f717ffd4e20b8b2f2a318307488'
+         '1a60304525ac5a5f45114cc704807894'
+         '4eb23a3c7363258bc9ba764d6e5512ba'
+         'f3bf3fa4e11e5af2bd0573cf2620e1f8'
+         '9f1cef3e477bafebe2ad301db56db8a2')
+
+prepare() {
+  cd sage-$pkgver
+
+# Arch-specific patches
+# assume all optional packages are installed
+  patch -p0 -i ../package.patch
+# fix paths in python imports
+  patch -p0 -i ../paths.patch
+# supress warning about GAP install dir
+  sed -e "s|gapdir = os.path.join(SAGE_LOCAL, 'gap', 'latest')|gapdir = '/usr/lib/gap'|" -i src/sage/libs/gap/util.pyx 
+# fix Cremona database detection
+  sed -e "s|is_package_installed('database_cremona_ellcurve')|os.path.exists('/usr/share/sage/cremona/cremona.db')|" \
+   -i src/sage/databases/cremona.py
+# fix lrs detection
+  sed -e "s|is_package_installed('lrslib')|os.path.exists('/usr/bin/lrs')|g" -i src/sage/geometry/polyhedron/base.py \
+   -i src/sage/game_theory/normal_form_game.py
+# find bliss headers
+  sed -e 's|graph.hh|bliss/graph.hh|' -i src/sage/graphs/bliss.pyx
+
+# Upstream patches
+# fix build against libfes 0.2 http://trac.sagemath.org/ticket/15209
+#  patch -p0 -i ../fes02.patch
+# disable fes module, fails to build
+  patch -p0 -i ../disable-fes.patch
+# port to new fflas-ffpack/givaro/linbox http://trac.sagemath.org/ticket/17635
+  patch -p1 -i ../linbox-1.4.patch
+
+# fix relative imports
+  patch -p0 -i ../docbuild_main.patch
+
+# use python2
+  sed -e 's|cython %s %s|cython2 %s %s|' -e 's|python setup.py|python2 setup.py|' -i src/sage/misc/cython.py
+
+  mkdir local-python
+  ln -sr src/sage_setup local-python
+}
+
+build() {
+  cd sage-$pkgver/src
+
+  export SAGE_LOCAL="/usr"
+  export SAGE_SRC="$PWD"
+  export SAGE_DOC_SRC="$SAGE_SRC"/doc
+  export SAGE_DOC="$SAGE_SRC"/doc
+  export SAGE_DOC_MATHJAX=yes
+  export PYTHONPATH="$srcdir/sage-$pkgver/local-python"
+  python2 sage_setup/docbuild --no-pdf-links -k all html
+}
+
+package_sagemath-doc() {
+  pkgdesc="HTML documentation and inline help for SageMath"
+  depends=(sage-notebook python2-sphinx)
+  conflicts=(sage-mathematics-doc)
+  replaces=(sage-mathematics-doc)
+
+  cd sage-$pkgver/src/doc
+ 
+  mkdir -p "$pkgdir"/usr/share/doc/sage/en
+  cp -r en/introspect "$pkgdir"/usr/share/doc/sage/en
+  cp -r common "$pkgdir"/usr/share/doc/sage
+  cp -r html "$pkgdir"/usr/share/doc/sage
+
+# Replace duplicated files by symlinks (Gentoo)
+  cd "$pkgdir"/usr/share/doc/sage
+  mv html/en/_static{,.tmp}
+  for _dir in `find -name _static` ; do
+        rm -r $_dir
+        ln -s /usr/share/doc/sage/html/en/_static $_dir
+  done
+  mv html/en/_static{.tmp,}
+}
+
+package_sagemath-src() {
+  pkgdesc="Source files for SageMath"
+  conflicts=(sage-mathematics-src)
+  replaces=(sage-mathematics-src)
+  
+  mkdir -p "$pkgdir"/usr/share/sage/source
+  cp -r sage-$pkgver/src/{sage,sage_setup} "$pkgdir"/usr/share/sage/source
+  ln -s /usr/share/doc/sage/html "$pkgdir"/usr/share/sage/source/doc
+
+# remove developer interface
+  rm -r "$pkgdir"/usr/share/sage/source/sage/dev
+}

Copied: sagemath-doc/repos/community-testing-any/disable-fes.patch (from rev 175468, sagemath-doc/trunk/disable-fes.patch)
===================================================================
--- community-testing-any/disable-fes.patch	                        (rev 0)
+++ community-testing-any/disable-fes.patch	2016-05-16 07:38:21 UTC (rev 175469)
@@ -0,0 +1,19 @@
+--- 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
+@@ -685,11 +685,11 @@
+               include_dirs = [SAGE_INC + '/ecl'],
+               depends = [SAGE_INC + '/ecl/ecl.h']),
+ 
+-    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"],

Copied: sagemath-doc/repos/community-testing-any/docbuild_main.patch (from rev 175468, sagemath-doc/trunk/docbuild_main.patch)
===================================================================
--- community-testing-any/docbuild_main.patch	                        (rev 0)
+++ community-testing-any/docbuild_main.patch	2016-05-16 07:38:21 UTC (rev 175469)
@@ -0,0 +1,8 @@
+--- src/sage_setup/docbuild/__main__.py.orig
++++ src/sage_setup/docbuild/__main__.py
+@@ -1,3 +1,3 @@
+-from . import main
++from sage_setup.docbuild import main
+ main()
+ 
+ # Remove old documentation

Copied: sagemath-doc/repos/community-testing-any/linbox-1.4.patch (from rev 175468, sagemath-doc/trunk/linbox-1.4.patch)
===================================================================
--- community-testing-any/linbox-1.4.patch	                        (rev 0)
+++ community-testing-any/linbox-1.4.patch	2016-05-16 07:38:21 UTC (rev 175469)
@@ -0,0 +1,470 @@
+diff --git a/src/module_list.py b/src/module_list.py
+index a49ed36..7798cb8 100644
+--- a/src/module_list.py
++++ b/src/module_list.py
+@@ -27,6 +27,18 @@ lapack_libs = list(lapack_pc['libraries'])
+ lapack_library_dirs = list(lapack_pc['library_dirs'])
+ lapack_include_dirs = list(lapack_pc['include_dirs'])
+ 
++# FFLAS-FFPACK
++fflas_ffpack_pc = pkgconfig.parse('fflas-ffpack')
++fflas_ffpack_libs = list(fflas_ffpack_pc['libraries'])
++fflas_ffpack_library_dirs = list(fflas_ffpack_pc['library_dirs'])
++fflas_ffpack_cflags = pkgconfig.cflags('fflas-ffpack').split()
++
++# Givaro
++givaro_pc = pkgconfig.parse('givaro')
++givaro_libs = list(givaro_pc['libraries'])
++givaro_library_dirs = list(givaro_pc['library_dirs'])
++givaro_cflags = pkgconfig.cflags('givaro').split()
++
+ # GNU Scientific Library
+ # Note we replace the built-in gslcblas with the above cblas
+ gsl_pc = pkgconfig.parse('gsl')
+@@ -40,6 +52,12 @@ gd_libs = list(gd_pc['libraries'])
+ gd_library_dirs = list(gd_pc['library_dirs'])
+ gd_include_dirs = list(gd_pc['include_dirs'])
+ 
++# LinBox
++linbox_pc = pkgconfig.parse('linbox')
++linbox_libs = list(linbox_pc['libraries'])
++linbox_library_dirs = list(linbox_pc['library_dirs'])
++linbox_cflags = pkgconfig.cflags('linbox').split()
++
+ # PNG image library
+ png_pc = pkgconfig.parse('libpng')
+ png_libs = list(png_pc['libraries'])
+@@ -58,9 +76,18 @@ zlib_include_dirs = list(zlib_pc['include_dirs'])
+ #########################################################
+ 
+ aliases = dict(
++    FFLASFFPACK_CFLAGS=fflas_ffpack_cflags,
++    FFLASFFPACK_LIBRARIES=fflas_ffpack_libs,
++    FFLASFFPACK_LIBDIR=fflas_ffpack_library_dirs,
++    GIVARO_CFLAGS=givaro_cflags,
++    GIVARO_LIBRARIES=givaro_libs,
++    GIVARO_LIBDIR=givaro_library_dirs,
+     GSL_LIBRARIES=gsl_libs,
+     GSL_LIBDIR=gsl_library_dirs,
+     GSL_INCDIR=gsl_include_dirs,
++    LINBOX_CFLAGS=linbox_cflags,
++    LINBOX_LIBRARIES=linbox_libs,
++    LINBOX_LIBDIR=linbox_library_dirs,
+ )
+ 
+ #########################################################
+@@ -85,12 +112,6 @@ except ValueError:
+ singular_libs = ['singular', 'flint', 'ntl', 'gmpxx', 'gmp', 'readline', 'm']
+ 
+ #########################################################
+-### Givaro flags
+-#########################################################
+-
+-givaro_extra_compile_args =['-D__STDC_LIMIT_MACROS']
+-
+-#########################################################
+ ### Library order
+ #########################################################
+ 
+@@ -105,8 +126,7 @@ givaro_extra_compile_args =['-D__STDC_LIMIT_MACROS']
+ # at the very end of the list.
+ library_order_list = [
+     "singular", "ec", "ecm",
+-    "linboxsage", "ntl", "iml", "linbox", "givaro",
+-] + gsl_libs + [
++] + linbox_libs  + gsl_libs + [
+     "pari", "flint", "ratpoints", "ecl", "glpk", "ppl",
+     "arb", "fplll", "mpfi", "mpfr", "mpc", "gmp", "gmpxx",
+     "polybori",
+@@ -593,13 +613,10 @@ ext_modules = [
+ 
+     Extension('sage.libs.linbox.linbox',
+               sources = ['sage/libs/linbox/linbox.pyx'],
+-              libraries = ['linboxsage', 'ntl', 'iml', 'linbox',
+-                           'givaro', 'mpfr', 'gmp', 'gmpxx'] + cblas_libs,
++              libraries = linbox_libs,
+               language = 'c++',
+               library_dirs = cblas_library_dirs,
+-              include_dirs = cblas_include_dirs,
+-              extra_compile_args = givaro_extra_compile_args,
+-              depends = [os.path.join(SAGE_INC, 'givaro', 'givconfig.h')]),
++              include_dirs = cblas_include_dirs),
+ 
+     Extension('sage.libs.lcalc.lcalc_Lfunction',
+               sources = ['sage/libs/lcalc/lcalc_Lfunction.pyx'],
+@@ -645,9 +662,8 @@ ext_modules = [
+ 
+     Extension('sage.libs.singular.singular',
+               sources = ['sage/libs/singular/singular.pyx'],
+-              libraries = ['givaro'] + singular_libs,
+-              language="c++",
+-              extra_compile_args = givaro_extra_compile_args),
++              libraries = singular_libs,
++              language="c++"),
+ 
+     Extension('sage.libs.singular.polynomial',
+               sources = ['sage/libs/singular/polynomial.pyx'],
+@@ -667,8 +683,7 @@ ext_modules = [
+     Extension('sage.libs.singular.function',
+               sources = ['sage/libs/singular/function.pyx'],
+               libraries = singular_libs,
+-              language="c++",
+-              extra_compile_args = givaro_extra_compile_args),
++              language="c++"),
+ 
+     Extension('sage.libs.singular.option',
+               sources = ['sage/libs/singular/option.pyx'],
+@@ -923,19 +938,17 @@ ext_modules = [
+     Extension('sage.matrix.matrix_modn_dense_float',
+               sources = ['sage/matrix/matrix_modn_dense_float.pyx'],
+               language="c++",
+-              libraries = ['ntl', 'linbox', 'givaro', 'mpfr', 'gmpxx', 'gmp'] + cblas_libs,
++              libraries = linbox_libs + cblas_libs,
+               library_dirs = cblas_library_dirs,
+-              include_dirs = cblas_include_dirs,
+-              extra_compile_args = ['-DDISABLE_COMMENTATOR'] + givaro_extra_compile_args),
++              include_dirs = cblas_include_dirs),
+ 
+     Extension('sage.matrix.matrix_modn_dense_double',
+               sources = ['sage/matrix/matrix_modn_dense_double.pyx'],
+               language="c++",
+-              libraries = ['ntl', 'linbox', 'givaro', 'mpfr', 'gmpxx', 'gmp'] + cblas_libs,
++              libraries = linbox_libs + cblas_libs,
+               library_dirs = cblas_library_dirs,
+               include_dirs = cblas_include_dirs,
+-              extra_compile_args = ["-D_XPG6", "-DDISABLE_COMMENTATOR"]
+-                    + m4ri_extra_compile_args + givaro_extra_compile_args),
++              extra_compile_args = ["-D_XPG6"]),
+ 
+     Extension('sage.matrix.matrix_modn_sparse',
+               sources = ['sage/matrix/matrix_modn_sparse.pyx']),
+@@ -1374,8 +1387,7 @@ ext_modules = [
+     Extension('sage.rings.finite_rings.element_givaro',
+               sources = ["sage/rings/finite_rings/element_givaro.pyx"],
+               libraries = ['givaro', 'ntl', 'gmpxx', 'gmp', 'm'],
+-              language='c++',
+-              extra_compile_args = givaro_extra_compile_args),
++              language='c++'),
+ 
+     Extension('sage.rings.finite_rings.element_ntl_gf2e',
+               sources = ['sage/rings/finite_rings/element_ntl_gf2e.pyx'],
+@@ -1395,8 +1407,7 @@ ext_modules = [
+               sources = ["sage/rings/finite_rings/hom_finite_field_givaro.pyx"],
+               # this order is needed to compile under windows.
+               libraries = ['givaro', 'ntl', 'gmpxx', 'gmp', 'm'],
+-              language='c++',
+-              extra_compile_args = givaro_extra_compile_args),
++              language='c++'),
+ 
+     ################################
+     ##
+@@ -1548,8 +1559,7 @@ ext_modules = [
+     Extension('sage.rings.polynomial.plural',
+               sources = ['sage/rings/polynomial/plural.pyx'],
+               libraries = ['m', 'readline', 'singular', 'givaro', 'gmpxx', 'gmp'],
+-              language="c++",
+-              extra_compile_args = givaro_extra_compile_args),
++              language="c++"),
+ 
+     Extension('sage.rings.polynomial.multi_polynomial_libsingular',
+               sources = ['sage/rings/polynomial/multi_polynomial_libsingular.pyx'],
+diff --git a/src/sage/libs/linbox/echelonform.pxd b/src/sage/libs/linbox/echelonform.pxd
+index 3097c8b..cf4902d 100644
+--- a/src/sage/libs/linbox/echelonform.pxd
++++ b/src/sage/libs/linbox/echelonform.pxd
+@@ -1,23 +1,27 @@
++# distutils: extra_compile_args = LINBOX_CFLAGS
++# distutils: libraries = LINBOX_LIBRARIES
++# distutils: library_dirs = LINBOX_LIBDIR
++
+ from sage.libs.linbox.modular cimport ModDoubleField, ModDoubleFieldElement, ModFloatField, ModFloatFieldElement
+ from libc.stdint cimport uint64_t
+ 
+-cdef extern from "linbox/matrix/blas-matrix.h" namespace "LinBox":
+-    cdef cppclass BlasMatrixDouble "LinBox::BlasMatrix<LinBox::Modular<double> >":
++cdef extern from "linbox/matrix/dense-matrix.h" namespace "LinBox":
++    cdef cppclass BlasMatrixDouble "LinBox::DenseMatrix<Givaro::Modular<double> >":
+         BlasMatrixDouble(ModDoubleField F, uint64_t nrows, uint64_t ncols)
+         void setEntry(size_t i, size_t j, ModDoubleFieldElement t)
+         ModDoubleFieldElement &getEntry(size_t i, size_t j)
+ 
+-    cdef cppclass BlasMatrixFloat "LinBox::BlasMatrix<LinBox::Modular<float> >":
++    cdef cppclass BlasMatrixFloat "LinBox::DenseMatrix<Givaro::Modular<float> >":
+         BlasMatrixFloat(ModFloatField F, uint64_t nrows, uint64_t ncols)
+         void setEntry(size_t i, size_t j, ModFloatFieldElement t)
+         ModFloatFieldElement &getEntry(size_t i, size_t j)
+ 
+ cdef extern from "linbox/algorithms/echelon-form.h":
+-    cdef cppclass EchelonFormDomainDouble "LinBox::EchelonFormDomain<LinBox::Modular<double> >":
++    cdef cppclass EchelonFormDomainDouble "LinBox::EchelonFormDomain<Givaro::Modular<double> >":
+         EchelonFormDomainDouble(ModDoubleField)
+         int rowReducedEchelon(BlasMatrixDouble, BlasMatrixDouble)
+ 
+-    cdef cppclass EchelonFormDomainFloat "LinBox::EchelonFormDomain<LinBox::Modular<float> >":
++    cdef cppclass EchelonFormDomainFloat "LinBox::EchelonFormDomain<Givaro::Modular<float> >":
+         EchelonFormDomainFloat(ModFloatField)
+         int rowReducedEchelon(BlasMatrixFloat, BlasMatrixFloat)
+ 
+diff --git a/src/sage/libs/linbox/fflas.pxd b/src/sage/libs/linbox/fflas.pxd
+index e102004..01ab1b1 100644
+--- a/src/sage/libs/linbox/fflas.pxd
++++ b/src/sage/libs/linbox/fflas.pxd
+@@ -1,3 +1,7 @@
++# distutils: extra_compile_args = FFLASFFPACK_CFLAGS
++# distutils: libraries = FFLASFFPACK_LIBRARIES
++# distutils: library_dirs = FFLASFFPACK_LIBDIR
++
+ from modular cimport ModDoubleField, ModFloatField, ModDoubleFieldElement, ModFloatFieldElement
+ 
+ cdef extern from "fflas-ffpack/fflas-ffpack.h" namespace "std":
+diff --git a/src/sage/libs/linbox/linbox.pyx b/src/sage/libs/linbox/linbox.pyx
+index e932347..a9bd6d1 100644
+--- a/src/sage/libs/linbox/linbox.pyx
++++ b/src/sage/libs/linbox/linbox.pyx
+@@ -1,3 +1,7 @@
++# distutils: extra_compile_args = LINBOX_CFLAGS
++# distutils: libraries = LINBOX_LIBRARIES
++# distutils: library_dirs = LINBOX_LIBDIR
++
+ r"""
+ Linbox interface
+ """
+diff --git a/src/sage/libs/linbox/modular.pxd b/src/sage/libs/linbox/modular.pxd
+index 7ef204c..ea5fb29 100644
+--- a/src/sage/libs/linbox/modular.pxd
++++ b/src/sage/libs/linbox/modular.pxd
+@@ -1,10 +1,10 @@
+-cdef extern from "linbox/field/modular.h":
++cdef extern from "givaro/modular.h":
+     # double
+ 
+-    cdef cppclass ModDoubleFieldElement "LinBox::Modular<double>::Element":
++    cdef cppclass ModDoubleFieldElement "Givaro::Modular<double>::Element":
+         pass
+ 
+-    cdef cppclass ModDoubleField "LinBox::Modular<double>":
++    cdef cppclass ModDoubleField "Givaro::Modular<double>":
+         ModDoubleField(int modulus)
+         ModDoubleFieldElement init(ModDoubleFieldElement res, int v)
+         ModDoubleFieldElement init(ModDoubleFieldElement res, double v)
+@@ -20,10 +20,10 @@ cdef extern from "linbox/field/modular.h":
+ 
+ 
+     # float
+-    cdef cppclass ModFloatFieldElement "LinBox::Modular<float>::Element":
++    cdef cppclass ModFloatFieldElement "Givaro::Modular<float>::Element":
+         pass
+ 
+-    cdef cppclass ModFloatField "LinBox::Modular<float>":
++    cdef cppclass ModFloatField "Givaro::Modular<float>":
+         ModFloatField(int modulus)
+         ModFloatFieldElement init(ModFloatFieldElement res, int v)
+         ModFloatFieldElement init(ModFloatFieldElement res, double v)
+diff --git a/src/sage/libs/singular/singular.pyx b/src/sage/libs/singular/singular.pyx
+index 33d7f7ec..77f6e0a 100644
+--- a/src/sage/libs/singular/singular.pyx
++++ b/src/sage/libs/singular/singular.pyx
+@@ -22,6 +22,7 @@ cdef extern from "limits.h":
+ 
+ import os
+ 
++from libc.stdint cimport int64_t
+ from sage.libs.singular.decl cimport intvec
+ from sage.libs.singular.decl cimport SR_HDL, SR_INT, SR_TO_INT
+ from sage.libs.singular.decl cimport singular_options, singular_verbose_options
+@@ -155,7 +156,7 @@ cdef FFgivE si2sa_GFqGivaro(number *n, ring *_ring, Cache_givaro cache):
+     order = cache.objectptr.cardinality() - 1
+ 
+     while z:
+-        c = cache.objectptr.initi(c, <long>napGetCoeff(z))
++        c = cache.objectptr.initi(c, <int64_t>napGetCoeff(z))
+         e = napGetExpFrom(z,1, _ring)
+         if e == 0:
+             ret = cache.objectptr.add(ret, c, ret)
+diff --git a/src/sage/rings/finite_rings/element_givaro.pxd b/src/sage/rings/finite_rings/element_givaro.pxd
+index 68def46..91c4ed7 100644
+--- a/src/sage/rings/finite_rings/element_givaro.pxd
++++ b/src/sage/rings/finite_rings/element_givaro.pxd
+@@ -1,9 +1,15 @@
+-from sage.structure.element cimport Element, RingElement, ModuleElement
+-from sage.rings.finite_rings.element_base cimport FinitePolyExtElement
++# distutils: extra_compile_args = GIVARO_CFLAGS
++
++from libcpp.vector cimport vector
++ctypedef vector[int] intvec
++
++from libc.stdint cimport int64_t
+ 
+-from sage.structure.parent  cimport Parent
++from sage.rings.finite_rings.element_base cimport FinitePolyExtElement
++from sage.structure.parent cimport Parent
+ from sage.structure.sage_object cimport SageObject
+ 
++
+ cdef extern from "givaro/givconfig.h":
+     pass
+ 
+@@ -13,16 +19,7 @@ cdef extern from "givaro/givrandom.h":
+ 
+     GivRandom GivRandomSeeded  "Givaro::GivRandom"(unsigned long seed)
+ 
+-cdef extern from "givaro/givgfq.h":
+-    ctypedef struct intvec "std::vector<unsigned int>":
+-        void (* push_back)(int elem)
+-
+-    ctypedef struct constintvec "const std::vector<unsigned int>"
+-
+-    intvec intvec_factory "std::vector<unsigned int>"(int len)
+-
+-cdef extern from "givaro/givgfq.h":
+-
++cdef extern from "givaro/gfq.h":
+     ctypedef struct GivaroGfq "Givaro::GFqDom<int>":
+         #attributes
+         unsigned int one
+@@ -40,10 +37,10 @@ cdef extern from "givaro/givgfq.h":
+         unsigned int (* cardinality)()
+         int (* exponent)()
+         int (* random)(GivRandom gen, int res)
+-        int (* initi "init")(int res, int e)
++        int (* initi "init")(int res, int64_t e)
+         int (* initd "init")(int res, double e)
+         int (* indeterminate)()
+-        int (* convert)(int r, int p)
++        int (* convert)(int64_t r, int p)
+         int (* read)(int r, int p)
+         int (* axpyin)(int r, int a, int x)
+         int (* axpy)(int r, int a, int b, int c)
+@@ -60,7 +57,12 @@ cdef extern from "givaro/givgfq.h":
+     void delete "delete "(void *o)
+     int gfq_element_factory "Givaro::GFqDom<int>::Element"()
+ 
+-cdef class FiniteField_givaroElement(FinitePolyExtElement) #forward declaration
++
++cdef class FiniteField_givaroElement(FinitePolyExtElement):
++    cdef int element
++    cdef Cache_givaro _cache
++    cdef object _multiplicative_order
++    cdef FiniteField_givaroElement _new_c(self, int value)
+ 
+ cdef class Cache_givaro(SageObject):
+     cdef GivaroGfq *objectptr # C++ object
+@@ -85,11 +87,4 @@ cdef class FiniteField_givaro_iterator:
+     cdef int iterator
+     cdef Cache_givaro _cache
+ 
+-cdef class FiniteField_givaroElement(FinitePolyExtElement):
+-    cdef int element
+-    cdef Cache_givaro _cache
+-    cdef object _multiplicative_order
+-    cdef FiniteField_givaroElement _new_c(self, int value)
+-
+-
+ cdef inline FiniteField_givaroElement make_FiniteField_givaroElement(Cache_givaro cache, int x)
+diff --git a/src/sage/rings/finite_rings/element_givaro.pyx b/src/sage/rings/finite_rings/element_givaro.pyx
+index d32b5cf..f2afa44 100644
+--- a/src/sage/rings/finite_rings/element_givaro.pyx
++++ b/src/sage/rings/finite_rings/element_givaro.pyx
+@@ -58,8 +58,9 @@ from sage.misc.randstate cimport randstate, current_randstate
+ from sage.rings.finite_rings.finite_field_base cimport FiniteField
+ from sage.rings.ring cimport Ring
+ from element_ext_pari import FiniteField_ext_pariElement
+-from element_pari_ffelt import FiniteFieldElement_pari_ffelt
++from element_pari_ffelt cimport FiniteFieldElement_pari_ffelt
+ from sage.structure.sage_object cimport SageObject
++from sage.structure.element cimport Element, ModuleElement, RingElement
+ import operator
+ import sage.arith.all
+ import finite_field_constructor as finite_field
+@@ -373,18 +374,16 @@ cdef class Cache_givaro(SageObject):
+         elif isinstance(e, int) or \
+              isinstance(e, Integer) or \
+              isinstance(e, long) or is_IntegerMod(e):
+-            try:
+-                e_int = e
+-            except OverflowError:
+-                e_int = e % self.characteristic()
++            e_int = e % self.characteristic()
+             res = self.objectptr.initi(res, e_int)
+ 
+         elif e is None:
+             e_int = 0
+-            res = self.objectptr.initi(res,e_int)
++            res = self.objectptr.initi(res, e_int)
+ 
+         elif isinstance(e, float):
+-            res = self.objectptr.initd(res,e)
++            e_int = int(e) % self.characteristic()
++            res = self.objectptr.initd(res, e_int)
+ 
+         elif isinstance(e, str):
+             return self.parent(eval(e.replace("^","**"),self.parent.gens_dict()))
+@@ -394,8 +393,8 @@ cdef class Cache_givaro(SageObject):
+                 raise TypeError, "e.parent must match self.vector_space"
+             ret = self._zero_element
+             for i in range(len(e)):
+-                e_entry = e[i] % self.characteristic()
+-                res = self.objectptr.initi(res, int(e_entry))
++                e_int = e[i] % self.characteristic()
++                res = self.objectptr.initi(res, e_int)
+                 to_add = make_FiniteField_givaroElement(self, res)
+                 ret = ret + to_add*self.parent.gen()**i
+             return ret
+@@ -434,8 +433,8 @@ cdef class Cache_givaro(SageObject):
+                 raise ValueError, "list is too long"
+             ret = self._zero_element
+             for i in range(len(e)):
+-                e_entry = e[i] % self.characteristic()
+-                res = self.objectptr.initi(res, int(e_entry))
++                e_int = e[i] % self.characteristic()
++                res = self.objectptr.initi(res, e_int)
+                 to_add = make_FiniteField_givaroElement(self, res)
+                 ret = ret + to_add*self.parent.gen()**i
+             return ret
+@@ -572,19 +571,17 @@ cdef class Cache_givaro(SageObject):
+         cdef int ret = k.zero
+         cdef int a = k.indeterminate()
+         cdef int at = k.one
+-        cdef unsigned int ch = k.characteristic()
+-        cdef int _n, t, i
++        cdef int ch = k.characteristic()
++        cdef int t, i
+ 
+         if n<0 or n>k.cardinality():
+             raise TypeError, "n must be between 0 and self.order()"
+ 
+-        _n = n
+-
+         for i from 0 <= i < k.exponent():
+-            t = k.initi(t, _n%ch)
++            t = k.initi(t, n % ch)
+             ret = k.axpy(ret, t, at, ret)
+             at = k.mul(at,at,a)
+-            _n = _n/ch
++            n //= ch
+         return make_FiniteField_givaroElement(self, ret)
+ 
+     def _element_repr(self, FiniteField_givaroElement e):
+diff --git a/src/sage/rings/finite_rings/finite_field_givaro.py b/src/sage/rings/finite_rings/finite_field_givaro.py
+index adbaab3..c431f6d 100644
+--- a/src/sage/rings/finite_rings/finite_field_givaro.py
++++ b/src/sage/rings/finite_rings/finite_field_givaro.py
+@@ -269,7 +269,8 @@ class FiniteField_givaro(FiniteField):
+             sage: k(2) # indirect doctest
+             0
+ 
+-            Floats coerce in:
++        Floats are converted like integers::
++
+             sage: k(float(2.0))
+             0
+ 
+@@ -343,7 +344,7 @@ class FiniteField_givaro(FiniteField):
+             sage: k(pari('Mod(1,2)'))
+             1
+             sage: k(pari('Mod(2,3)'))
+-            0
++            a
+             sage: k(pari('Mod(1,3)*a^20'))
+             a^7 + a^5 + a^4 + a^2
+ 

Copied: sagemath-doc/repos/community-testing-any/package.patch (from rev 175468, sagemath-doc/trunk/package.patch)
===================================================================
--- community-testing-any/package.patch	                        (rev 0)
+++ community-testing-any/package.patch	2016-05-16 07:38:21 UTC (rev 175469)
@@ -0,0 +1,11 @@
+--- src/sage/misc/package.py.orig	2014-11-23 15:58:13.000000000 +0100
++++ src/sage/misc/package.py	2015-01-22 20:32:25.651383902 +0100
+@@ -204,7 +204,7 @@
+     Otherwise, installing "pillow" will cause this function to think
+     that "pil" is installed, for example.
+     """
+-    return any(p.split('-')[0] == package for p in installed_packages())
++    return True
+ 
+ def package_versions(package_type, local=False):
+     r"""

Copied: sagemath-doc/repos/community-testing-any/paths.patch (from rev 175468, sagemath-doc/trunk/paths.patch)
===================================================================
--- community-testing-any/paths.patch	                        (rev 0)
+++ community-testing-any/paths.patch	2016-05-16 07:38:21 UTC (rev 175469)
@@ -0,0 +1,39 @@
+--- src/sage/env.py.orig	2014-06-25 10:47:25.827203554 +1200
++++ src/sage/env.py	2014-06-25 10:49:07.667402821 +1200
+@@ -87,25 +87,22 @@
+ _add_variable_or_fallback('LOCAL_IDENTIFIER','$HOSTNAME.%s'%os.getpid())
+ 
+ # bunch of sage directories and files
+-_add_variable_or_fallback('SAGE_ROOT',       None)
+-_add_variable_or_fallback('SAGE_LOCAL',      opj('$SAGE_ROOT', 'local'))
+-_add_variable_or_fallback('SAGE_ETC',        opj('$SAGE_LOCAL', 'etc'))
+-_add_variable_or_fallback('SAGE_INC',        opj('$SAGE_LOCAL', 'include'))
+-_add_variable_or_fallback('SAGE_SHARE',      opj('$SAGE_LOCAL', 'share'))
++_add_variable_or_fallback('SAGE_ROOT',       '/usr')
++_add_variable_or_fallback('SAGE_LOCAL',      '/usr')
++_add_variable_or_fallback('SAGE_ETC',        '/etc/sage')
++_add_variable_or_fallback('SAGE_INC',        opj('$SAGE_LOCAL', 'include', 'sage'))
++_add_variable_or_fallback('SAGE_SHARE',      opj('$SAGE_LOCAL', 'share', 'sage'))
+ 
+ _add_variable_or_fallback('SAGE_SRC',        opj('$SAGE_ROOT', 'src'))
+-_add_variable_or_fallback('SITE_PACKAGES',   site.getsitepackages())
++_add_variable_or_fallback('SITE_PACKAGES',   site.getsitepackages()+['/usr/lib/sage/site-packages'])
+ _add_variable_or_fallback('SAGE_LIB',        SITE_PACKAGES[0])
+ 
+ _add_variable_or_fallback('SAGE_CYTHONIZED', opj('$SAGE_SRC', 'build', 'cythonized'))
+ 
+-_add_variable_or_fallback('SAGE_EXTCODE',    opj('$SAGE_SHARE', 'sage', 'ext'))
+-_add_variable_or_fallback('SAGE_LOGS',       opj('$SAGE_ROOT', 'logs', 'pkgs'))
+-_add_variable_or_fallback('SAGE_SPKG_INST',  opj('$SAGE_LOCAL', 'var', 'lib', 'sage', 'installed'))
+-_add_variable_or_fallback('SAGE_DOC_SRC',    opj('$SAGE_SRC', 'doc'))
+-_add_variable_or_fallback('SAGE_DOC',        opj('$SAGE_SHARE', 'doc', 'sage'))
+-_add_variable_or_fallback('DOT_SAGE',        opj(os.environ.get('HOME','$SAGE_ROOT'), '.sage'))
+-_add_variable_or_fallback('SAGE_DOT_GIT',    opj('$SAGE_ROOT', '.git'))
++_add_variable_or_fallback('SAGE_EXTCODE',    opj('$SAGE_SHARE', 'ext'))
++_add_variable_or_fallback('SAGE_DOC_SRC',    opj('$SAGE_SRC', 'doc'))
++_add_variable_or_fallback('SAGE_DOC',        opj('$SAGE_SHARE', 'doc', 'sage'))        
++_add_variable_or_fallback('DOT_SAGE',        opj(os.environ.get('HOME'), '.sage'))
+ _add_variable_or_fallback('SAGE_DISTFILES',  opj('$SAGE_ROOT', 'upstream'))
+ 
+ # misc
+



More information about the arch-commits mailing list