python3-cysignals: update to 1.11.3.
This commit is contained in:
parent
02b95709b1
commit
155bd2e57b
@ -1,13 +0,0 @@
|
|||||||
diff --git a/src/cysignals/signals.pxd.in b/src/cysignals/signals.pxd.in
|
|
||||||
index c86e085..a98c8d1 100644
|
|
||||||
--- a/src/cysignals/signals.pxd.in
|
|
||||||
+++ b/src/cysignals/signals.pxd.in
|
|
||||||
@@ -54,7 +54,7 @@ cdef extern from "macros.h" nogil:
|
|
||||||
# can be used to make Cython check whether there is a pending exception
|
|
||||||
# (PyErr_Occurred() is non-NULL). To Cython, it will look like
|
|
||||||
# cython_check_exception() actually raised the exception.
|
|
||||||
-cdef inline void cython_check_exception() nogil except *:
|
|
||||||
+cdef inline void cython_check_exception() except * nogil:
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
|||||||
commit 9996a4028ddc7f9a5ffda3df65d5b7d3b7df8aa5
|
|
||||||
Author: Gonzalo Tornaría <tornaria@cmat.edu.uy>
|
|
||||||
Date: Wed Jul 19 18:34:57 2023 -0300
|
|
||||||
|
|
||||||
cython3 support using legacy directives
|
|
||||||
|
|
||||||
diff --git a/setup.py b/setup.py
|
|
||||||
index 37acdfc..f68270b 100755
|
|
||||||
--- a/setup.py
|
|
||||||
+++ b/setup.py
|
|
||||||
@@ -157,13 +157,17 @@ class build_ext(_build_ext):
|
|
||||||
# Run Cython with -Werror on continuous integration services
|
|
||||||
# with Python 3.6 or later
|
|
||||||
from Cython.Compiler import Options
|
|
||||||
- Options.warning_errors = True
|
|
||||||
+ Options.warning_errors = False
|
|
||||||
|
|
||||||
from Cython.Build.Dependencies import cythonize
|
|
||||||
return cythonize(extensions,
|
|
||||||
build_dir=cythonize_dir,
|
|
||||||
include_path=["src", os.path.join(cythonize_dir, "src")],
|
|
||||||
- compiler_directives=dict(binding=True, language_level=2))
|
|
||||||
+ compiler_directives=dict(
|
|
||||||
+ binding=True,
|
|
||||||
+ language_level=2,
|
|
||||||
+ legacy_implicit_noexcept=True,
|
|
||||||
+ ))
|
|
||||||
|
|
||||||
|
|
||||||
class build_py(_build_py):
|
|
@ -1,46 +0,0 @@
|
|||||||
Fix a doctest failure which triggers in i686.
|
|
||||||
|
|
||||||
The example is in the function `test_bad_str()` in the file `tests.pyx`.
|
|
||||||
The test pases a bad string to `sig_str()` and then raises `SIGILL`. The
|
|
||||||
signal handler eventually raises a Python exception which in turn raises
|
|
||||||
a `SIGSEGV` when accessing the bad string. An error message is expected,
|
|
||||||
but that doesn't happen.
|
|
||||||
|
|
||||||
Presumably the segfault happens inside some stdio function which leaves
|
|
||||||
stdio buffers in an inconsistent state so the latter `fprintf` doesn't
|
|
||||||
work properly. From signal-safety(7):
|
|
||||||
|
|
||||||
Suppose that the main program is in the middle of a call to a
|
|
||||||
stdio function such as printf(3) where the buffer and associated
|
|
||||||
variables have been partially updated. If, at that moment, the
|
|
||||||
program is interrupted by a signal handler that also calls
|
|
||||||
printf(3), then the second call to printf(3) will operate on
|
|
||||||
inconsistent data, with unpredictable results.
|
|
||||||
|
|
||||||
We fix this by replacing the `fprintf` by calls to `write`, which is
|
|
||||||
async-signal-safe according to POSIX.
|
|
||||||
|
|
||||||
--- a/src/cysignals/implementation.c 2022-01-16 22:36:45.143796872 +0000
|
|
||||||
+++ b/src/cysignals/implementation.c 2022-01-17 02:22:31.196695043 +0000
|
|
||||||
@@ -638,12 +622,15 @@
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (s) {
|
|
||||||
+ /* Using fprintf from inside a signal handler is undefined, see signal-safety(7) */
|
|
||||||
+ const char * message =
|
|
||||||
+ "\n"
|
|
||||||
+ "This probably occurred because a *compiled* module has a bug\n"
|
|
||||||
+ "in it and is not properly wrapped with sig_on(), sig_off().\n"
|
|
||||||
+ "Python will now terminate.\n"
|
|
||||||
+ "------------------------------------------------------------------------\n";
|
|
||||||
+ write(2, s, strlen(s));
|
|
||||||
+ write(2, message, strlen(message));
|
|
||||||
- fprintf(stderr,
|
|
||||||
- "%s\n"
|
|
||||||
- "This probably occurred because a *compiled* module has a bug\n"
|
|
||||||
- "in it and is not properly wrapped with sig_on(), sig_off().\n"
|
|
||||||
- "Python will now terminate.\n", s);
|
|
||||||
- print_sep();
|
|
||||||
}
|
|
||||||
|
|
||||||
dienow:
|
|
@ -1,7 +1,7 @@
|
|||||||
# Template file for 'python3-cysignals'
|
# Template file for 'python3-cysignals'
|
||||||
pkgname=python3-cysignals
|
pkgname=python3-cysignals
|
||||||
version=1.11.2
|
version=1.11.3
|
||||||
revision=5
|
revision=1
|
||||||
build_style=python3-module
|
build_style=python3-module
|
||||||
hostmakedepends="python3-setuptools python3-Cython autoconf"
|
hostmakedepends="python3-setuptools python3-Cython autoconf"
|
||||||
makedepends="python3-devel pari-devel"
|
makedepends="python3-devel pari-devel"
|
||||||
@ -11,7 +11,7 @@ maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
|
|||||||
license="LGPL-3.0-or-later"
|
license="LGPL-3.0-or-later"
|
||||||
homepage="https://github.com/sagemath/cysignals"
|
homepage="https://github.com/sagemath/cysignals"
|
||||||
distfiles="${PYPI_SITE}/c/cysignals/cysignals-${version}.tar.gz"
|
distfiles="${PYPI_SITE}/c/cysignals/cysignals-${version}.tar.gz"
|
||||||
checksum=5858b1760fbe21848121b826b2463a67ac5a45caf3d73105497a68618c5a6fa6
|
checksum=c2c01f666e5904948952a2250548d8c36ccedd640383791feacf26ea2b958365
|
||||||
nocross=yes # runs binaries built for target
|
nocross=yes # runs binaries built for target
|
||||||
|
|
||||||
do_check() {
|
do_check() {
|
||||||
|
1
srcpkgs/python3-cysignals/update
Normal file
1
srcpkgs/python3-cysignals/update
Normal file
@ -0,0 +1 @@
|
|||||||
|
ignore="*a* *b* *rc*"
|
Loading…
x
Reference in New Issue
Block a user