Date: Monday, April 9, 2018 @ 18:11:09 Author: arojas Revision: 315453
ntl 11 rebuild, backport cython 0.28 build fixes Added: sagemath/trunk/sagemath-cython-0.28c.patch sagemath/trunk/sagemath-lcalc-c++11.patch Modified: sagemath/trunk/PKGBUILD -----------------------------+ PKGBUILD | 24 ++++++++++++++--- sagemath-cython-0.28c.patch | 59 ++++++++++++++++++++++++++++++++++++++++++ sagemath-lcalc-c++11.patch | 10 +++++++ 3 files changed, 89 insertions(+), 4 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2018-04-09 17:47:24 UTC (rev 315452) +++ PKGBUILD 2018-04-09 18:11:09 UTC (rev 315453) @@ -9,7 +9,7 @@ pkgbase=sagemath pkgname=(sagemath sagemath-jupyter) pkgver=8.1 -pkgrel=11 +pkgrel=12 pkgdesc="Open Source Mathematics Software, free alternative to Magma, Maple, Mathematica, and Matlab" arch=(x86_64) url="http://www.sagemath.org" @@ -39,8 +39,12 @@ r-no-readline.patch fes02.patch sagemath-threejs.patch pari-stackwarn.patch sagemath-detect-igraph.patch sagemath-networkx2.patch sagemath-linbox-1.5.patch sagemath-pynac-0.7.14.patch sagemath-matplotlib2.patch sagemath-scipy-1.0.patch sagemath-lrs.patch sagemath-ipython-prompt.patch - sagemath-singular-4.1.1.patch - sagemath-cython-source.patch::"https://github.com/sagemath/sage/commit/fccaf230.patch") + sagemath-singular-4.1.1.patch sagemath-lcalc-c++11.patch + sagemath-cython-source.patch::"https://github.com/sagemath/sage/commit/fccaf230.patch" + sagemath-cython-0.28a.patch::"https://github.com/sagemath/sage/commit/348432f7.patch" + sagemath-cython-0.28b.patch::"https://github.com/sagemath/sage/commit/609a04de.patch" + sagemath-cython-0.28c.patch + sagemath-cython-0.28d.patch::"https://github.com/sagemath/sage/commit/c331d9bb.patch") sha256sums=('a42b55c2c8ac244535dc9b87171b7d4dd7e1d498099518ab253354fbe2eaaa7b' '9593f49ac3f73bc7106f661bdaa484d22c12b889964986f5a99b75a605a2359b' 'c41ae665499c6cd775d40bbe178f8786830b0931ee26bf11ee02f7d83bcc8107' @@ -61,7 +65,12 @@ 'c0f65534a845ba802de6196229159fe67fcc3f72f0cb1ce57d4ae5c9fe10282c' '937a0081e7aea56bda645ef5f0d34b8e356acd62a7dd128a35163f46e7836131' 'cc679321c2968d5e74b0ec060979c74019df2995857906bdd1397695b1f24c5c' - '447a616937e5c43da5f72aeb186fb649e2b3756f7683967380c66b9b1448875e') + '5114c912f821900e5bfae1e2cfeb7984de946d0b23e1182b0bf15be1d803dfd0' + '447a616937e5c43da5f72aeb186fb649e2b3756f7683967380c66b9b1448875e' + '8b88c72495c47c400a63cd2c6b3998cd6de649f653b6f5acbd506e2fc158f062' + '6deaa988737f670f27f174c838501248004d9ce029c29d3e643a93cd1c500894' + '7cfca93a35bc0ad4608286fae477195c7bee94787a3655021e55055d0adfe224' + 'a46f60c3df77f95e9b0e65573a281d6f9980b218a9dbea1417fa51ea7af2558d') prepare(){ cd sage-$pkgver @@ -100,6 +109,8 @@ patch -p1 -i ../sagemath-ipython-prompt.patch # fix build with Singular 4.1.1 patch -p1 -i ../sagemath-singular-4.1.1.patch +# don't force c++98 for lcalc (fixes build with NTL 11) + patch -p1 -i ../sagemath-lcalc-c++11.patch # Upstream patches # fix build against libfes 0.2 http://trac.sagemath.org/ticket/15209 @@ -112,6 +123,11 @@ patch -p1 -i ../sagemath-matplotlib2.patch # install cython source files https://trac.sagemath.org/24690 patch -p1 -i ../sagemath-cython-source.patch +# fix build with cython 0.28 + patch -p1 -i ../sagemath-cython-0.28a.patch + patch -p1 -i ../sagemath-cython-0.28b.patch + patch -p1 -i ../sagemath-cython-0.28c.patch + patch -p1 -i ../sagemath-cython-0.28d.patch # use python2 sed -e 's|#!/usr/bin/env python|#!/usr/bin/env python2|' -e 's|\<exec python\>|exec python2|' -i src/bin/* Added: sagemath-cython-0.28c.patch =================================================================== --- sagemath-cython-0.28c.patch (rev 0) +++ sagemath-cython-0.28c.patch 2018-04-09 18:11:09 UTC (rev 315453) @@ -0,0 +1,59 @@ +From e9efe88316733178b9330b21eee2c207f01132fd Mon Sep 17 00:00:00 2001 +From: Jeroen Demeyer <jdeme...@cage.ugent.be> +Date: Tue, 6 Mar 2018 12:43:46 +0100 +Subject: [PATCH 2/2] Use late includes + +--- + src/sage_setup/autogen/interpreters/generator.py | 26 ------------------------ + src/setup.py | 1 + + 2 files changed, 1 insertion(+), 26 deletions(-) + +diff --git a/src/sage_setup/autogen/interpreters/generator.py b/src/sage_setup/autogen/interpreters/generator.py +index feefd9ee2f3..d1db4557784 100644 +--- a/src/sage_setup/autogen/interpreters/generator.py ++++ b/src/sage_setup/autogen/interpreters/generator.py +@@ -277,32 +277,6 @@ def write_interpreter(self, write): + /* {{ warn }} */ + #include <Python.h> + +- /* Some interpreter files (for example interp_el.c) need access +- * to functions defined in the Cython wrapper. This is done by +- * including a file wrapper_X.h which is auto-generated by +- * Cython. It contains declarations for functions declared in +- * wrapper_X.pyx as cdef public. Including wrapper_X.h allows +- * interp_X.c to call those functions. +- * +- * The file interp_X.c is in turn included by wrapper_X.c, +- * which is the compilation of wrapper_X.pyx. +- * +- * Now, for some reason, Cython puts include guards in wrapper_X.h +- * and it also defines those guards in the wrapper_X.c file. +- * This way, including the wrapper_X.h file from the wrapper_X.c file +- * (indirectly through interp_X.c) has no effect. But we really want +- * that header file to be included, so we #undef those include guards. +- * This way, the functions will be declared twice (once in wrapper_X.h +- * and once in wrapper_X.c) but that is legal in C. +- * +- * See https://trac.sagemath.org/ticket/21459 for why this hack is +- * needed. If Cython merges https://github.com/cython/cython/pull/1650 +- * this hack could be replaced by using a late include for +- * cdef extern from "sage/ext/interpreters/interp_{{ s.name }}.c" +- */ +- #undef __PYX_HAVE__sage__ext__interpreters__wrapper_{{ s.name }} +- #undef __PYX_HAVE_API__sage__ext__interpreters__wrapper_{{ s.name }} +- + {% print(s.c_header) %} + + {{ myself.func_header() }} { +diff --git a/src/setup.py b/src/setup.py +index 5abd6dc5939..b706310a1de 100755 +--- a/src/setup.py ++++ b/src/setup.py +@@ -284,6 +284,7 @@ def finalize_options(self): + cdivision=True, + embedsignature=True, + fast_getattr=True, ++ preliminary_late_includes_cy28=True, + profile=self.profile, + ) + self.compile_time_env = dict( Added: sagemath-lcalc-c++11.patch =================================================================== --- sagemath-lcalc-c++11.patch (rev 0) +++ sagemath-lcalc-c++11.patch 2018-04-09 18:11:09 UTC (rev 315453) @@ -0,0 +1,10 @@ +--- a/src/sage/libs/lcalc/lcalc_Lfunction.pxd ++++ b/src/sage/libs/lcalc/lcalc_Lfunction.pxd +@@ -1,6 +1,5 @@ + # Lcalc requires GNU extensions, it does not strictly conform to any + # C++ standard: https://trac.sagemath.org/ticket/23341 +-# distutils: extra_compile_args = -std=gnu++98 + + cdef extern from "lcalc_sage.h": + ctypedef struct doublevec "std::vector<double>": +