pynetwork / pypcap

pypcap - python libpcap module, forked from code.google.com/p/pypcap
Other
299 stars 75 forks source link

Fix setup #71

Closed lambdalisue closed 6 years ago

lambdalisue commented 6 years ago

This PR closes the following issues

Windows 10 Pro + Python 3.6
$ python setup.py bdist
Found pcap headers in ..\wpdpack\include\pcap.h
Found libraries in ..\wpdpack\lib/x64\wpcap.lib
found pcap_setdirection
found pcap_setnonblock
found pcap_compile_nopcap function
found pcap_file function
running bdist
running bdist_dumb
running build
running build_ext
building 'pcap' extension
creating build
creating build\temp.win-amd64-3.6
creating build\temp.win-amd64-3.6\Release
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DHAVE_PCAP_SETDIRECTION=1 -DHAVE_PCAP_SETNONBLOCK=1 -DHAVE_PCAP_COMPILE_NOPCAP=1 -DHAVE_PCAP_FILE=1 -I..\wpdpack\include -IC:\Users\alisue\Code\github.com\lambdalisue\pypcap\.venv\include -IC:\Python36\include -IC:\Python36\include "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\8.1\include\shared" "-IC:\Program Files (x86)\Windows Kits\8.1\include\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\winrt" /Tcpcap.c /Fobuild\temp.win-amd64-3.6\Release\pcap.obj -DWIN32 -DWPCAP -D_CRT_SECURE_NO_WARNINGS
pcap.c
pcap.c(19904): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored
pcap.c(26219): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored
pcap.c(26239): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored
pcap.c(26240): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored
pcap.c(26244): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored
pcap.c(26246): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored
pcap.c(26253): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored
pcap.c(26255): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored
pcap.c(26262): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored
pcap.c(26264): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored
pcap.c(26284): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored
pcap.c(26287): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored
pcap.c(26294): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored
pcap.c(26295): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored
pcap.c(26296): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored
pcap.c(26300): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored
pcap.c(26302): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored
pcap.c(26309): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored
pcap.c(26311): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored
pcap.c(26318): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored
pcap.c(26320): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored
pcap.c(26327): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored
pcap.c(26329): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored
pcap.c(26336): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored
pcap.c(26338): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored
pcap.c(26345): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored
pcap.c(26347): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored
pcap.c(26354): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored
pcap.c(26357): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored
pcap.c(26386): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored
pcap.c(26391): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored
pcap.c(26399): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored
pcap.c(26403): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored
pcap.c(26408): warning C4197: '__pyx_atomic_int': top-level volatile in cast is ignored
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DHAVE_PCAP_SETDIRECTION=1 -DHAVE_PCAP_SETNONBLOCK=1 -DHAVE_PCAP_COMPILE_NOPCAP=1 -DHAVE_PCAP_FILE=1 -I..\wpdpack\include -IC:\Users\alisue\Code\github.com\lambdalisue\pypcap\.venv\include -IC:\Python36\include -IC:\Python36\include "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\8.1\include\shared" "-IC:\Program Files (x86)\Windows Kits\8.1\include\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\winrt" /Tcpcap_ex.c /Fobuild\temp.win-amd64-3.6\Release\pcap_ex.obj -DWIN32 -DWPCAP -D_CRT_SECURE_NO_WARNINGS
pcap_ex.c
pcap_ex.c(134): warning C4311: 'type cast': pointer truncation from 'HANDLE' to 'int'
creating C:\Users\alisue\Code\github.com\lambdalisue\pypcap\build\lib.win-amd64-3.6
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\link.exe /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO /LIBPATH:..\wpdpack\lib/x64 /LIBPATH:C:\Users\alisue\Code\github.com\lambdalisue\pypcap\.venv\libs /LIBPATH:C:\Python36\libs /LIBPATH:C:\Python36 /LIBPATH:C:\Users\alisue\Code\github.com\lambdalisue\pypcap\.venv\PCbuild\amd64 "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\LIB\amd64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.10240.0\ucrt\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x64" wpcap.lib iphlpapi.lib /EXPORT:PyInit_pcap build\temp.win-amd64-3.6\Release\pcap.obj build\temp.win-amd64-3.6\Release\pcap_ex.obj /OUT:build\lib.win-amd64-3.6\pcap.cp36-win_amd64.pyd /IMPLIB:build\temp.win-amd64-3.6\Release\pcap.cp36-win_amd64.lib
pcap.obj : warning LNK4197: export 'PyInit_pcap' specified multiple times; using first specification
   Creating library build\temp.win-amd64-3.6\Release\pcap.cp36-win_amd64.lib and object build\temp.win-amd64-3.6\Release\pcap.cp36-win_amd64.exp
