From delphij@tarsier.delphij.net  Fri Aug 24 10:36:27 2007
Return-Path: <delphij@tarsier.delphij.net>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 30FB316A4DC
	for <FreeBSD-gnats-submit@freebsd.org>; Fri, 24 Aug 2007 10:36:27 +0000 (UTC)
	(envelope-from delphij@tarsier.delphij.net)
Received: from tarsier.geekcn.org (tarsier.geekcn.org [210.51.165.229])
	by mx1.freebsd.org (Postfix) with ESMTP id B1C9113C459
	for <FreeBSD-gnats-submit@freebsd.org>; Fri, 24 Aug 2007 10:36:25 +0000 (UTC)
	(envelope-from delphij@tarsier.delphij.net)
Received: from localhost (tarsier.geekcn.org [210.51.165.229])
	by tarsier.geekcn.org (Postfix) with ESMTP id 35CF8EB9E0F;
	Fri, 24 Aug 2007 18:36:25 +0800 (CST)
Received: from tarsier.geekcn.org ([210.51.165.229])
	by localhost (mail.geekcn.org [210.51.165.229]) (amavisd-new, port 10024)
	with ESMTP id jY7lx7Az8K-e; Fri, 24 Aug 2007 18:36:17 +0800 (CST)
Received: from tarsier.delphij.net (tarsier.freebsd.org.cn [210.51.165.232])
	by tarsier.geekcn.org (Postfix) with ESMTP id 8FE2DEB7862;
	Fri, 24 Aug 2007 18:36:15 +0800 (CST)
Received: by tarsier.delphij.net (Postfix, from userid 1001)
	id 6A45528449; Fri, 24 Aug 2007 18:36:15 +0800 (CST)
Message-Id: <20070824103615.6A45528449@tarsier.delphij.net>
Date: Fri, 24 Aug 2007 18:36:15 +0800 (CST)
From: Xin LI <delphij@FreeBSD.org>
Reply-To: Xin LI <delphij@FreeBSD.org>
To: FreeBSD-gnats-submit@freebsd.org
Cc: ports2@dclg.ca
Subject: [PATCH] Fix py-kqueue with Python 2.5
X-Send-Pr-Version: 3.113
X-GNATS-Notify: ports2@dclg.ca delphij@FreeBSD.org

>Number:         115781
>Category:       ports
>Synopsis:       [PATCH] Fix devel/py-kqueue with Python 2.5
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    delphij
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Aug 24 10:40:01 GMT 2007
>Closed-Date:    Mon Sep 24 04:12:06 GMT 2007
>Last-Modified:  Mon Sep 24 04:20:01 GMT 2007
>Originator:     Xin LI
>Release:        FreeBSD 6.2-RELEASE-p7 i386
>Organization:
The FreeBSD Project
>Environment:
System: FreeBSD tarsier.delphij.net 6.2-RELEASE-p7 FreeBSD 6.2-RELEASE-p7 #5: Thu Aug 2 22:09:50 CST 2007 delphij@tarsier.delphij.net:/usr/obj/usr/src/sys/TARSIER i386


>Description:
	With python 2.5, the Python 1.5 API has been changed, therefore,
	we have to reflect these changes or py-kqueue would crash.

	Maintainer CC'ed.  This bug is critical, which makes py-kqueue
	unusable with Python 2.5.
>How-To-Repeat:
	Python would crash with the following codelet:

	import KQueue
	p = KQueue.KQueue()
>Fix:


--- patch-py-kqueue begins here ---
Index: Makefile
===================================================================
RCS file: /home/ncvs/ports/devel/py-kqueue/Makefile,v
retrieving revision 1.16
diff -u -p -r1.16 Makefile
--- Makefile	30 Jul 2007 09:41:15 -0000	1.16
+++ Makefile	24 Aug 2007 10:31:40 -0000
@@ -7,7 +7,7 @@
 
 PORTNAME=		kqueue
 PORTVERSION=		1.4
-PORTREVISION=		1
+PORTREVISION=		2
 CATEGORIES=		devel python
 MASTER_SITES=		http://ox.eicat.ca/~dgilbert/files/
 PKGNAMEPREFIX=		py-
