Date: Saturday, October 5, 2019 @ 08:31:49 Author: arojas Revision: 512892
archrelease: copy trunk to community-any Added: sagemath-doc/repos/community-any/PKGBUILD (from rev 512891, sagemath-doc/trunk/PKGBUILD) sagemath-doc/repos/community-any/docbuild_main.patch (from rev 512891, sagemath-doc/trunk/docbuild_main.patch) sagemath-doc/repos/community-any/sagemath-ecl-sigfpe.patch (from rev 512891, sagemath-doc/trunk/sagemath-ecl-sigfpe.patch) Deleted: sagemath-doc/repos/community-any/PKGBUILD sagemath-doc/repos/community-any/docbuild_main.patch sagemath-doc/repos/community-any/sagemath-ecl-sigfpe.patch ---------------------------+ PKGBUILD | 120 ++++++++--------- docbuild_main.patch | 12 - sagemath-ecl-sigfpe.patch | 294 ++++++++++++++++++++++---------------------- 3 files changed, 213 insertions(+), 213 deletions(-) Deleted: PKGBUILD =================================================================== --- PKGBUILD 2019-10-05 08:31:20 UTC (rev 512891) +++ PKGBUILD 2019-10-05 08:31:49 UTC (rev 512892) @@ -1,60 +0,0 @@ -# Maintainer: Antonio Rojas <aro...@archlinux.org> - -pkgname=sagemath-doc -pkgver=8.9 -pkgrel=2 -pkgdesc="HTML documentation for SageMath" -arch=(any) -url="http://www.sagemath.org" -license=(GPL) -depends=(python2-sphinx gap-doc pplpy-doc thebe) -makedepends=(sagemath python2-pyzmq python2-docutils python2-jupyter_client python2-pkgconfig cython2 python2-ipywidgets) -source=(sagemath-$pkgver.tar.gz::"https://github.com/sagemath/sage/archive/$pkgver.tar.gz" - docbuild_main.patch - sagemath-ecl-sigfpe.patch) -sha256sums=('4f9f18a08142fed69342b58ffc6221ec16fe8daf1042086b351e1308489ec5d4' - 'ea5e17bb7a7cb36a22e5e3872fcc2585852bc971c4b139b0b2cd69a36c1b009b' - 'a42f3b152b1aedb8abf16bc70971419919d1fe30328574e7fef8305f9d07d938') - -prepare() { - cd sage-$pkgver - -# fix relative imports - patch -p0 -i ../docbuild_main.patch -# use sage_setup imports from sagemath source, but use system sage ones (which include compiled modules) - mkdir -p local-python - ln -sr src/sage_setup local-python -# Fix SIGFPE crashes with ecl 16.1.3 https://trac.sagemath.org/ticket/22191 - patch -p1 -i ../sagemath-ecl-sigfpe.patch -} - -build() { - cd sage-$pkgver/src - - export SAGE_LOCAL="/usr" \ - SAGE_ROOT="/usr" \ - SAGE_SRC="$PWD" \ - SAGE_DOC_SRC="$PWD"/doc \ - SAGE_DOC="$PWD"/doc \ - MATHJAX_DIR="/usr/share/mathjax2" \ - PYTHONPATH="$srcdir"/sage-$pkgver/local-python \ - SAGE_NUM_THREADS=10 - python2 sage_setup/docbuild --no-pdf-links --mathjax all html -} - -package() { - cd sage-$pkgver/src/doc - - mkdir -p "$pkgdir"/usr/share/doc/sage - 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,} -} Copied: sagemath-doc/repos/community-any/PKGBUILD (from rev 512891, sagemath-doc/trunk/PKGBUILD) =================================================================== --- PKGBUILD (rev 0) +++ PKGBUILD 2019-10-05 08:31:49 UTC (rev 512892) @@ -0,0 +1,60 @@ +# Maintainer: Antonio Rojas <aro...@archlinux.org> + +pkgname=sagemath-doc +pkgver=8.9 +pkgrel=3 +pkgdesc="HTML documentation for SageMath" +arch=(any) +url="http://www.sagemath.org" +license=(GPL) +depends=(gap-doc pplpy-doc) +makedepends=(sagemath python2-pyzmq python2-docutils python2-jupyter_client python2-pkgconfig cython2 python2-ipywidgets python2-sphinx thebe) +source=(sagemath-$pkgver.tar.gz::"https://github.com/sagemath/sage/archive/$pkgver.tar.gz" + docbuild_main.patch + sagemath-ecl-sigfpe.patch) +sha256sums=('4f9f18a08142fed69342b58ffc6221ec16fe8daf1042086b351e1308489ec5d4' + 'ea5e17bb7a7cb36a22e5e3872fcc2585852bc971c4b139b0b2cd69a36c1b009b' + 'a42f3b152b1aedb8abf16bc70971419919d1fe30328574e7fef8305f9d07d938') + +prepare() { + cd sage-$pkgver + +# fix relative imports + patch -p0 -i ../docbuild_main.patch +# use sage_setup imports from sagemath source, but use system sage ones (which include compiled modules) + mkdir -p local-python + ln -sr src/sage_setup local-python +# Fix SIGFPE crashes with ecl 16.1.3 https://trac.sagemath.org/ticket/22191 + patch -p1 -i ../sagemath-ecl-sigfpe.patch +} + +build() { + cd sage-$pkgver/src + + export SAGE_LOCAL="/usr" \ + SAGE_ROOT="/usr" \ + SAGE_SRC="$PWD" \ + SAGE_DOC_SRC="$PWD"/doc \ + SAGE_DOC="$PWD"/doc \ + MATHJAX_DIR="/usr/share/mathjax2" \ + PYTHONPATH="$srcdir"/sage-$pkgver/local-python \ + SAGE_NUM_THREADS=10 + python2 sage_setup/docbuild --no-pdf-links --mathjax all html +} + +package() { + cd sage-$pkgver/src/doc + + mkdir -p "$pkgdir"/usr/share/doc/sage + 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,} +} Deleted: docbuild_main.patch =================================================================== --- docbuild_main.patch 2019-10-05 08:31:20 UTC (rev 512891) +++ docbuild_main.patch 2019-10-05 08:31:49 UTC (rev 512892) @@ -1,6 +0,0 @@ ---- src/sage_setup/docbuild/__main__.py.orig -+++ src/sage_setup/docbuild/__main__.py -@@ -1,2 +1,2 @@ --from . import main -+from sage_setup.docbuild import main - main() Copied: sagemath-doc/repos/community-any/docbuild_main.patch (from rev 512891, sagemath-doc/trunk/docbuild_main.patch) =================================================================== --- docbuild_main.patch (rev 0) +++ docbuild_main.patch 2019-10-05 08:31:49 UTC (rev 512892) @@ -0,0 +1,6 @@ +--- src/sage_setup/docbuild/__main__.py.orig ++++ src/sage_setup/docbuild/__main__.py +@@ -1,2 +1,2 @@ +-from . import main ++from sage_setup.docbuild import main + main() Deleted: sagemath-ecl-sigfpe.patch =================================================================== --- sagemath-ecl-sigfpe.patch 2019-10-05 08:31:20 UTC (rev 512891) +++ sagemath-ecl-sigfpe.patch 2019-10-05 08:31:49 UTC (rev 512892) @@ -1,147 +0,0 @@ -diff --git a/src/sage/libs/ecl.pyx b/src/sage/libs/ecl.pyx -index e408866..fa24ac0 100644 ---- a/src/sage/libs/ecl.pyx -+++ b/src/sage/libs/ecl.pyx -@@ -16,7 +16,7 @@ from __future__ import print_function, absolute_import - #adapted to work with pure Python types. - - from libc.stdlib cimport abort --from libc.signal cimport SIGINT, SIGBUS, SIGSEGV, SIGCHLD -+from libc.signal cimport SIGINT, SIGBUS, SIGSEGV, SIGCHLD, SIGFPE - from libc.signal cimport raise_ as signal_raise - from posix.signal cimport sigaction, sigaction_t - cimport cysignals.signals -@@ -48,9 +48,14 @@ cdef extern from "eclsig.h": - void ecl_sig_off() - cdef sigaction_t ecl_sigint_handler - cdef sigaction_t ecl_sigbus_handler -+ cdef sigaction_t ecl_sigfpe_handler - cdef sigaction_t ecl_sigsegv_handler - cdef mpz_t ecl_mpz_from_bignum(cl_object obj) - cdef cl_object ecl_bignum_from_mpz(mpz_t num) -+ cdef int fegetexcept() -+ cdef int feenableexcept(int) -+ cdef int fedisableexcept(int) -+ cdef int ecl_feflags - - cdef cl_object string_to_object(char * s): - return ecl_read_from_cstring(s) -@@ -239,6 +244,7 @@ def init_ecl(): - global ecl_has_booted - cdef char *argv[1] - cdef sigaction_t sage_action[32] -+ cdef int sage_fpes - cdef int i - - if ecl_has_booted: -@@ -258,6 +264,8 @@ def init_ecl(): - for i in range(1,32): - sigaction(i, NULL, &sage_action[i]) - -+ sage_fpes = fegetexcept() -+ - #initialize ECL - ecl_set_option(ECL_OPT_SIGNAL_HANDLING_THREAD, 0) - cl_boot(1, argv) -@@ -265,8 +273,12 @@ def init_ecl(): - #save signal handler from ECL - sigaction(SIGINT, NULL, &ecl_sigint_handler) - sigaction(SIGBUS, NULL, &ecl_sigbus_handler) -+ sigaction(SIGFPE, NULL, &ecl_sigfpe_handler) - sigaction(SIGSEGV, NULL, &ecl_sigsegv_handler) - -+ #save ECL's floating point exception flags -+ ecl_feflags = fegetexcept() -+ - #verify that no SIGCHLD handler was installed - cdef sigaction_t sig_test - sigaction(SIGCHLD, NULL, &sig_test) -@@ -277,6 +289,9 @@ def init_ecl(): - for i in range(1,32): - sigaction(i, &sage_action[i], NULL) - -+ fedisableexcept(ecl_feflags) -+ feenableexcept(sage_fpes) -+ - #initialise list of objects and bind to global variable - # *SAGE-LIST-OF-OBJECTS* to make it rooted in the reachable tree for the GC - list_of_objects=cl_cons(Cnil,cl_cons(Cnil,Cnil)) -@@ -320,7 +335,6 @@ def init_ecl(): - (values nil (princ-to-string cnd))))) - """)) - safe_funcall_clobj=cl_eval(string_to_object(b"(symbol-function 'sage-safe-funcall)")) -- - ecl_has_booted = 1 - - cdef cl_object ecl_safe_eval(cl_object form) except NULL: -diff --git a/src/sage/libs/eclsig.h b/src/sage/libs/eclsig.h -index f9f2690..a7e1f40 100644 ---- a/src/sage/libs/eclsig.h -+++ b/src/sage/libs/eclsig.h -@@ -9,24 +9,66 @@ - - - #include <signal.h> -+ -+/* Rummage around to determine how ECL was configured */ -+#define ECL_AVOID_FPE_H /* Prevent some local includes */ -+#include <ecl/config-internal.h> -+ -+#ifdef HAVE_FENV_H -+#include <fenv.h> -+#ifndef FE_ALL_EXCEPT -+#define FE_ALL_EXCEPT FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW | FE_INVALID -+#endif -+#else -+#ifndef FE_ALL_EXCEPT -+#define FE_ALL_EXCEPT 0 -+#endif -+#define feclearexcept(flags) do {} while (0) -+#endif -+ -+#ifndef HAVE_FEENABLEEXCEPT -+/* These are GNU extensions */ -+#define fegetexcept() 0 -+#define feenablexcept(flags) do {} while (0) -+#define fdisableexcept(flags) do {} while (0) -+#endif -+ - static struct sigaction ecl_sigint_handler; - static struct sigaction ecl_sigbus_handler; -+static struct sigaction ecl_sigfpe_handler; - static struct sigaction ecl_sigsegv_handler; - static struct sigaction sage_sigint_handler; - static struct sigaction sage_sigbus_handler; -+static struct sigaction sage_sigfpe_handler; - static struct sigaction sage_sigsegv_handler; -+static int ecl_feflags; -+static int sage_feflags; - - static inline void set_ecl_signal_handler(void) - { - sigaction(SIGINT, &ecl_sigint_handler, &sage_sigint_handler); - sigaction(SIGBUS, &ecl_sigbus_handler, &sage_sigbus_handler); -+ sigaction(SIGFPE, &ecl_sigfpe_handler, &sage_sigfpe_handler); - sigaction(SIGSEGV, &ecl_sigsegv_handler, &sage_sigsegv_handler); -+ -+ /* first clear pending floating point exceptions, if any */ -+ feclearexcept(FE_ALL_EXCEPT); -+ -+ /* sage_feflags should be 0; we don't set them otherwise */ -+ sage_feflags = fedisableexcept(FE_ALL_EXCEPT); -+ feenableexcept(ecl_feflags); - } - - static inline void unset_ecl_signal_handler(void) - { -+ /* clear pending exceptions and restore previous exception mask */ -+ feclearexcept(FE_ALL_EXCEPT); -+ ecl_feflags = fedisableexcept(FE_ALL_EXCEPT); -+ feenableexcept(sage_feflags); -+ - sigaction(SIGINT, &sage_sigint_handler, NULL); - sigaction(SIGBUS, &sage_sigbus_handler, NULL); -+ sigaction(SIGFPE, &sage_sigfpe_handler, NULL); - sigaction(SIGSEGV, &sage_sigsegv_handler, NULL); - } - Copied: sagemath-doc/repos/community-any/sagemath-ecl-sigfpe.patch (from rev 512891, sagemath-doc/trunk/sagemath-ecl-sigfpe.patch) =================================================================== --- sagemath-ecl-sigfpe.patch (rev 0) +++ sagemath-ecl-sigfpe.patch 2019-10-05 08:31:49 UTC (rev 512892) @@ -0,0 +1,147 @@ +diff --git a/src/sage/libs/ecl.pyx b/src/sage/libs/ecl.pyx +index e408866..fa24ac0 100644 +--- a/src/sage/libs/ecl.pyx ++++ b/src/sage/libs/ecl.pyx +@@ -16,7 +16,7 @@ from __future__ import print_function, absolute_import + #adapted to work with pure Python types. + + from libc.stdlib cimport abort +-from libc.signal cimport SIGINT, SIGBUS, SIGSEGV, SIGCHLD ++from libc.signal cimport SIGINT, SIGBUS, SIGSEGV, SIGCHLD, SIGFPE + from libc.signal cimport raise_ as signal_raise + from posix.signal cimport sigaction, sigaction_t + cimport cysignals.signals +@@ -48,9 +48,14 @@ cdef extern from "eclsig.h": + void ecl_sig_off() + cdef sigaction_t ecl_sigint_handler + cdef sigaction_t ecl_sigbus_handler ++ cdef sigaction_t ecl_sigfpe_handler + cdef sigaction_t ecl_sigsegv_handler + cdef mpz_t ecl_mpz_from_bignum(cl_object obj) + cdef cl_object ecl_bignum_from_mpz(mpz_t num) ++ cdef int fegetexcept() ++ cdef int feenableexcept(int) ++ cdef int fedisableexcept(int) ++ cdef int ecl_feflags + + cdef cl_object string_to_object(char * s): + return ecl_read_from_cstring(s) +@@ -239,6 +244,7 @@ def init_ecl(): + global ecl_has_booted + cdef char *argv[1] + cdef sigaction_t sage_action[32] ++ cdef int sage_fpes + cdef int i + + if ecl_has_booted: +@@ -258,6 +264,8 @@ def init_ecl(): + for i in range(1,32): + sigaction(i, NULL, &sage_action[i]) + ++ sage_fpes = fegetexcept() ++ + #initialize ECL + ecl_set_option(ECL_OPT_SIGNAL_HANDLING_THREAD, 0) + cl_boot(1, argv) +@@ -265,8 +273,12 @@ def init_ecl(): + #save signal handler from ECL + sigaction(SIGINT, NULL, &ecl_sigint_handler) + sigaction(SIGBUS, NULL, &ecl_sigbus_handler) ++ sigaction(SIGFPE, NULL, &ecl_sigfpe_handler) + sigaction(SIGSEGV, NULL, &ecl_sigsegv_handler) + ++ #save ECL's floating point exception flags ++ ecl_feflags = fegetexcept() ++ + #verify that no SIGCHLD handler was installed + cdef sigaction_t sig_test + sigaction(SIGCHLD, NULL, &sig_test) +@@ -277,6 +289,9 @@ def init_ecl(): + for i in range(1,32): + sigaction(i, &sage_action[i], NULL) + ++ fedisableexcept(ecl_feflags) ++ feenableexcept(sage_fpes) ++ + #initialise list of objects and bind to global variable + # *SAGE-LIST-OF-OBJECTS* to make it rooted in the reachable tree for the GC + list_of_objects=cl_cons(Cnil,cl_cons(Cnil,Cnil)) +@@ -320,7 +335,6 @@ def init_ecl(): + (values nil (princ-to-string cnd))))) + """)) + safe_funcall_clobj=cl_eval(string_to_object(b"(symbol-function 'sage-safe-funcall)")) +- + ecl_has_booted = 1 + + cdef cl_object ecl_safe_eval(cl_object form) except NULL: +diff --git a/src/sage/libs/eclsig.h b/src/sage/libs/eclsig.h +index f9f2690..a7e1f40 100644 +--- a/src/sage/libs/eclsig.h ++++ b/src/sage/libs/eclsig.h +@@ -9,24 +9,66 @@ + + + #include <signal.h> ++ ++/* Rummage around to determine how ECL was configured */ ++#define ECL_AVOID_FPE_H /* Prevent some local includes */ ++#include <ecl/config-internal.h> ++ ++#ifdef HAVE_FENV_H ++#include <fenv.h> ++#ifndef FE_ALL_EXCEPT ++#define FE_ALL_EXCEPT FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW | FE_INVALID ++#endif ++#else ++#ifndef FE_ALL_EXCEPT ++#define FE_ALL_EXCEPT 0 ++#endif ++#define feclearexcept(flags) do {} while (0) ++#endif ++ ++#ifndef HAVE_FEENABLEEXCEPT ++/* These are GNU extensions */ ++#define fegetexcept() 0 ++#define feenablexcept(flags) do {} while (0) ++#define fdisableexcept(flags) do {} while (0) ++#endif ++ + static struct sigaction ecl_sigint_handler; + static struct sigaction ecl_sigbus_handler; ++static struct sigaction ecl_sigfpe_handler; + static struct sigaction ecl_sigsegv_handler; + static struct sigaction sage_sigint_handler; + static struct sigaction sage_sigbus_handler; ++static struct sigaction sage_sigfpe_handler; + static struct sigaction sage_sigsegv_handler; ++static int ecl_feflags; ++static int sage_feflags; + + static inline void set_ecl_signal_handler(void) + { + sigaction(SIGINT, &ecl_sigint_handler, &sage_sigint_handler); + sigaction(SIGBUS, &ecl_sigbus_handler, &sage_sigbus_handler); ++ sigaction(SIGFPE, &ecl_sigfpe_handler, &sage_sigfpe_handler); + sigaction(SIGSEGV, &ecl_sigsegv_handler, &sage_sigsegv_handler); ++ ++ /* first clear pending floating point exceptions, if any */ ++ feclearexcept(FE_ALL_EXCEPT); ++ ++ /* sage_feflags should be 0; we don't set them otherwise */ ++ sage_feflags = fedisableexcept(FE_ALL_EXCEPT); ++ feenableexcept(ecl_feflags); + } + + static inline void unset_ecl_signal_handler(void) + { ++ /* clear pending exceptions and restore previous exception mask */ ++ feclearexcept(FE_ALL_EXCEPT); ++ ecl_feflags = fedisableexcept(FE_ALL_EXCEPT); ++ feenableexcept(sage_feflags); ++ + sigaction(SIGINT, &sage_sigint_handler, NULL); + sigaction(SIGBUS, &sage_sigbus_handler, NULL); ++ sigaction(SIGFPE, &sage_sigfpe_handler, NULL); + sigaction(SIGSEGV, &sage_sigsegv_handler, NULL); + } +