aboutsummaryrefslogtreecommitdiff
path: root/lang
diff options
context:
space:
mode:
authorMaxim Sobolev <sobomax@FreeBSD.org>2009-02-27 01:25:32 +0000
committerMaxim Sobolev <sobomax@FreeBSD.org>2009-02-27 01:25:32 +0000
commitf4711ece62ae605030165a01431ea6a36f7ea096 (patch)
tree051f7c788b234a1872b2912673596e1b018c22de /lang
parent9fac048015169945a2b76a353d73c739db34d4d5 (diff)
downloadports-f4711ece62ae605030165a01431ea6a36f7ea096.tar.gz
ports-f4711ece62ae605030165a01431ea6a36f7ea096.zip
Make sure the singal is delivered to the main thread, where python
runs its signal handlers, not to a random thread that happens to be executing at the time when signal arrives. This functionality has been lost since Python 2.3, possible cause is that the linux implementation of POSIX threads always delivered signal to the main thread. This bug results in rather annoying inability to terminate threading script with ^C for example and there could be other issues as well. Bump PORTREVISION. PR: ports/131080 Submitted by: Andriy Pylypenko <bamby@sippysoft.com> Approved by: MAINTAINER's timeout
Notes
Notes: svn path=/head/; revision=229118
Diffstat (limited to 'lang')
-rw-r--r--lang/python24/Makefile2
-rw-r--r--lang/python24/files/patch-Python_thread__pthread.h30
-rw-r--r--lang/python25/Makefile1
-rw-r--r--lang/python25/files/patch-Python_thread__pthread.h30
-rw-r--r--lang/python26/Makefile2
-rw-r--r--lang/python26/files/patch-Python_thread__pthread.h30
-rw-r--r--lang/python27/Makefile2
-rw-r--r--lang/python27/files/patch-Python_thread__pthread.h30
8 files changed, 124 insertions, 3 deletions
diff --git a/lang/python24/Makefile b/lang/python24/Makefile
index ca99497844b4..1fc6ef5ef260 100644
--- a/lang/python24/Makefile
+++ b/lang/python24/Makefile
@@ -7,7 +7,7 @@
PORTNAME= python24
PORTVERSION= 2.4.5
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= lang python ipv6
MASTER_SITES= ${PYTHON_MASTER_SITES}
MASTER_SITE_SUBDIR= ${PYTHON_MASTER_SITE_SUBDIR}
diff --git a/lang/python24/files/patch-Python_thread__pthread.h b/lang/python24/files/patch-Python_thread__pthread.h
new file mode 100644
index 000000000000..1f4478528024
--- /dev/null
+++ b/lang/python24/files/patch-Python_thread__pthread.h
@@ -0,0 +1,30 @@
+
+$FreeBSD$
+
+--- Python/thread_pthread.h
++++ Python/thread_pthread.h
+@@ -149,6 +149,7 @@
+ {
+ pthread_t th;
+ int status;
++ sigset_t set, oset;
+ #if defined(THREAD_STACK_SIZE) || defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
+ pthread_attr_t attrs;
+ #endif
+@@ -177,6 +178,8 @@
+ #if defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
+ pthread_attr_setscope(&attrs, PTHREAD_SCOPE_SYSTEM);
+ #endif
++ sigfillset(&set);
++ SET_THREAD_SIGMASK(SIG_BLOCK, &set, &oset);
+
+ status = pthread_create(&th,
+ #if defined(THREAD_STACK_SIZE) || defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
+@@ -188,6 +191,7 @@
+ (void *)arg
+ );
+
++ SET_THREAD_SIGMASK(SIG_SETMASK, &oset, NULL);
+ #if defined(THREAD_STACK_SIZE) || defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
+ pthread_attr_destroy(&attrs);
+ #endif
diff --git a/lang/python25/Makefile b/lang/python25/Makefile
index e1eb669a81f8..bba457978abf 100644
--- a/lang/python25/Makefile
+++ b/lang/python25/Makefile
@@ -6,6 +6,7 @@
PORTNAME= python25
PORTVERSION= 2.5.4
+PORTREVISION= 1
CATEGORIES= lang python ipv6
MASTER_SITES= ${PYTHON_MASTER_SITES}
MASTER_SITE_SUBDIR= ${PYTHON_MASTER_SITE_SUBDIR}
diff --git a/lang/python25/files/patch-Python_thread__pthread.h b/lang/python25/files/patch-Python_thread__pthread.h
new file mode 100644
index 000000000000..1e11c3ad36c3
--- /dev/null
+++ b/lang/python25/files/patch-Python_thread__pthread.h
@@ -0,0 +1,30 @@
+
+$FreeBSD$
+
+--- ../Python/thread_pthread.h
++++ ../Python/thread_pthread.h
+@@ -149,6 +149,7 @@
+ {
+ pthread_t th;
+ int status;
++ sigset_t set, oset;
+ #if defined(THREAD_STACK_SIZE) || defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
+ pthread_attr_t attrs;
+ #endif
+@@ -177,6 +178,8 @@
+ #if defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
+ pthread_attr_setscope(&attrs, PTHREAD_SCOPE_SYSTEM);
+ #endif
++ sigfillset(&set);
++ SET_THREAD_SIGMASK(SIG_BLOCK, &set, &oset);
+
+ status = pthread_create(&th,
+ #if defined(THREAD_STACK_SIZE) || defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
+@@ -188,6 +191,7 @@
+ (void *)arg
+ );
+
++ SET_THREAD_SIGMASK(SIG_SETMASK, &oset, NULL);
+ #if defined(THREAD_STACK_SIZE) || defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
+ pthread_attr_destroy(&attrs);
+ #endif
diff --git a/lang/python26/Makefile b/lang/python26/Makefile
index ee76d903f1fa..994c6838c28a 100644
--- a/lang/python26/Makefile
+++ b/lang/python26/Makefile
@@ -6,7 +6,7 @@
PORTNAME= python26
PORTVERSION= 2.6.1
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= lang python ipv6
MASTER_SITES= ${PYTHON_MASTER_SITES}
MASTER_SITE_SUBDIR= ${PYTHON_MASTER_SITE_SUBDIR}
diff --git a/lang/python26/files/patch-Python_thread__pthread.h b/lang/python26/files/patch-Python_thread__pthread.h
new file mode 100644
index 000000000000..1f4478528024
--- /dev/null
+++ b/lang/python26/files/patch-Python_thread__pthread.h
@@ -0,0 +1,30 @@
+
+$FreeBSD$
+
+--- Python/thread_pthread.h
++++ Python/thread_pthread.h
+@@ -149,6 +149,7 @@
+ {
+ pthread_t th;
+ int status;
++ sigset_t set, oset;
+ #if defined(THREAD_STACK_SIZE) || defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
+ pthread_attr_t attrs;
+ #endif
+@@ -177,6 +178,8 @@
+ #if defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
+ pthread_attr_setscope(&attrs, PTHREAD_SCOPE_SYSTEM);
+ #endif
++ sigfillset(&set);
++ SET_THREAD_SIGMASK(SIG_BLOCK, &set, &oset);
+
+ status = pthread_create(&th,
+ #if defined(THREAD_STACK_SIZE) || defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
+@@ -188,6 +191,7 @@
+ (void *)arg
+ );
+
++ SET_THREAD_SIGMASK(SIG_SETMASK, &oset, NULL);
+ #if defined(THREAD_STACK_SIZE) || defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
+ pthread_attr_destroy(&attrs);
+ #endif
diff --git a/lang/python27/Makefile b/lang/python27/Makefile
index ee76d903f1fa..994c6838c28a 100644
--- a/lang/python27/Makefile
+++ b/lang/python27/Makefile
@@ -6,7 +6,7 @@
PORTNAME= python26
PORTVERSION= 2.6.1
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= lang python ipv6
MASTER_SITES= ${PYTHON_MASTER_SITES}
MASTER_SITE_SUBDIR= ${PYTHON_MASTER_SITE_SUBDIR}
diff --git a/lang/python27/files/patch-Python_thread__pthread.h b/lang/python27/files/patch-Python_thread__pthread.h
new file mode 100644
index 000000000000..1f4478528024
--- /dev/null
+++ b/lang/python27/files/patch-Python_thread__pthread.h
@@ -0,0 +1,30 @@
+
+$FreeBSD$
+
+--- Python/thread_pthread.h
++++ Python/thread_pthread.h
+@@ -149,6 +149,7 @@
+ {
+ pthread_t th;
+ int status;
++ sigset_t set, oset;
+ #if defined(THREAD_STACK_SIZE) || defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
+ pthread_attr_t attrs;
+ #endif
+@@ -177,6 +178,8 @@
+ #if defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
+ pthread_attr_setscope(&attrs, PTHREAD_SCOPE_SYSTEM);
+ #endif
++ sigfillset(&set);
++ SET_THREAD_SIGMASK(SIG_BLOCK, &set, &oset);
+
+ status = pthread_create(&th,
+ #if defined(THREAD_STACK_SIZE) || defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
+@@ -188,6 +191,7 @@
+ (void *)arg
+ );
+
++ SET_THREAD_SIGMASK(SIG_SETMASK, &oset, NULL);
+ #if defined(THREAD_STACK_SIZE) || defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
+ pthread_attr_destroy(&attrs);
+ #endif