<pre style='margin:0'>
Joshua Root (jmroot) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/9172b760fa51953800d942e3865654316bd89f5c">https://github.com/macports/macports-ports/commit/9172b760fa51953800d942e3865654316bd89f5c</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 9172b760fa51953800d942e3865654316bd89f5c
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Thu Oct 20 21:55:57 2022 +1100

<span style='display:block; white-space:pre;color:#404040;'>    New port: py-event
</span>---
 python/py-event/Portfile             | 45 ++++++++++++++++++++++++++++++
 python/py-event/files/py3.patch      | 54 ++++++++++++++++++++++++++++++++++++
 python/py-event/files/setup.py.patch | 15 ++++++++++
 3 files changed, 114 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-event/Portfile b/python/py-event/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..004e93c76f1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-event/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,45 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem          1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           github 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           python 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name                py-event
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup        jaraco pyevent 842e0ac2609da70283309d156ce290bee9837fb3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version             0.4.3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers         nomaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license             BSD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description         Python extension module for libevent
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description    This module provides a mechanism to execute a \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    function when a specific event on a file handle, \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    file descriptor, or signal occurs, or after a \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    given time has passed.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage            https://pypi.python.org/pypi/event/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.tarball_from archive
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           rmd160 8221100d17a22af4ea244e462321c599cb6675e9 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256 5e4727fd7461aee9d7f3fe5dfc6f54b49301f582e7020224c8827c9e7c361426
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.versions     310
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.pep517       yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {$subport ne $name} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_build-append    port:py${python.version}-cython
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_lib-append  port:libevent1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles      setup.py.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    py3.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        reinplace "s|__PREFIX__|${prefix}|" ${worksrcpath}/setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set docdir ${prefix}/share/doc/${subport}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        xinstall -m 755 -d ${destroot}${docdir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        xinstall -m 644 -W ${worksrcpath} README \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ${destroot}${docdir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    livecheck.type  none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-event/files/py3.patch b/python/py-event/files/py3.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..3fe4cc6bc94
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-event/files/py3.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,54 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- evdns.pxi.orig 2015-03-15 07:27:21.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ evdns.pxi      2022-10-20 21:33:59.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -49,13 +49,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if t == DNS_IPv4_A:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         x = []
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         for i from 0 <= i < count:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            x.append(PyString_FromStringAndSize(<char *>addrs + (i * 4), 4))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            x.append(PyBytes_FromStringAndSize(<char *>addrs + (i * 4), 4))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     elif t == DNS_IPv6_AAAA:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         x = []
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         for i from 0 <= i < count:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            x.append(PyString_FromStringAndSize(<char *>addrs + (i * 16), 16))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            x.append(PyBytes_FromStringAndSize(<char *>addrs + (i * 16), 16))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     elif t == DNS_PTR and count == 1: # only 1 PTR possible
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        x = PyString_FromString((<char **>addrs)[0])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        x = PyBytes_FromString((<char **>addrs)[0])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         x = None
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- bufferevent.pxi.orig   2015-03-15 07:27:21.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ bufferevent.pxi        2022-10-20 21:35:05.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -116,7 +116,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             size = min(self.bufev.input.off, size)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        buf = PyString_FromStringAndSize(self.bufev.input.buf, size)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        buf = PyBytes_FromStringAndSize(self.bufev.input.buf, size)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         evbuffer_drain(self.bufev.input, size)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return buf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- evhttp.pxi.orig        2015-03-15 07:27:21.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ evhttp.pxi     2022-10-20 21:36:10.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -140,7 +140,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         self._buf = buf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     def read(self, size=-1):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return PyString_FromStringAndSize(EVBUFFER_DATA(self._buf),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return PyBytes_FromStringAndSize(EVBUFFER_DATA(self._buf),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                           EVBUFFER_LENGTH(self._buf))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     def readline(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return evbuffer_readline(self._buf) or ''
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- event.pyx.orig 2022-10-20 20:07:39.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ event.pyx      2022-10-20 21:37:08.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -31,8 +31,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cdef extern from "Python.h":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     void   Py_INCREF(object o)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     void   Py_DECREF(object o)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    object PyString_FromStringAndSize(char *v, int len)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    object PyString_FromString(char *v)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    object PyBytes_FromStringAndSize(char *v, int len)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    object PyBytes_FromString(char *v)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     int    PyObject_AsCharBuffer(object obj, char **buffer, int *buffer_len)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ctypedef void (*event_handler)(int fd, short evtype, void *arg)
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-event/files/setup.py.patch b/python/py-event/files/setup.py.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..ebe589eebe8
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-event/files/setup.py.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,15 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- setup.py.orig  2015-03-15 07:27:21.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ setup.py       2022-10-20 20:05:55.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -27,7 +27,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return best
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def get_extension():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    event = setuptools.Extension(name='event', sources=['event.c'])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    event = setuptools.Extension(name='event', sources=['event.pyx'])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    event.include_dirs = ['__PREFIX__/include/libevent1']
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    event.library_dirs = ['__PREFIX__/lib/libevent1']
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    event.libraries = ['event']
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return event
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     system_libs = itertools.chain(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           glob.iglob('/usr/lib/libevent.*'),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           glob.iglob('/usr/lib64/libevent.*'),
</span></pre><pre style='margin:0'>

</pre>