I would like to use pcapy in a python3 module, so we need to update it.
However, when I run the test program, I get the following error:
python2.7:/usr/local/lib/python2.7/site-packages/pcapy.so: undefined
symbol '_Z10bpf_filterPK8bpf_insnPKhjj'
Traceback (most recent call last):
File "/usr/local/tests/pcapytests.py", line 8, in <module>
import pcapy
ImportError: Cannot load specified object
Based on what I can tell, pcapy.so is linked against libpcap, which
should provide those symbols.
$ ldd /usr/local/lib/python2.7/site-packages/pcapy.so
/usr/local/lib/python2.7/site-packages/pcapy.so:
Start End Type Open Ref GrpRef Name
000010ffb9019000 000010ffb921f000 dlib 2 0 0
/usr/local/lib/python2.7/site-packages/pcapy.so
000010ff88f9c000 000010ff891c1000 rlib 0 1 0
/usr/lib/libpcap.so.8.1
000010ff5d7d6000 000010ff5daed000 rlib 0 1 0
/usr/lib/libstdc++.so.57.0
000010ff9925f000 000010ff99636000 rlib 0 1 0
/usr/local/lib/libpython2.7.so.0.0
000010fee0ee9000 000010fee1110000 rlib 0 3 0
/usr/lib/libm.so.10.0
000010ff63fa3000 000010ff641b2000 rlib 0 1 0
/usr/lib/libpthread.so.23.0
000010fef2919000 000010fef2b26000 rlib 0 1 0
/usr/lib/libutil.so.12.1
Ideas?
Index: net/py-pcapy/Makefile
===================================================================
RCS file: /cvs/openbsd/ports/net/py-pcapy/Makefile,v
retrieving revision 1.11
diff -u -p -u -p -r1.11 Makefile
--- net/py-pcapy/Makefile 17 Apr 2015 16:15:59 -0000 1.11
+++ net/py-pcapy/Makefile 30 Oct 2016 13:20:14 -0000
@@ -2,25 +2,27 @@
COMMENT = libpcap module for Python
-MODPY_EGG_VERSION = 0.10.5
+MODPY_EGG_VERSION = 0.10.10
DISTNAME = pcapy-${MODPY_EGG_VERSION}
PKGNAME = py-${DISTNAME}
-REVISION = 7
CATEGORIES = net devel
-HOMEPAGE = http://oss.coresecurity.com/projects/pcapy.html
+HOMEPAGE =
https://www.coresecurity.com/corelabs-research/open-source-tools/pcapy
# Apache
PERMIT_PACKAGE_CDROM = Yes
WANTLIB += ${MODPY_WANTLIB} m stdc++ pcap pthread util
-MASTER_SITES = http://oss.coresecurity.com/repo/
+MASTER_SITES = https://github.com/CoreSecurity/pcapy/archive/
+DISTFILES = ${DISTNAME}.tar.gz{${MODPY_EGG_VERSION}.tar.gz}
MODULES = lang/python
+MODPY_SETUPTOOLS = Yes
-NO_TEST = Yes
+FLAVORS = python3
+FLAVOR ?=
MAKE_ENV += LDSHARED="${CC} -shared -fPIC"
MAKE_ENV += LDFLAGS="-L${LOCALBASE}/lib"
@@ -28,5 +30,8 @@ MAKE_ENV += LDFLAGS="-L${LOCALBASE}/lib
# fix msdos line-endings
pre-patch:
cd ${WRKSRC}; perl -i -pe 's/\r$$//' `find . -type f`
+
+pre-configure:
+ ${SUBST_CMD} ${WRKSRC}/setup.py
.include <bsd.port.mk>
Index: net/py-pcapy/distinfo
===================================================================
RCS file: /cvs/openbsd/ports/net/py-pcapy/distinfo,v
retrieving revision 1.2
diff -u -p -u -p -r1.2 distinfo
--- net/py-pcapy/distinfo 18 Jan 2015 03:14:51 -0000 1.2
+++ net/py-pcapy/distinfo 30 Oct 2016 13:05:32 -0000
@@ -1,2 +1,2 @@
-SHA256 (pcapy-0.10.5.tar.gz) = gKdj2RgUg24M0eV7Y1GdxgITtCujxIbUeUyrrjD9elc=
-SIZE (pcapy-0.10.5.tar.gz) = 18884
+SHA256 (pcapy-0.10.10.tar.gz) = NEdTmoUWrhkIR1ZBqA/6EvaYanY1eW/Uz1ayJ4C7bok=
+SIZE (pcapy-0.10.10.tar.gz) = 28332
Index: net/py-pcapy/patches/patch-pcap_pkthdr_cc
===================================================================
RCS file: /cvs/openbsd/ports/net/py-pcapy/patches/patch-pcap_pkthdr_cc,v
retrieving revision 1.1.1.1
diff -u -p -u -p -r1.1.1.1 patch-pcap_pkthdr_cc
--- net/py-pcapy/patches/patch-pcap_pkthdr_cc 3 Apr 2009 15:45:41 -0000
1.1.1.1
+++ net/py-pcapy/patches/patch-pcap_pkthdr_cc 30 Oct 2016 13:06:29 -0000
@@ -1,7 +1,7 @@
$OpenBSD: patch-pcap_pkthdr_cc,v 1.1.1.1 2009/04/03 15:45:41 sthen Exp $
---- pcap_pkthdr.cc.orig Fri Apr 3 11:52:32 2009
-+++ pcap_pkthdr.cc Fri Apr 3 11:52:36 2009
-@@ -24,7 +24,7 @@
+--- pcap_pkthdr.cc.orig Sun Oct 30 14:05:35 2016
++++ pcap_pkthdr.cc Sun Oct 30 14:05:35 2016
+@@ -23,7 +23,7 @@
// internal pcapobject
typedef struct {
PyObject_HEAD
Index: net/py-pcapy/patches/patch-setup_py
===================================================================
RCS file: /cvs/openbsd/ports/net/py-pcapy/patches/patch-setup_py,v
retrieving revision 1.1
diff -u -p -u -p -r1.1 patch-setup_py
--- net/py-pcapy/patches/patch-setup_py 25 Dec 2011 23:59:06 -0000 1.1
+++ net/py-pcapy/patches/patch-setup_py 30 Oct 2016 13:20:35 -0000
@@ -1,12 +1,12 @@
$OpenBSD: patch-setup_py,v 1.1 2011/12/25 23:59:06 fgsch Exp $
---- setup.py.orig Mon Dec 12 08:57:21 2011
-+++ setup.py Mon Dec 12 08:57:34 2011
-@@ -60,7 +60,7 @@ setup(name = PACKAGE_NAME,
- include_dirs = include_dirs,
- library_dirs = library_dirs,
- libraries = libraries)],
-- data_files = [(os.path.join('share', 'doc', PACKAGE_NAME),
-+ data_files = [(os.path.join('share', 'doc', 'py-%s' % PACKAGE_NAME),
- ['README', 'LICENSE', 'pcapy.html'])],
+--- setup.py.orig Sun Oct 30 14:05:35 2016
++++ setup.py Sun Oct 30 14:06:22 2016
+@@ -72,7 +72,7 @@ setup(name=PACKAGE_NAME,
+ libraries=libraries)],
+ # scripts=['tests/pcapytests.py', 'tests/96pings.pcap'],
+ data_files=[
+- (os.path.join('share', 'doc', PACKAGE_NAME),
++ (os.path.join('share', 'doc', '${MODPY_PY_PREFIX}%s' %
PACKAGE_NAME),
+ ['README', 'LICENSE', 'pcapy.html']),
+ ('tests', ['tests/pcapytests.py', 'tests/96pings.pcap'])]
)
-
Index: net/py-pcapy/pkg/PLIST
===================================================================
RCS file: /cvs/openbsd/ports/net/py-pcapy/pkg/PLIST,v
retrieving revision 1.2
diff -u -p -u -p -r1.2 PLIST
--- net/py-pcapy/pkg/PLIST 25 Dec 2011 23:59:06 -0000 1.2
+++ net/py-pcapy/pkg/PLIST 30 Oct 2016 13:27:17 -0000
@@ -1,7 +1,14 @@
@comment $OpenBSD: PLIST,v 1.2 2011/12/25 23:59:06 fgsch Exp $
-lib/python${MODPY_VERSION}/site-packages/pca${MODPY_PY_PREFIX}${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info
+lib/python${MODPY_VERSION}/site-packages/pcapy-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/
+lib/python${MODPY_VERSION}/site-packages/pcapy-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/PKG-INFO
+lib/python${MODPY_VERSION}/site-packages/pcapy-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/SOURCES.txt
+lib/python${MODPY_VERSION}/site-packages/pcapy-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/dependency_links.txt
+lib/python${MODPY_VERSION}/site-packages/pcapy-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/top_level.txt
lib/python${MODPY_VERSION}/site-packages/pcapy.so
share/doc/${MODPY_PY_PREFIX}pcapy/
share/doc/${MODPY_PY_PREFIX}pcapy/LICENSE
share/doc/${MODPY_PY_PREFIX}pcapy/README
share/doc/${MODPY_PY_PREFIX}pcapy/pcapy.html
+tests/
+tests/96pings.pcap
+tests/pcapytests.py
--
Hackers do it with fewer instructions.