Generating code
Finished generating code
installing to build\bdist.win-amd64\dumb
running install
running install_lib
creating build\bdist.win-amd64
creating build\bdist.win-amd64\dumb
creating build\bdist.win-amd64\dumb\Users
creating build\bdist.win-amd64\dumb\Users\alisue
creating build\bdist.win-amd64\dumb\Users\alisue\Code
creating build\bdist.win-amd64\dumb\Users\alisue\Code\github.com
creating build\bdist.win-amd64\dumb\Users\alisue\Code\github.com\lambdalisue
creating build\bdist.win-amd64\dumb\Users\alisue\Code\github.com\lambdalisue\pypcap
creating build\bdist.win-amd64\dumb\Users\alisue\Code\github.com\lambdalisue\pypcap\.venv
creating build\bdist.win-amd64\dumb\Users\alisue\Code\github.com\lambdalisue\pypcap\.venv\Lib
creating build\bdist.win-amd64\dumb\Users\alisue\Code\github.com\lambdalisue\pypcap\.venv\Lib\site-packages
copying build\lib.win-amd64-3.6\pcap.cp36-win_amd64.pyd -> build\bdist.win-amd64\dumb\Users\alisue\Code\github.com\lambdalisue\pypcap\.venv\Lib\site-packages
running install_egg_info
running egg_info
writing pypcap.egg-info\PKG-INFO
writing dependency_links to pypcap.egg-info\dependency_links.txt
writing top-level names to pypcap.egg-info\top_level.txt
reading manifest file 'pypcap.egg-info\SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'pypcap.egg-info\SOURCES.txt'
Copying pypcap.egg-info to build\bdist.win-amd64\dumb\Users\alisue\Code\github.com\lambdalisue\pypcap\.venv\Lib\site-packages\pypcap-1.2.1-py3.6.egg-info
running install_scripts
creating C:\Users\alisue\Code\github.com\lambdalisue\pypcap\dist
creating 'C:\Users\alisue\Code\github.com\lambdalisue\pypcap\dist\pypcap-1.2.1.win-amd64.zip' and adding '.' to it
adding 'Users\alisue\Code\github.com\lambdalisue\pypcap\.venv\Lib\site-packages\pcap.cp36-win_amd64.pyd'
adding 'Users\alisue\Code\github.com\lambdalisue\pypcap\.venv\Lib\site-packages\pypcap-1.2.1-py3.6.egg-info\dependency_links.txt'
adding 'Users\alisue\Code\github.com\lambdalisue\pypcap\.venv\Lib\site-packages\pypcap-1.2.1-py3.6.egg-info\PKG-INFO'
adding 'Users\alisue\Code\github.com\lambdalisue\pypcap\.venv\Lib\site-packages\pypcap-1.2.1-py3.6.egg-info\SOURCES.txt'
adding 'Users\alisue\Code\github.com\lambdalisue\pypcap\.venv\Lib\site-packages\pypcap-1.2.1-py3.6.egg-info\top_level.txt'
removing 'build\bdist.win-amd64\dumb' (and everything under it)
macOS High Sierra + Python 3.6
$ python setup.py bdist
Found pcap headers in /usr/include/pcap.h
Found libraries in /usr/lib/libpcap.dylib
found pcap_setdirection
found pcap_setnonblock
found pcap_compile_nopcap function
found pcap_file function
running bdist
running bdist_dumb
running build
running build_ext
building 'pcap' extension
creating build
creating build/temp.macosx-10.13-x86_64-3.6
clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -DHAVE_PCAP_SETDIRECTION=1 -DHAVE_PCAP_SETNONBLOCK=1 -DHAVE_PCAP_COMPILE_NOPCAP=1 -DHAVE_PCAP_FILE=1 -I/usr/include -I/Users/alisue/Code/github.com/lambdalisue/pypcap/.venv/include -I/Users/alisue/.anyenv/envs/pyenv/versions/3.6.4/include/python3.6m -c pcap.c -o build/temp.macosx-10.13-x86_64-3.6/pcap.o
clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -DHAVE_PCAP_SETDIRECTION=1 -DHAVE_PCAP_SETNONBLOCK=1 -DHAVE_PCAP_COMPILE_NOPCAP=1 -DHAVE_PCAP_FILE=1 -I/usr/include -I/Users/alisue/Code/github.com/lambdalisue/pypcap/.venv/include -I/Users/alisue/.anyenv/envs/pyenv/versions/3.6.4/include/python3.6m -c pcap_ex.c -o build/temp.macosx-10.13-x86_64-3.6/pcap_ex.o
creating build/lib.macosx-10.13-x86_64-3.6
clang -bundle -undefined dynamic_lookup -L/usr/local/opt/readline/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/openssl/lib -L/Users/alisue/.anyenv/envs/pyenv/versions/3.6.4/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/openssl/lib -L/Users/alisue/.anyenv/envs/pyenv/versions/3.6.4/lib build/temp.macosx-10.13-x86_64-3.6/pcap.o build/temp.macosx-10.13-x86_64-3.6/pcap_ex.o -L/usr/lib -lpcap -o build/lib.macosx-10.13-x86_64-3.6/pcap.cpython-36m-darwin.so
installing to build/bdist.macosx-10.13-x86_64/dumb
running install
running install_lib
creating build/bdist.macosx-10.13-x86_64
creating build/bdist.macosx-10.13-x86_64/dumb
creating build/bdist.macosx-10.13-x86_64/dumb/Users
creating build/bdist.macosx-10.13-x86_64/dumb/Users/alisue
creating build/bdist.macosx-10.13-x86_64/dumb/Users/alisue/Code
creating build/bdist.macosx-10.13-x86_64/dumb/Users/alisue/Code/github.com
creating build/bdist.macosx-10.13-x86_64/dumb/Users/alisue/Code/github.com/lambdalisue
creating build/bdist.macosx-10.13-x86_64/dumb/Users/alisue/Code/github.com/lambdalisue/pypcap
creating build/bdist.macosx-10.13-x86_64/dumb/Users/alisue/Code/github.com/lambdalisue/pypcap/.venv
creating build/bdist.macosx-10.13-x86_64/dumb/Users/alisue/Code/github.com/lambdalisue/pypcap/.venv/lib
creating build/bdist.macosx-10.13-x86_64/dumb/Users/alisue/Code/github.com/lambdalisue/pypcap/.venv/lib/python3.6
creating build/bdist.macosx-10.13-x86_64/dumb/Users/alisue/Code/github.com/lambdalisue/pypcap/.venv/lib/python3.6/site-packages
copying build/lib.macosx-10.13-x86_64-3.6/pcap.cpython-36m-darwin.so -> build/bdist.macosx-10.13-x86_64/dumb/Users/alisue/Code/github.com/lambdalisue/pypcap/.venv/lib/python3.6/site-packages
running install_egg_info
running egg_info
writing pypcap.egg-info/PKG-INFO
writing dependency_links to pypcap.egg-info/dependency_links.txt
writing top-level names to pypcap.egg-info/top_level.txt
reading manifest file 'pypcap.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'pypcap.egg-info/SOURCES.txt'
Copying pypcap.egg-info to build/bdist.macosx-10.13-x86_64/dumb/Users/alisue/Code/github.com/lambdalisue/pypcap/.venv/lib/python3.6/site-packages/pypcap-1.2.1-py3.6.egg-info
running install_scripts
creating /Users/alisue/Code/github.com/lambdalisue/pypcap/dist
Creating tar archive
removing 'build/bdist.macosx-10.13-x86_64/dumb' (and everything under it)
Check
import pcap

p = pcap.pcap(pcap.findalldevs()[0])
print('non-blocking:', p.getnonblock())
p.setnonblock()
print('non-blocking:', p.getnonblock())
non-blocking: False
non-blocking: True
hellais commented 6 years ago

Yes this looks good. I tested it on python 2.7.13 and macOS 10.12.6 and it works as expected.

Thanks for putting this together 👍

hellais commented 6 years ago

I also cut a new release and pushed it to pypi.

lambdalisue commented 6 years ago

Thanks for the rapid release!