Index: files/patch-kqsyscallmodule.c
===================================================================
RCS file: files/patch-kqsyscallmodule.c
diff -N files/patch-kqsyscallmodule.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-kqsyscallmodule.c	24 Aug 2007 10:31:14 -0000
@@ -0,0 +1,61 @@
+--- ./kqsyscallmodule.c.orig	2001-01-29 10:59:50.000000000 +0800
++++ ./kqsyscallmodule.c	2007-08-24 18:27:42.250897722 +0800
+@@ -42,6 +42,12 @@
+ 
+ #define MAX_KEVENTS 512
+ 
++#if PYTHON_API_VERSION <= 1007
++    /* 1.5 compatibility */
++#define PyObject_New PyObject_NEW
++#define PyObject_Del PyMem_DEL
++#endif
++
+ // ----------------------------------------------------------------------
+ //			    KQEventObject
+ // ----------------------------------------------------------------------
+@@ -58,8 +64,7 @@
+ static KQEventObject *
+ newKQEventObject (PyObject *arg)
+ {
+-  // return PyObject_New (KQEventObject, &KQEvent_Type);
+-  return PyObject_NEW (KQEventObject, &KQEvent_Type);
++  return PyObject_New (KQEventObject, &KQEvent_Type);
+ }
+ 
+ /* KQEvent methods */
+@@ -67,8 +72,7 @@
+ static void
+ KQEvent_dealloc(KQEventObject *self)
+ {
+-  // PyObject_Del(self);
+-  PyMem_DEL (self);
++  PyObject_Del(self);
+ }
+ 
+ // --------------------------------------------------------------------------------
+@@ -201,14 +205,14 @@
+ static KQueueObject *
+ newKQueueObject (PyObject *arg)
+ {
+-  KQueueObject * self = PyObject_NEW (KQueueObject, &KQueue_Type);
++  KQueueObject * self = PyObject_New(KQueueObject, &KQueue_Type);
+   if (!self) {
+     PyErr_SetFromErrno (PyExc_MemoryError);
+     return NULL;
+   } else {
+     int kqfd = kqueue();
+     if (kqfd < 0) {
+-      PyMem_DEL (self);
++      PyObject_Del(self);
+       PyErr_SetFromErrno (PyExc_OSError);
+       return NULL;
+     } else {
+@@ -234,7 +238,7 @@
+ KQueue_dealloc(KQueueObject *self)
+ {
+   close (self->fd);
+-  PyMem_DEL(self);
++  PyObject_Del(self);
+ }
+ 
+ /* Call kevent(2) and do appropriate digestion of lists. */
--- patch-py-kqueue ends here ---


>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-ports-bugs->freebsd-python 
Responsible-Changed-By: edwin 
Responsible-Changed-When: Fri Aug 24 11:14:21 UTC 2007 
Responsible-Changed-Why:  
freebsd-python@ wants to have py- PRs 

http://www.freebsd.org/cgi/query-pr.cgi?pr=115781 
State-Changed-From-To: open->feedback 
State-Changed-By: edwin 
State-Changed-When: Fri Aug 24 11:14:27 UTC 2007 
State-Changed-Why:  
Awaiting maintainers feedback 

http://www.freebsd.org/cgi/query-pr.cgi?pr=115781 
Responsible-Changed-From-To: freebsd-python->delphij 
Responsible-Changed-By: delphij 
Responsible-Changed-When: Fri Aug 24 11:18:55 UTC 2007 
Responsible-Changed-Why:  
Take. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=115781 
State-Changed-From-To: feedback->closed 
State-Changed-By: delphij 
State-Changed-When: Mon Sep 24 04:11:38 UTC 2007 
State-Changed-Why:  
Committed due to feedback timeout. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=115781 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/115781: commit references a PR
Date: Mon, 24 Sep 2007 04:11:29 +0000 (UTC)

 delphij     2007-09-24 04:11:23 UTC
 
   FreeBSD ports repository
 
   Modified files:
     devel/py-kqueue      Makefile 
   Added files:
     devel/py-kqueue/files patch-kqsyscallmodule.c 
   Log:
   Fix py-kqueue for python 2.5.x.
   
   PR:             ports/115781
   Sponsored by:   SINA Corporation
   Approved by:    maintainer timeout
   
   Revision  Changes    Path
   1.17      +1 -1      ports/devel/py-kqueue/Makefile
   1.1       +61 -0     ports/devel/py-kqueue/files/patch-kqsyscallmodule.c (new)
 _______________________________________________
 cvs-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/cvs-all
 To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
 
>Unformatted:
