11123fedadc0259c24e0ee81d05ab2496780d4297Phil#! /usr/bin/env python 21123fedadc0259c24e0ee81d05ab2496780d4297Phil 30ce149b41a10223c75f33a135d0a7ddc6bd2e022Dirk Loss""" 40ce149b41a10223c75f33a135d0a7ddc6bd2e022Dirk LossDistutils setup file for Scapy. 50ce149b41a10223c75f33a135d0a7ddc6bd2e022Dirk Loss""" 60ce149b41a10223c75f33a135d0a7ddc6bd2e022Dirk Loss 71123fedadc0259c24e0ee81d05ab2496780d4297Phil 81123fedadc0259c24e0ee81d05ab2496780d4297Philfrom distutils import archive_util 91123fedadc0259c24e0ee81d05ab2496780d4297Philfrom distutils import sysconfig 101123fedadc0259c24e0ee81d05ab2496780d4297Philfrom distutils.core import setup 111123fedadc0259c24e0ee81d05ab2496780d4297Philfrom distutils.command.sdist import sdist 121123fedadc0259c24e0ee81d05ab2496780d4297Philimport os 131123fedadc0259c24e0ee81d05ab2496780d4297Phil 141123fedadc0259c24e0ee81d05ab2496780d4297Phil 153ee32c2867f164dab6266ce653e91db5b641403fplorinquerEZIP_HEADER = """#! /bin/sh 1671ad2b6422bb7119319b971d348cd4aca434ce91PhilPYTHONPATH=$0/%s exec python -m scapy.__init__ 171123fedadc0259c24e0ee81d05ab2496780d4297Phil""" 181123fedadc0259c24e0ee81d05ab2496780d4297Phil 193ee32c2867f164dab6266ce653e91db5b641403fplorinquer 20b7d3d93544f98711b2c5de7748c7bb143d9385ffPhildef make_ezipfile(base_name, base_dir, verbose=0, dry_run=0, **kwargs): 211123fedadc0259c24e0ee81d05ab2496780d4297Phil fname = archive_util.make_zipfile(base_name, base_dir, verbose, dry_run) 223ee32c2867f164dab6266ce653e91db5b641403fplorinquer ofname = fname + ".old" 233ee32c2867f164dab6266ce653e91db5b641403fplorinquer os.rename(fname, ofname) 243ee32c2867f164dab6266ce653e91db5b641403fplorinquer of = open(ofname) 253ee32c2867f164dab6266ce653e91db5b641403fplorinquer f = open(fname, "w") 261123fedadc0259c24e0ee81d05ab2496780d4297Phil f.write(EZIP_HEADER % base_dir) 271123fedadc0259c24e0ee81d05ab2496780d4297Phil while True: 281123fedadc0259c24e0ee81d05ab2496780d4297Phil data = of.read(8192) 291123fedadc0259c24e0ee81d05ab2496780d4297Phil if not data: 301123fedadc0259c24e0ee81d05ab2496780d4297Phil break 311123fedadc0259c24e0ee81d05ab2496780d4297Phil f.write(data) 321123fedadc0259c24e0ee81d05ab2496780d4297Phil f.close() 33e31a851ca76754595a20192b2a4c6674397e7f44Phil os.system("zip -A '%s'" % fname) 341123fedadc0259c24e0ee81d05ab2496780d4297Phil of.close() 351123fedadc0259c24e0ee81d05ab2496780d4297Phil os.unlink(ofname) 36291400c1b6f65363e33cc982aaf0d43d31cc424egpotter os.chmod(fname, 0o755) 371123fedadc0259c24e0ee81d05ab2496780d4297Phil return fname 381123fedadc0259c24e0ee81d05ab2496780d4297Phil 391123fedadc0259c24e0ee81d05ab2496780d4297Phil 403ee32c2867f164dab6266ce653e91db5b641403fplorinquerarchive_util.ARCHIVE_FORMATS["ezip"] = ( 413ee32c2867f164dab6266ce653e91db5b641403fplorinquer make_ezipfile, [], 'Executable ZIP file') 421123fedadc0259c24e0ee81d05ab2496780d4297Phil 433ee32c2867f164dab6266ce653e91db5b641403fplorinquerSCRIPTS = ['bin/scapy', 'bin/UTscapy'] 443ee32c2867f164dab6266ce653e91db5b641403fplorinquer# On Windows we also need additional batch files to run the above scripts 4529146dda448ed02f1457fb4ee883e9dba8ec3991Dirk Lossif os.name == "nt": 463ee32c2867f164dab6266ce653e91db5b641403fplorinquer SCRIPTS += ['bin/scapy.bat', 'bin/UTscapy.bat'] 471123fedadc0259c24e0ee81d05ab2496780d4297Phil 481123fedadc0259c24e0ee81d05ab2496780d4297Philsetup( 493ee32c2867f164dab6266ce653e91db5b641403fplorinquer name='scapy', 504f71027fcdcb1e4ca8d7e04987588d2f7e615f4bRobin Jarry version=__import__('scapy').VERSION, 513ee32c2867f164dab6266ce653e91db5b641403fplorinquer packages=[ 523ee32c2867f164dab6266ce653e91db5b641403fplorinquer 'scapy', 533ee32c2867f164dab6266ce653e91db5b641403fplorinquer 'scapy/arch', 540e1b9206829d712aa6107975f694260761c883d5Pierre LALET 'scapy/arch/bpf', 553ee32c2867f164dab6266ce653e91db5b641403fplorinquer 'scapy/arch/windows', 563ee32c2867f164dab6266ce653e91db5b641403fplorinquer 'scapy/contrib', 573ee32c2867f164dab6266ce653e91db5b641403fplorinquer 'scapy/layers', 583ee32c2867f164dab6266ce653e91db5b641403fplorinquer 'scapy/layers/tls', 593ee32c2867f164dab6266ce653e91db5b641403fplorinquer 'scapy/layers/tls/crypto', 603ee32c2867f164dab6266ce653e91db5b641403fplorinquer 'scapy/modules', 6194059a1f9542d7ff26379fafcb6e1625bf67f3c4Ajax 'scapy/modules/krack', 623ee32c2867f164dab6266ce653e91db5b641403fplorinquer 'scapy/asn1', 633ee32c2867f164dab6266ce653e91db5b641403fplorinquer 'scapy/tools', 643ee32c2867f164dab6266ce653e91db5b641403fplorinquer ], 653ee32c2867f164dab6266ce653e91db5b641403fplorinquer scripts=SCRIPTS, 663ee32c2867f164dab6266ce653e91db5b641403fplorinquer data_files=[('share/man/man1', ["doc/scapy.1.gz"])], 674f71027fcdcb1e4ca8d7e04987588d2f7e615f4bRobin Jarry package_data={ 684f71027fcdcb1e4ca8d7e04987588d2f7e615f4bRobin Jarry 'scapy': ['VERSION'], 694f71027fcdcb1e4ca8d7e04987588d2f7e615f4bRobin Jarry }, 70d4d86e9cbf6620b63571942250c6bf135c8aa24bPhil 711123fedadc0259c24e0ee81d05ab2496780d4297Phil # Metadata 723ee32c2867f164dab6266ce653e91db5b641403fplorinquer author='Philippe BIONDI', 733ee32c2867f164dab6266ce653e91db5b641403fplorinquer author_email='phil(at)secdev.org', 745e4898185176c106ae4653fd1b20836ab3c725bdPierre LALET maintainer='Pierre LALET, Guillaume VALADON', 753ee32c2867f164dab6266ce653e91db5b641403fplorinquer description='Scapy: interactive packet manipulation tool', 763ee32c2867f164dab6266ce653e91db5b641403fplorinquer license='GPLv2', 773ee32c2867f164dab6266ce653e91db5b641403fplorinquer url='http://www.secdev.org/projects/scapy', 781b1b687b8285d080ebdcf3f63557615df4bf273ePierre LALET download_url='https://github.com/secdev/scapy/tarball/master', 791b1b687b8285d080ebdcf3f63557615df4bf273ePierre LALET keywords=["network"], 801b1b687b8285d080ebdcf3f63557615df4bf273ePierre LALET classifiers=[ 811b1b687b8285d080ebdcf3f63557615df4bf273ePierre LALET "Development Status :: 5 - Production/Stable", 821b1b687b8285d080ebdcf3f63557615df4bf273ePierre LALET "Environment :: Console", 831b1b687b8285d080ebdcf3f63557615df4bf273ePierre LALET "Intended Audience :: Developers", 841b1b687b8285d080ebdcf3f63557615df4bf273ePierre LALET "Intended Audience :: Information Technology", 851b1b687b8285d080ebdcf3f63557615df4bf273ePierre LALET "Intended Audience :: Science/Research", 861b1b687b8285d080ebdcf3f63557615df4bf273ePierre LALET "Intended Audience :: System Administrators", 871b1b687b8285d080ebdcf3f63557615df4bf273ePierre LALET "Intended Audience :: Telecommunications Industry", 881b1b687b8285d080ebdcf3f63557615df4bf273ePierre LALET "License :: OSI Approved :: GNU General Public License v2 (GPLv2)", 891b1b687b8285d080ebdcf3f63557615df4bf273ePierre LALET "Programming Language :: Python :: 2", 901b1b687b8285d080ebdcf3f63557615df4bf273ePierre LALET "Programming Language :: Python :: 2.7", 915e4898185176c106ae4653fd1b20836ab3c725bdPierre LALET "Programming Language :: Python :: 3", 925e4898185176c106ae4653fd1b20836ab3c725bdPierre LALET "Programming Language :: Python :: 3.3", 935e4898185176c106ae4653fd1b20836ab3c725bdPierre LALET "Programming Language :: Python :: 3.4", 945e4898185176c106ae4653fd1b20836ab3c725bdPierre LALET "Programming Language :: Python :: 3.5", 955e4898185176c106ae4653fd1b20836ab3c725bdPierre LALET "Programming Language :: Python :: 3.6", 961b1b687b8285d080ebdcf3f63557615df4bf273ePierre LALET "Topic :: Security", 971b1b687b8285d080ebdcf3f63557615df4bf273ePierre LALET "Topic :: System :: Networking", 981b1b687b8285d080ebdcf3f63557615df4bf273ePierre LALET "Topic :: System :: Networking :: Monitoring", 991b1b687b8285d080ebdcf3f63557615df4bf273ePierre LALET ] 1001123fedadc0259c24e0ee81d05ab2496780d4297Phil) 101