<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/97fb6180923348c1497da4cf20b3a6ca022873e4">https://github.com/macports/macports-ports/commit/97fb6180923348c1497da4cf20b3a6ca022873e4</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new 97fb6180923 py-pypcap: fix pointer types, add py312/313
</span>97fb6180923 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 97fb6180923348c1497da4cf20b3a6ca022873e4
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Tue Jan 28 12:55:44 2025 +1100
<span style='display:block; white-space:pre;color:#404040;'> py-pypcap: fix pointer types, add py312/313
</span>---
python/py-pypcap/Portfile | 2 +-
python/py-pypcap/files/pcap.pyx.patch | 48 +++++++++++++++++++++++++----------
python/py-pypcap/files/py3.patch | 4 +--
3 files changed, 38 insertions(+), 16 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-pypcap/Portfile b/python/py-pypcap/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index f10ecdb6675..cd25b5e3078 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/python/py-pypcap/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-pypcap/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -20,7 +20,7 @@ checksums md5 034c3cbbfa81aa19e8f685b767c65764 \
</span> sha1 966f62deca16d5086e2ef6694b0c795f273da15c \
rmd160 119dcc393d42678e6fa8f0b0f8b82536ab1efb13
<span style='display:block; white-space:pre;background:#ffe0e0;'>-python.versions 310 311
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.versions 310 311 312 313
</span>
if {$subport ne $name} {
depends_build-append port:py${python.version}-cython
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-pypcap/files/pcap.pyx.patch b/python/py-pypcap/files/pcap.pyx.patch
</span><span style='display:block; white-space:pre;color:#808080;'>index 93528bd2348..3f1a00c31e9 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/python/py-pypcap/files/pcap.pyx.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-pypcap/files/pcap.pyx.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,5 +1,5 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- pcap.pyx.orig 2005-10-17 09:00:11.000000000 +1000
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ pcap.pyx 2022-10-20 22:52:38.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pcap.pyx.orig 2005-10-17 09:00:11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pcap.pyx 2025-01-28 12:50:18
</span> @@ -1,7 +1,7 @@
#
# pcap.pyx
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -25,7 +25,7 @@
</span>
cdef extern from "pcap.h":
struct bpf_insn:
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -42,6 +42,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -42,8 +42,12 @@
</span> unsigned int caplen
ctypedef struct pcap_t:
int __xxx
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -34,8 +34,11 @@
</span> + pcap_if_t *next
+ char *name
<span style='display:block; white-space:pre;background:#ffe0e0;'>- ctypedef void (*pcap_handler)(void *arg, pcap_pkthdr *hdr, char *pkt)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-ctypedef void (*pcap_handler)(void *arg, pcap_pkthdr *hdr, char *pkt)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ctypedef void (*pcap_handler)(unsigned char *arg, const pcap_pkthdr *hdr, const unsigned char *pkt)
</span>
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ cdef extern from "pcap.h":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pcap_t *pcap_open_live(char *device, int snaplen, int promisc,
</span> @@ -62,6 +66,13 @@
char *pcap_geterr(pcap_t *p)
void pcap_close(pcap_t *p)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -59,7 +62,26 @@
</span> int pcap_ex_compile_nopcap(int snaplen, int dlt,
bpf_program *fp, char *str,
int optimize, unsigned int netmask)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -134,16 +145,18 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -86,14 +97,16 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void *args
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int got_exc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-cdef void __pcap_handler(void *arg, pcap_pkthdr *hdr, char *pkt):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++cdef void __pcap_handler(unsigned char *arg, const pcap_pkthdr *hdr, const unsigned char *pkt):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cdef pcap_handler_ctx *ctx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ cdef char *pktmem
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cdef int gil
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ctx = <pcap_handler_ctx *>arg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pktmem = <char *>pkt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gil = PyGILState_Ensure()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (<object>ctx.callback)(hdr.ts.tv_sec + (hdr.ts.tv_usec/1000000.0),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- PyBuffer_FromMemory(pkt, hdr.caplen),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ PyBuffer_FromMemory(pktmem, hdr.caplen),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *(<object>ctx.args))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ except:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ctx.got_exc = 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -134,16 +147,18 @@
</span> raise IOError, 'bad filter'
def filter(self, buf):
"""Return boolean match for buf against our filter."""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -81,7 +103,7 @@
</span>
Open a handle to a packet capture descriptor.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -152,6 +165,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -152,6 +167,9 @@
</span> or None to open the first available up interface
snaplen -- maximum number of bytes to capture for each packet
promisc -- boolean to specify promiscuous mode sniffing
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -91,7 +113,7 @@
</span> immediate -- disable buffering, if possible
"""
cdef pcap_t *__pcap
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -161,7 +177,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -161,7 +179,7 @@
</span> cdef int __dloff
def __init__(self, name=None, snaplen=65535, promisc=True,
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -100,7 +122,7 @@
</span> global dltoff
cdef char *p
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -171,7 +187,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -171,7 +189,7 @@
</span> raise OSError, self.__ebuf
else:
p = name
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -109,7 +131,7 @@
</span> self.__pcap = pcap_open_offline(p, self.__ebuf)
if not self.__pcap:
self.__pcap = pcap_open_live(pcap_ex_name(p), snaplen, promisc,
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -184,7 +200,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -184,7 +202,7 @@
</span> try: self.__dloff = dltoff[pcap_datalink(self.__pcap)]
except KeyError: pass
if immediate and pcap_ex_immediate(self.__pcap) < 0:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -118,7 +140,7 @@
</span>
property name:
"""Network interface or dumpfile name."""
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -243,16 +259,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -243,16 +261,6 @@
</span> """Return datalink type (DLT_* values)."""
return pcap_datalink(self.__pcap)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -135,7 +157,7 @@
</span> def __add_pkts(self, ts, pkt, pkts):
pkts.append((ts, pkt))
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -288,30 +294,47 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -288,30 +296,47 @@
</span> raise exc[0], exc[1], exc[2]
return n
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -189,7 +211,7 @@
</span>
def geterr(self):
"""Return the last error message associated with this handle."""
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -334,12 +357,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -334,12 +359,13 @@
</span> cdef char *pkt
cdef int n
while 1:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -206,7 +228,7 @@
</span> elif n == -1:
raise KeyboardInterrupt
elif n == -2:
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -364,3 +388,36 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -364,3 +390,36 @@
</span> raise OSError, ebuf
return p
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-pypcap/files/py3.patch b/python/py-pypcap/files/py3.patch
</span><span style='display:block; white-space:pre;color:#808080;'>index dcb44f22bb6..4f7f8e45385 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/python/py-pypcap/files/py3.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-pypcap/files/py3.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14,8 +14,8 @@
</span> gil = PyGILState_Ensure()
try:
(<object>ctx.callback)(hdr.ts.tv_sec + (hdr.ts.tv_usec/1000000.0),
<span style='display:block; white-space:pre;background:#ffe0e0;'>-- PyBuffer_FromMemory(pkt, hdr.caplen),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ PyMemoryView_FromMemory(pkt, hdr.caplen, PyBUF_WRITE),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- PyBuffer_FromMemory(pktmem, hdr.caplen),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ PyMemoryView_FromMemory(pktmem, hdr.caplen, PyBUF_WRITE),
</span> *(<object>ctx.args))
except:
ctx.got_exc = 1
</pre><pre style='margin:0'>
</pre>