The sendpfast() function of scapy calls tcpreplay for sending frames. If net-analyzer/tcpreplay isn't installed an error occurs. So net-analyzer/scapy-* should RDEPEND on net-analyzer/tcpreplay. Reproducible: Always Steps to Reproduce: 1. emerge scapy 2. run scapy 3. type sendpfast( Ether() ) to send a bogus Ethernet frame Actual Results: >>> sendpfast( Ether() ) /usr/lib/python2.6/site-packages/scapy/sendrecv.py:268: RuntimeWarning: tempnam is a potential security risk to your program f = os.tempnam("scapy") WARNING: Mac address to reach destination not found. Using broadcast. ERROR: [Errno 2] No such file or directory Expected Results: Calling tcpreplay failed, so the frame isn't send. Using the build-in send function send( Ether() ) works. Calling sendpfast( Ether() ) when net-analyzer/tcpreplay is installed gives: >>> sendpfast( Ether()) WARNING: Mac address to reach destination not found. Using broadcast. sending out eth0 processing file: /tmp/fileAaeL4z Actual: 1 packets (14 bytes) sent in 0.00 seconds Rated: inf bps, inf Mbps, inf pps Statistics for network device: eth0 Attempted packets: 1 Successful packets: 1 Failed packets: 0 Retried packets (ENOBUFS): 0 Retried packets (EAGAIN): 0
Thanks for the report, I've added this as a USE-flag enabled dependency, and hence without a version bump, because the bulk of scapy works perfectly fine without this and it's only needed for speed enhancements (whereas, to give it to everybody requires that they all download and compile guile and a few other dependencies just for a feature they may never use). Given scapy already has a truck load of USE-flag based dependencies, one more shouldn't be a problem. Please wait a few hours and then resync your tree, and add "tcpreplay" to your USE flags...