diff options
author | recht <recht> | 2004-05-12 16:25:34 +0000 |
---|---|---|
committer | recht <recht> | 2004-05-12 16:25:34 +0000 |
commit | 8e4c714b078fc784f1059502a9755e733910fa4f (patch) | |
tree | 6e635c3869ddfbaa175d9d6fb579c9bb46f4ee8c /lang/python23-pth | |
parent | a37b87687351202dbb87d59ebf140df90cfffd6f (diff) | |
download | pkgsrc-8e4c714b078fc784f1059502a9755e733910fa4f.tar.gz |
Add missing patches and disable PKGVIEW installation for now until the
issues with modules are sorted out.
Diffstat (limited to 'lang/python23-pth')
-rw-r--r-- | lang/python23-pth/Makefile | 4 | ||||
-rw-r--r-- | lang/python23-pth/patches/patch-an | 67 | ||||
-rw-r--r-- | lang/python23-pth/patches/patch-ao | 14 |
3 files changed, 84 insertions, 1 deletions
diff --git a/lang/python23-pth/Makefile b/lang/python23-pth/Makefile index df565eaa96a..c3ff95422e0 100644 --- a/lang/python23-pth/Makefile +++ b/lang/python23-pth/Makefile @@ -1,9 +1,11 @@ -# $NetBSD: Makefile,v 1.22 2004/05/12 15:19:49 recht Exp $ +# $NetBSD: Makefile,v 1.23 2004/05/12 16:25:34 recht Exp $ # PKGNAME= python23-pth-2.3.3 PKGREVISION= 4 +#PKG_INSTALLATION_TYPES= overwrite pkgviews + PTHREAD_OPTS= require .include "../../mk/pthread.buildlink3.mk" .if ${PTHREAD_TYPE} == "pth" diff --git a/lang/python23-pth/patches/patch-an b/lang/python23-pth/patches/patch-an new file mode 100644 index 00000000000..707f4f57b18 --- /dev/null +++ b/lang/python23-pth/patches/patch-an @@ -0,0 +1,67 @@ +$NetBSD: patch-an,v 1.1 2004/05/12 16:25:34 recht Exp $ + +diff -u python/dist/src/Objects/weakrefobject.c:1.13.6.1 python/dist/src/Objects/weakrefobject.c:1.13.6.3 +--- Objects/weakrefobject.c:1.13.6.1 Thu Nov 20 14:13:51 2003 ++++ Objects/weakrefobject.c Wed Feb 4 15:13:43 2004 +@@ -624,20 +624,29 @@ + } + list = GET_WEAKREFS_LISTPTR(ob); + get_basic_refs(*list, &ref, &proxy); +- if (callback == NULL || callback == Py_None) ++ if (callback == Py_None) ++ callback = NULL; ++ if (callback == NULL) + /* return existing weak reference if it exists */ + result = ref; + if (result != NULL) +- Py_XINCREF(result); ++ Py_INCREF(result); + else { ++ /* Note: new_weakref() can trigger cyclic GC, so the weakref ++ list on ob can be mutated. This means that the ref and ++ proxy pointers we got back earlier may have been collected, ++ so we need to compute these values again before we use ++ them. */ + result = new_weakref(ob, callback); + if (result != NULL) { + if (callback == NULL) { + insert_head(result, list); + } + else { +- PyWeakReference *prev = (proxy == NULL) ? ref : proxy; ++ PyWeakReference *prev; + ++ get_basic_refs(*list, &ref, &proxy); ++ prev = (proxy == NULL) ? ref : proxy; + if (prev == NULL) + insert_head(result, list); + else +@@ -664,12 +673,19 @@ + } + list = GET_WEAKREFS_LISTPTR(ob); + get_basic_refs(*list, &ref, &proxy); ++ if (callback == Py_None) ++ callback = NULL; + if (callback == NULL) + /* attempt to return an existing weak reference if it exists */ + result = proxy; + if (result != NULL) +- Py_XINCREF(result); ++ Py_INCREF(result); + else { ++ /* Note: new_weakref() can trigger cyclic GC, so the weakref ++ list on ob can be mutated. This means that the ref and ++ proxy pointers we got back earlier may have been collected, ++ so we need to compute these values again before we use ++ them. */ + result = new_weakref(ob, callback); + if (result != NULL) { + PyWeakReference *prev; +@@ -678,6 +694,7 @@ + result->ob_type = &_PyWeakref_CallableProxyType; + else + result->ob_type = &_PyWeakref_ProxyType; ++ get_basic_refs(*list, &ref, &proxy); + if (callback == NULL) + prev = ref; + else diff --git a/lang/python23-pth/patches/patch-ao b/lang/python23-pth/patches/patch-ao new file mode 100644 index 00000000000..9d474757c36 --- /dev/null +++ b/lang/python23-pth/patches/patch-ao @@ -0,0 +1,14 @@ +$NetBSD: patch-ao,v 1.1 2004/05/12 16:25:34 recht Exp $ + +diff -u python/dist/src/Objects/intobject.c:2.105 python/dist/src/Objects/intobject.c:2.105.8.1 +--- Objects/intobject.c:2.105 Sat Jun 28 13:04:24 2003 ++++ Objects/intobject.c Sun Feb 8 10:56:07 2004 +@@ -1080,7 +1080,7 @@ + int ival; + #if NSMALLNEGINTS + NSMALLPOSINTS > 0 + for (ival = -NSMALLNEGINTS; ival < NSMALLPOSINTS; ival++) { +- if ((free_list = fill_free_list()) == NULL) ++ if (!free_list && (free_list = fill_free_list()) == NULL) + return 0; + /* PyObject_New is inlined */ + v = free_list; |