]> git.pld-linux.org Git - packages/python-pyevent.git/commitdiff
- fixed building with libevent 2.1 auto/th/python-pyevent-0.3-11
authorJan Rękorajski <baggins@pld-linux.org>
Tue, 4 Apr 2017 17:27:07 +0000 (19:27 +0200)
committerJan Rękorajski <baggins@pld-linux.org>
Tue, 4 Apr 2017 17:27:07 +0000 (19:27 +0200)
- rel 11

libevent-2.1.patch [new file with mode: 0644]
python-pyevent.spec
test-path.patch [new file with mode: 0644]

diff --git a/libevent-2.1.patch b/libevent-2.1.patch
new file mode 100644 (file)
index 0000000..614c365
--- /dev/null
@@ -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()
index f0ac9b53ba5077a6ac1c5d9b966e3af4537c36c7..4c2452baa78302a3785bab2462b8642862abf9b2 100644 (file)
@@ -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/test-path.patch b/test-path.patch
new file mode 100644 (file)
index 0000000..a6b256d
--- /dev/null
@@ -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):
This page took 2.132859 seconds and 4 git commands to generate.