[packages/python-pyevent] - fixed building with libevent 2.1 - rel 11
baggins
baggins at pld-linux.org
Tue Apr 4 19:27:26 CEST 2017
commit 4d591ea2a517f76c89cfb4fdebcd5843a4f2cd74
Author: Jan Rękorajski <baggins at pld-linux.org>
Date: Tue Apr 4 19:27:07 2017 +0200
- fixed building with libevent 2.1
- rel 11
libevent-2.1.patch | 101 ++++++++++++++++++++++++++++++++++++++++++++++++++++
python-pyevent.spec | 15 ++++++--
test-path.patch | 11 ++++++
3 files changed, 124 insertions(+), 3 deletions(-)
---
diff --git a/python-pyevent.spec b/python-pyevent.spec
index f0ac9b5..4c2452b 100644
--- a/python-pyevent.spec
+++ b/python-pyevent.spec
@@ -1,17 +1,22 @@
+#
+# Conditional build:
+%bcond_without tests # do not perform "make test"
-%define module pyevent
+%define module pyevent
Summary: Python extension module for libevent
Summary(pl.UTF-8): Moduł rozszerzenia Pythona dla biblioteki libevent
Name: python-%{module}
Version: 0.3
-Release: 10
+Release: 11
License: MIT
Group: Libraries/Python
Source0: http://pyevent.googlecode.com/files/%{module}-%{version}.tar.gz
# Source0-md5: 584912c92d08bf005283fb29a47a6e4d
Patch0: %{name}-python25.patch
Patch1: %{name}-setup.patch
+Patch2: libevent-2.1.patch
+Patch3: test-path.patch
URL: http://code.google.com/p/pyevent/
BuildRequires: rpmbuild(macros) >= 1.710
BuildRequires: libevent-devel
@@ -31,9 +36,13 @@ Moduł rozszerzenia Pythona dla biblioteki libevent.
%setup -q -n %{module}-%{version}
%patch0 -p1
%patch1 -p1
+%patch2 -p1
+%patch3 -p1
%build
-%{__python} setup.py build_ext
+pyrexc event.pyx
+%py_build
+%{?with_tests:./test.py}
%install
rm -rf $RPM_BUILD_ROOT
diff --git a/libevent-2.1.patch b/libevent-2.1.patch
new file mode 100644
index 0000000..614c365
--- /dev/null
+++ b/libevent-2.1.patch
@@ -0,0 +1,101 @@
+diff -ur pyevent-0.3/event.pyx pyevent-0.3-libevent-2.1/event.pyx
+--- pyevent-0.3/event.pyx 2017-04-04 19:11:05.337824387 +0200
++++ pyevent-0.3-libevent-2.1/event.pyx 2017-04-04 19:20:30.738730651 +0200
+@@ -36,9 +36,12 @@
+ unsigned int tv_sec
+ unsigned int tv_usec
+
++ struct event_callback_t "event_callback":
++ short evcb_flags
++
+ struct event_t "event":
++ event_callback_t ev_evcallback
+ int ev_fd
+- int ev_flags
+ void *ev_arg
+
+ void event_init()
+@@ -52,6 +52,7 @@
+ int event_del(event_t *ev)
+ int event_dispatch()
+ int event_loop(int loop)
++ int event_loopbreak()
+ int event_pending(event_t *ev, short, timeval *tv)
+
+ int EVLOOP_ONCE
+@@ -65,9 +66,6 @@
+
+ __event_exc = None
+
+-cdef int __event_sigcb():
+- return -1
+-
+ cdef void __event_handler(int fd, short evtype, void *arg):
+ (<object>arg).__callback(evtype)
+
+@@ -112,8 +110,6 @@
+ event_set(&self.ev, handle, evtype, handler, <void *>self)
+
+ def __simple_callback(self, short evtype):
+- cdef extern int event_gotsig
+- cdef extern int (*event_sigcb)()
+ global __event_exc
+ try:
+ if self.callback(*self.args) != None:
+@@ -122,24 +118,20 @@
+ else:
+ event_add(&self.ev, NULL)
+ except:
++ event_loopbreak()
+ __event_exc = sys.exc_info()
+- event_sigcb = __event_sigcb
+- event_gotsig = 1
+ # XXX - account for event.signal() EV_PERSIST
+ if not (evtype & EV_SIGNAL) and \
+ not event_pending(&self.ev, EV_READ|EV_WRITE|EV_SIGNAL|EV_TIMEOUT, NULL):
+ Py_DECREF(self)
+
+ def __callback(self, short evtype):
+- cdef extern int event_gotsig
+- cdef extern int (*event_sigcb)()
+ global __event_exc
+ try:
+ self.callback(self, self.handle, evtype, self.args)
+ except:
++ event_loopbreak()
+ __event_exc = sys.exc_info()
+- event_sigcb = __event_sigcb
+- event_gotsig = 1
+ if not event_pending(&self.ev, EV_READ|EV_WRITE|EV_SIGNAL|EV_TIMEOUT, NULL):
+ Py_DECREF(self)
+
+@@ -153,7 +156,7 @@
+ self.timeout = timeout
+ if timeout >= 0.0:
+ self.tv.tv_sec = <long>timeout
+- self.tv.tv_usec = (timeout - <float>self.tv.tv_sec) * 1000000.0
++ self.tv.tv_usec = <long>((timeout - <float>self.tv.tv_sec) * 1000000.0)
+ event_add(&self.ev, &self.tv)
+ else:
+ self.tv.tv_sec = self.tv.tv_usec = 0
+@@ -174,7 +177,7 @@
+
+ def __repr__(self):
+ return '<event flags=0x%x, handle=%s, callback=%s, arg=%s>' % \
+- (self.ev.ev_flags, self.handle, self.callback, self.args)
++ (self.ev.ev_evcallback.evcb_flags, self.handle, self.callback, self.args)
+
+ cdef class read(event):
+ """read(handle, callback, *args) -> event object
+@@ -266,10 +266,7 @@
+
+ def abort():
+ """Abort event dispatch loop."""
+- cdef extern int event_gotsig
+- cdef extern int (*event_sigcb)()
+- event_sigcb = __event_sigcb
+- event_gotsig = 1
++ event_loopbreak()
+
+ # XXX - make sure event queue is always initialized.
+ init()
diff --git a/test-path.patch b/test-path.patch
new file mode 100644
index 0000000..a6b256d
--- /dev/null
+++ b/test-path.patch
@@ -0,0 +1,11 @@
+--- pyevent-0.3/test.py~ 2005-01-26 02:43:24.000000000 +0100
++++ pyevent-0.3/test.py 2017-04-04 19:25:57.332923924 +0200
+@@ -1,7 +1,7 @@
+ #!/usr/bin/env python
+
+ import glob, os, signal, sys, time, unittest
+-sys.path.insert(0, glob.glob('./build/lib.*')[0])
++sys.path.insert(0, glob.glob('./build-2/lib.*')[0])
+ import event
+
+ class EventTest(unittest.TestCase):
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/python-pyevent.git/commitdiff/4d591ea2a517f76c89cfb4fdebcd5843a4f2cd74
More information about the pld-cvs-commit
mailing list