Compare commits
43 commits
F-13-split
...
rawhide
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e7c52d6413 | ||
|
|
f00b46792e | ||
|
|
41fbccd380 | ||
|
|
690c248f09 | ||
|
|
b55cb0ab11 | ||
|
|
338e79240b | ||
|
|
a51adf3794 | ||
|
|
f21f7ab282 | ||
|
|
f9e31a3499 | ||
|
|
80f9d306b4 | ||
|
|
39822d0417 | ||
|
|
26d1a4cd7d | ||
|
|
1a74c81851 | ||
|
|
fe82501d30 | ||
|
|
0565fae878 | ||
|
|
8b300f8e01 | ||
|
|
793e3dd126 | ||
|
|
f2f18b567c | ||
|
|
52bf9352bf | ||
|
|
21572e1fd4 | ||
|
|
195e50319f | ||
|
|
bd6db92b8b | ||
|
|
e391c6dc2c | ||
|
|
1504dc898a | ||
|
|
c65858a8a2 | ||
|
|
b32037df2b | ||
|
|
0cea0444db | ||
|
99409569df |
|||
| d9c9f7a5f9 | |||
|
|
6f3eb550bf | ||
|
|
9c2f2e7598 | ||
|
|
0dc7940900 | ||
|
|
68a47a3494 | ||
|
|
8a7f98938d | ||
|
|
2b2fe8bc1b | ||
|
|
4aa48f57eb | ||
|
|
3761162cc7 | ||
|
|
da8584561e | ||
|
|
a46eefaa73 | ||
|
|
48484fa5d9 | ||
|
|
be139b0a1b | ||
|
|
eaea92ec20 | ||
| 66843a9490 |
9 changed files with 465 additions and 75 deletions
0
.cvsignore → .gitignore
vendored
0
.cvsignore → .gitignore
vendored
21
Makefile
21
Makefile
|
|
@ -1,21 +0,0 @@
|
|||
# Makefile for source rpm: pcapdiff
|
||||
# $Id: Makefile,v 1.1 2007/12/07 17:01:56 kevin Exp $
|
||||
NAME := pcapdiff
|
||||
SPECFILE = $(firstword $(wildcard *.spec))
|
||||
|
||||
define find-makefile-common
|
||||
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$d/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
|
||||
endef
|
||||
|
||||
MAKEFILE_COMMON := $(shell $(find-makefile-common))
|
||||
|
||||
ifeq ($(MAKEFILE_COMMON),)
|
||||
# attept a checkout
|
||||
define checkout-makefile-common
|
||||
test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
|
||||
endef
|
||||
|
||||
MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
|
||||
endif
|
||||
|
||||
include $(MAKEFILE_COMMON)
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
--- pcapdiff.py 2007-11-30 14:17:27.000000000 -0600
|
||||
+++ pcapdiff.py 2007-11-30 14:17:27.000000000 -0600
|
||||
@@ -1,4 +1,3 @@
|
||||
-#!/usr/bin/env python
|
||||
#
|
||||
# pcapdiff: shows you the differences between two pcap dump files
|
||||
# (such as those produced by tcpdump), with an eye towards counting
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
--- pcapdiff_helper.py 2007-11-30 14:22:23.000000000 -0600
|
||||
+++ pcapdiff_helper.py 2007-11-30 14:22:23.000000000 -0600
|
||||
@@ -1,4 +1,3 @@
|
||||
-#!/usr/bin/env python
|
||||
#
|
||||
# pcapdiff_helper: helper functions for pcapdiff.py
|
||||
#
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
--- printpackets.py 2007-11-30 14:17:58.000000000 -0600
|
||||
+++ printpackets.py 2007-11-30 14:17:58.000000000 -0600
|
||||
@@ -1,4 +1,3 @@
|
||||
-#!/usr/bin/env python
|
||||
#
|
||||
# printpackets:
|
||||
# prints out packets from a pcap dump file with ether and ip header info
|
||||
345
pcapdiff-python3.patch
Normal file
345
pcapdiff-python3.patch
Normal file
|
|
@ -0,0 +1,345 @@
|
|||
--- pcapdiff.py.bak 2007-11-27 04:21:09.000000000 -0600
|
||||
+++ pcapdiff.py 2019-08-06 14:05:25.910214377 -0500
|
||||
@@ -42,14 +42,14 @@
|
||||
skew_amount = 0
|
||||
|
||||
def print_usage():
|
||||
- print '''
|
||||
+ print('''
|
||||
Usage:
|
||||
%s [-v | -h]
|
||||
%s [-V[V]] [-c] [-t] [-s]
|
||||
<local.pcap> <local ip> <remote.pcap> <remote ip>
|
||||
- ''' % (sys.argv[0], sys.argv[0])
|
||||
+ ''' % (sys.argv[0], sys.argv[0]))
|
||||
|
||||
- print '''
|
||||
+ print('''
|
||||
pcapdiff takes two pcap files (usually produced by running tcpdump on two
|
||||
different computers) and compares them to find dropped and forged packets
|
||||
between the two machines. Required arguments are the filenames of the two
|
||||
@@ -95,14 +95,14 @@
|
||||
skew and apply this difference to all other timestamps. The purpose of
|
||||
this option is to reduce the amount of memory used by pcapdiff; it will
|
||||
never affect the output (except for printing the clock skew).
|
||||
- '''
|
||||
+ ''')
|
||||
|
||||
(opts, args) = \
|
||||
getopt.gnu_getopt(sys.argv[1:], 'vhVcts', ['version', 'help', 'verbose=', 'use-checksum', 'ignore-timestamps', 'skew-clocks'])
|
||||
|
||||
for opt in opts:
|
||||
if opt[0] == '-v' or opt[0] == '--version':
|
||||
- print "pcapdiff version:", version
|
||||
+ print("pcapdiff version:", version)
|
||||
sys.exit(0)
|
||||
if opt[0] == '-h' or opt[0] == '--help':
|
||||
print_usage()
|
||||
@@ -125,7 +125,7 @@
|
||||
pcap_remote = pcapy.open_offline(args[2])
|
||||
ip_remote = args[3]
|
||||
except:
|
||||
- print "Error opening file or identifying IP address"
|
||||
+ print("Error opening file or identifying IP address")
|
||||
print_usage()
|
||||
sys.exit(1)
|
||||
|
||||
@@ -147,7 +147,7 @@
|
||||
'''
|
||||
while 1:
|
||||
try:
|
||||
- packet = a.next()
|
||||
+ packet = a.__next__()
|
||||
except pcapy.PcapError:
|
||||
return 0
|
||||
spacket = parse_and_save(packet)
|
||||
@@ -218,7 +218,7 @@
|
||||
next['remote'] = get_packet(pcap_remote, 1)
|
||||
|
||||
if ['local'] == 0 or next['remote'] == 0:
|
||||
- print "ERROR: No packets in one or more files!"
|
||||
+ print("ERROR: No packets in one or more files!")
|
||||
sys.exit(2)
|
||||
|
||||
last_ts_local = tsp(next['local'])
|
||||
@@ -226,7 +226,7 @@
|
||||
first_ts = max(last_ts_local, last_ts_remote)
|
||||
if skew_clocks:
|
||||
skew_amount = last_ts_local - last_ts_remote
|
||||
- if v>=1: print "Clock skew:", skew_amount
|
||||
+ if v>=1: print("Clock skew:", skew_amount)
|
||||
|
||||
# now, find first real packet we care about:
|
||||
if not is_our_traffic(next['local']):
|
||||
@@ -306,9 +306,9 @@
|
||||
|
||||
# XXX put code here
|
||||
|
||||
-if v >= 2: print "Parsed. Local num of unique packets: %d, num of duplicate packets: %d" % (len(manifest.keys()), total['duplicates'])
|
||||
+if v >= 2: print("Parsed. Local num of unique packets: %d, num of duplicate packets: %d" % (len(list(manifest.keys())), total['duplicates']))
|
||||
|
||||
-if v >= 2: print "Remote num of unmatching packets: %d" % len(manifest.keys())
|
||||
+if v >= 2: print("Remote num of unmatching packets: %d" % len(list(manifest.keys())))
|
||||
|
||||
dropped_in = []
|
||||
dropped_out = []
|
||||
@@ -316,70 +316,70 @@
|
||||
forged_out = []
|
||||
errors = []
|
||||
|
||||
-for p in manifest.keys():
|
||||
+for p in list(manifest.keys()):
|
||||
mp = manifest[p]
|
||||
- if v >= 2: print '--------------'
|
||||
+ if v >= 2: print('--------------')
|
||||
ip_from = re_ipfrom.search(p).group(1)
|
||||
ip_to = re_ipto.search(p).group(1)
|
||||
if ip_from == ip_local and ip_to == ip_remote:
|
||||
if mp > 0:
|
||||
- if v >=2 : print "DROPPED: %d" % mp
|
||||
+ if v >=2 : print("DROPPED: %d" % mp)
|
||||
dropped_out += [getid(p)] * abs(mp)
|
||||
elif mp < 0:
|
||||
- if v >= 2: print "!!! FORGED: %d" % mp
|
||||
+ if v >= 2: print("!!! FORGED: %d" % mp)
|
||||
forged_out += [getid(p)] * abs(mp)
|
||||
else:
|
||||
- if v >= 2: print "ERROR"
|
||||
+ if v >= 2: print("ERROR")
|
||||
errors += [getid(p)]
|
||||
elif ip_from == ip_remote and ip_to == ip_local:
|
||||
if mp > 0:
|
||||
- if v >= 2: print "!!! FORGED: %d" % mp
|
||||
+ if v >= 2: print("!!! FORGED: %d" % mp)
|
||||
forged_in += [getid(p)] * abs(mp)
|
||||
elif mp < 0:
|
||||
- if v >= 2: print "DROPPED: %d" % mp
|
||||
+ if v >= 2: print("DROPPED: %d" % mp)
|
||||
dropped_in += [getid(p)] * abs(mp)
|
||||
else:
|
||||
- if v >= 2: print "ERROR"
|
||||
+ if v >= 2: print("ERROR")
|
||||
errors += [getid(p)]
|
||||
else:
|
||||
if v >= 2:
|
||||
- print "ERROR: ip addrs should have been dropped %d -> %d" % (ip_from, ip_to)
|
||||
+ print("ERROR: ip addrs should have been dropped %d -> %d" % (ip_from, ip_to))
|
||||
errors += [1]
|
||||
- if v >= 2: print p
|
||||
+ if v >= 2: print(p)
|
||||
|
||||
if v >= 1:
|
||||
- print "Here are the IP identification fields for forged and dropped packets:"
|
||||
- print
|
||||
- print "list of inbound forged packets: ", ' '.join(forged_in)
|
||||
- print
|
||||
- print "list of outbound forged packets: ", ' '.join(forged_out)
|
||||
- print
|
||||
- print "list of inbound dropped packets: ", ' '.join(dropped_in)
|
||||
- print
|
||||
- print "list of outbound dropped packets: ", ' '.join(dropped_out)
|
||||
- print
|
||||
+ print("Here are the IP identification fields for forged and dropped packets:")
|
||||
+ print()
|
||||
+ print("list of inbound forged packets: ", ' '.join(forged_in))
|
||||
+ print()
|
||||
+ print("list of outbound forged packets: ", ' '.join(forged_out))
|
||||
+ print()
|
||||
+ print("list of inbound dropped packets: ", ' '.join(dropped_in))
|
||||
+ print()
|
||||
+ print("list of outbound dropped packets: ", ' '.join(dropped_out))
|
||||
+ print()
|
||||
|
||||
mystery = {}
|
||||
mystery['in'] = total['local'] - total['remote_received'] + len(forged_out) - len(dropped_out)
|
||||
mystery['out'] = total['remote'] - total['local_received'] + len(forged_in) - len(dropped_in)
|
||||
|
||||
-print "-------------"
|
||||
-print "Packet counts"
|
||||
-print "-------------"
|
||||
-
|
||||
-print " inbound",\
|
||||
- " outbound"
|
||||
-print "sent: %9d" % total['remote'],\
|
||||
- " %9d" % total['local']
|
||||
-print "received: %9d" % total['local_received'],\
|
||||
- " %9d" % total['remote_received']
|
||||
-print "forged: %9d" % len(forged_in),\
|
||||
- " %9d" % len(forged_out)
|
||||
-print "dropped: %9d" % len(dropped_in),\
|
||||
- " %9d" % len(dropped_out)
|
||||
+print("-------------")
|
||||
+print("Packet counts")
|
||||
+print("-------------")
|
||||
+
|
||||
+print(" inbound",\
|
||||
+ " outbound")
|
||||
+print("sent: %9d" % total['remote'],\
|
||||
+ " %9d" % total['local'])
|
||||
+print("received: %9d" % total['local_received'],\
|
||||
+ " %9d" % total['remote_received'])
|
||||
+print("forged: %9d" % len(forged_in),\
|
||||
+ " %9d" % len(forged_out))
|
||||
+print("dropped: %9d" % len(dropped_in),\
|
||||
+ " %9d" % len(dropped_out))
|
||||
if mystery['in'] != 0 or mystery['out'] != 0:
|
||||
- print "mystery: %9d" % mystery['in'],\
|
||||
- " %9d" % mystery['out']
|
||||
+ print("mystery: %9d" % mystery['in'],\
|
||||
+ " %9d" % mystery['out'])
|
||||
|
||||
-if len(errors): print "\nERRORS: %d" % len(errors)
|
||||
+if len(errors): print("\nERRORS: %d" % len(errors))
|
||||
|
||||
--- printpackets.py.bak 2007-11-16 22:09:07.000000000 -0600
|
||||
+++ printpackets.py 2019-08-06 14:05:45.300107950 -0500
|
||||
@@ -31,13 +31,13 @@
|
||||
try:
|
||||
pcap_local = pcapy.open_offline(sys.argv[1])
|
||||
except IndexError:
|
||||
- print "Usage: %s <pcap file>" % sys.argv[0]
|
||||
+ print("Usage: %s <pcap file>" % sys.argv[0])
|
||||
sys.exit(1)
|
||||
|
||||
while 1:
|
||||
try:
|
||||
- packet = pcap_local.next()
|
||||
+ packet = next(pcap_local)
|
||||
except pcapy.PcapError:
|
||||
break
|
||||
|
||||
- print "------------------\n%s" % packet_to_string(parse_and_save(packet))
|
||||
+ print("------------------\n%s" % packet_to_string(parse_and_save(packet)))
|
||||
--- pcapdiff_helper.py.bak 2007-11-16 22:03:16.000000000 -0600
|
||||
+++ pcapdiff_helper.py 2019-08-06 14:10:12.034643912 -0500
|
||||
@@ -30,8 +30,8 @@
|
||||
|
||||
s = packet_to_string(spacket)
|
||||
if s:
|
||||
- print '------------'
|
||||
- print s
|
||||
+ print('------------')
|
||||
+ print(s)
|
||||
|
||||
def packet_to_string(spacket, hidefields=0):
|
||||
'''
|
||||
@@ -51,7 +51,7 @@
|
||||
|
||||
for field in fields:
|
||||
try:
|
||||
- if spacket.has_key(field) and not (hidefields and field in hiddenfields):
|
||||
+ if field in spacket and not (hidefields and field in hiddenfields):
|
||||
if field == 'ip_payload_data':
|
||||
s += field + ": " + str(spacket[field]).encode("string_escape") + "\n"
|
||||
else:
|
||||
--- pcapdiff_helper.py~ 2019-08-06 14:10:39.000000000 -0500
|
||||
+++ pcapdiff_helper.py 2019-08-06 14:21:15.141999262 -0500
|
||||
@@ -30,8 +30,8 @@
|
||||
|
||||
s = packet_to_string(spacket)
|
||||
if s:
|
||||
- print('------------')
|
||||
- print(s)
|
||||
+ print('------------')
|
||||
+ print(s)
|
||||
|
||||
def packet_to_string(spacket, hidefields=0):
|
||||
'''
|
||||
--- pcapdiff_helper.py~ 2019-08-06 14:21:31.000000000 -0500
|
||||
+++ pcapdiff_helper.py 2019-08-06 14:22:39.880533430 -0500
|
||||
@@ -47,17 +47,17 @@
|
||||
hiddenfields = 'timestamp eth_type eth_dest eth_src ip_tos ip_ttl ip_header_checksum'.split(' ')
|
||||
|
||||
if hidefields and spacket['eth_type'] == '(not IPv4)':
|
||||
- return
|
||||
+ return
|
||||
|
||||
for field in fields:
|
||||
- try:
|
||||
+ try:
|
||||
if field in spacket and not (hidefields and field in hiddenfields):
|
||||
- if field == 'ip_payload_data':
|
||||
+ if field == 'ip_payload_data':
|
||||
s += field + ": " + str(spacket[field]).encode("string_escape") + "\n"
|
||||
- else:
|
||||
- s += field + ": " + str(spacket[field]) + "\n"
|
||||
- except KeyError:
|
||||
- pass
|
||||
+ else:
|
||||
+ s += field + ": " + str(spacket[field]) + "\n"
|
||||
+ except KeyError:
|
||||
+ pass
|
||||
|
||||
return s
|
||||
|
||||
--- pcapdiff_helper.py~ 2019-08-06 14:22:49.000000000 -0500
|
||||
+++ pcapdiff_helper.py 2019-08-06 14:23:12.813352392 -0500
|
||||
@@ -51,7 +51,7 @@
|
||||
|
||||
for field in fields:
|
||||
try:
|
||||
- if field in spacket and not (hidefields and field in hiddenfields):
|
||||
+ if field in spacket and not (hidefields and field in hiddenfields):
|
||||
if field == 'ip_payload_data':
|
||||
s += field + ": " + str(spacket[field]).encode("string_escape") + "\n"
|
||||
else:
|
||||
--- pcapdiff_helper.py~ 2019-08-06 14:23:18.000000000 -0500
|
||||
+++ pcapdiff_helper.py 2019-08-06 14:23:41.238196138 -0500
|
||||
@@ -53,7 +53,7 @@
|
||||
try:
|
||||
if field in spacket and not (hidefields and field in hiddenfields):
|
||||
if field == 'ip_payload_data':
|
||||
- s += field + ": " + str(spacket[field]).encode("string_escape") + "\n"
|
||||
+ s += field + ": " + str(spacket[field]).encode("string_escape") + "\n"
|
||||
else:
|
||||
s += field + ": " + str(spacket[field]) + "\n"
|
||||
except KeyError:
|
||||
--- pcapdiff_helper.py~ 2019-08-06 14:23:47.000000000 -0500
|
||||
+++ pcapdiff_helper.py 2019-08-06 14:24:12.667023367 -0500
|
||||
@@ -71,8 +71,8 @@
|
||||
|
||||
packet = dump_packet[1]
|
||||
if ord(packet[12]) != 8 or ord(packet[13]) != 0:
|
||||
- spacket['eth_type'] = '(not IPv4)'
|
||||
- return spacket
|
||||
+ spacket['eth_type'] = '(not IPv4)'
|
||||
+ return spacket
|
||||
|
||||
spacket['eth_type'] = "%02x%02x" % (ord(packet[12]), ord(packet[13]))
|
||||
|
||||
--- pcapdiff_helper.py~ 2019-08-06 14:24:19.000000000 -0500
|
||||
+++ pcapdiff_helper.py 2019-08-06 14:25:06.375728108 -0500
|
||||
@@ -82,8 +82,8 @@
|
||||
ip_packet = packet[14:]
|
||||
spacket['ip_version'] = binascii.hexlify(ip_packet[0])[0]
|
||||
if spacket['ip_version'] != '4':
|
||||
- spacket['eth_type'] = '(not IPv4)'
|
||||
- return spacket
|
||||
+ spacket['eth_type'] = '(not IPv4)'
|
||||
+ return spacket
|
||||
|
||||
spacket['ip_header_length'] = binascii.hexlify(ip_packet[0])[1]
|
||||
spacket['ip_tos'] = binascii.hexlify(ip_packet[1])
|
||||
--- pcapdiff_helper.py~ 2019-08-06 14:25:15.000000000 -0500
|
||||
+++ pcapdiff_helper.py 2019-08-06 14:27:11.309041330 -0500
|
||||
@@ -100,14 +100,14 @@
|
||||
#payload = ip_packet[header_len:] # also in bytes
|
||||
if ignore_tcp_checksum and spacket['ip_protocol'] == 0x06:
|
||||
#ignore TCP checksums because of offloading
|
||||
- payload = ip_packet[header_len:header_len+16] +\
|
||||
- '\0\0' + ip_packet[header_len+18:spacket['ip_total_length']] # also in bytes
|
||||
+ payload = ip_packet[header_len:header_len+16] +\
|
||||
+ '\0\0' + ip_packet[header_len+18:spacket['ip_total_length']] # also in bytes
|
||||
elif ignore_tcp_checksum and spacket['ip_protocol'] == 0x11:
|
||||
- #ignore UDP checksums because of offloading
|
||||
- payload = ip_packet[header_len:header_len+4] +\
|
||||
- '\0\0' + ip_packet[header_len+6:spacket['ip_total_length']] # also in bytes
|
||||
+ #ignore UDP checksums because of offloading
|
||||
+ payload = ip_packet[header_len:header_len+4] +\
|
||||
+ '\0\0' + ip_packet[header_len+6:spacket['ip_total_length']] # also in bytes
|
||||
else:
|
||||
- payload = ip_packet[header_len:spacket['ip_total_length']] # also in bytes
|
||||
+ payload = ip_packet[header_len:spacket['ip_total_length']] # also in bytes
|
||||
|
||||
spacket['ip_payload_length'] = len(payload)
|
||||
spacket['ip_payload_data'] = payload
|
||||
|
|
@ -1,6 +1,5 @@
|
|||
#!/usr/bin/env python
|
||||
#!/usr/bin/python3
|
||||
if __name__ == '__main__':
|
||||
import sys
|
||||
sys.path.insert(0, '/usr/share/pcapdiff')
|
||||
from pcapdiff import main
|
||||
main()
|
||||
import pcapdiff
|
||||
|
|
|
|||
146
pcapdiff.spec
146
pcapdiff.spec
|
|
@ -1,22 +1,18 @@
|
|||
Name: pcapdiff
|
||||
Version: 0.1
|
||||
Release: 6%{?dist}
|
||||
Release: 42%{?dist}
|
||||
Summary: Compares packet captures, detects forged, dropped or mangled packets
|
||||
|
||||
Group: Development/Languages
|
||||
License: GPLv2+ and GPLv3+
|
||||
License: GPL-2.0-or-later AND GPL-3.0-or-later
|
||||
URL: http://www.eff.org/testyourisp/pcapdiff/
|
||||
Source0: http://www.eff.org/files/pcapdiff-%{version}.tar.gz
|
||||
Source1: pcapdiff.py
|
||||
Source2: printpackets
|
||||
Patch0: pcapdiff-pcapdiff-noshebang.patch
|
||||
Patch1: pcapdiff-printpackets-noshebang.patch
|
||||
Patch2: pcapdiff-pcapdiff_helper-noshebang.patch
|
||||
Patch0: pcapdiff-python3.patch
|
||||
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root%(%{__id_u} -n)
|
||||
BuildArch: noarch
|
||||
BuildRequires: python-devel
|
||||
Requires: pcapy
|
||||
BuildRequires: python3-devel
|
||||
Requires: python3-pcapy
|
||||
|
||||
%description
|
||||
Pcapdiff is a tool developed by the EFF to compare two packet captures and
|
||||
|
|
@ -30,45 +26,137 @@ and EFF's Test Your ISP Project for more background.
|
|||
|
||||
%prep
|
||||
%setup -qn pcapdiff
|
||||
|
||||
%patch0 -p0
|
||||
%patch1 -p0
|
||||
%patch2 -p0
|
||||
%patch -P0 -p0
|
||||
|
||||
%build
|
||||
|
||||
|
||||
#fix encodings
|
||||
#sed -i 's/\r//' LICENSE
|
||||
#sed -i 's/\r//' README
|
||||
#sed -i 's/\r//' pcapdiff.html
|
||||
#iconv -f IBM850 -t UTF8 pcapdiff.html > pcapdiff.html.tmp
|
||||
#mv pcapdiff.html.tmp pcapdiff.html
|
||||
|
||||
|
||||
%install
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
install -D -m 755 -p %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}/pcapdiff
|
||||
install -D -m 644 -p pcapdiff.py $RPM_BUILD_ROOT%{_datadir}/pcapdiff/pcapdiff.py
|
||||
install -D -m 755 -p %{SOURCE2} $RPM_BUILD_ROOT%{_bindir}/printpackets
|
||||
install -D -m 644 -p printpackets.py $RPM_BUILD_ROOT%{_datadir}/pcapdiff/printpackets.py
|
||||
install -D -m 644 -p pcapdiff_helper.py $RPM_BUILD_ROOT%{_datadir}/pcapdiff/pcapdiff_helper.py
|
||||
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
%doc README COPYING.2 COPYING.3
|
||||
%{_bindir}/pcapdiff
|
||||
%{_bindir}/printpackets
|
||||
%dir %{_datadir}/pcapdiff/
|
||||
%{_datadir}/pcapdiff/*.py
|
||||
%{_datadir}/pcapdiff/*.pyc
|
||||
%{_datadir}/pcapdiff/*.pyo
|
||||
#%{_datadir}/pcapdiff/*.pyc
|
||||
#%{_datadir}/pcapdiff/*.pyo
|
||||
|
||||
%changelog
|
||||
* Thu Jul 16 2026 Fedora Release Engineering <releng@fedoraproject.org> - 0.1-42
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
|
||||
|
||||
* Fri Jan 16 2026 Fedora Release Engineering <releng@fedoraproject.org> - 0.1-41
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
|
||||
|
||||
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 0.1-40
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
|
||||
|
||||
* Fri Jan 17 2025 Fedora Release Engineering <releng@fedoraproject.org> - 0.1-39
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
|
||||
|
||||
* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.1-38
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
|
||||
|
||||
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.1-37
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.1-36
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.1-35
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||
|
||||
* Sun Mar 05 2023 Gwyn Ciesla <gwync@protonmail.com> - 0.1-34
|
||||
- migrated to SPDX license
|
||||
|
||||
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.1-33
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||
|
||||
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.1-32
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.1-31
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.1-30
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.1-29
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.1-28
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.1-27
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||
|
||||
* Tue Aug 13 2019 Gwyn Ciesla <gwync@protonmail.com> 0.1-26
|
||||
- Eliminate final python 2 dep.
|
||||
|
||||
* Tue Aug 06 2019 Gwyn Ciesla <gwync@protonmail.com> - 0.1-25
|
||||
- Python 3.
|
||||
|
||||
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.1-24
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||
|
||||
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.1-23
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||
|
||||
* Mon Sep 10 2018 Gwyn Ciesla <limburgher@gmail.com> - 0.1-22
|
||||
- Fix shebang handling.
|
||||
|
||||
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.1-21
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||
|
||||
* Thu Mar 01 2018 Iryna Shcherbina <ishcherb@redhat.com> - 0.1-20
|
||||
- Update Python 2 dependency declarations to new packaging standards
|
||||
(See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)
|
||||
|
||||
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.1-19
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||
|
||||
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.1-18
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||
|
||||
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.1-17
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||
|
||||
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.1-16
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||
|
||||
* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1-15
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||
|
||||
* Fri Jun 06 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1-14
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
||||
|
||||
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1-13
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
||||
|
||||
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1-12
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
||||
|
||||
* Fri Jul 20 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1-11
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
||||
|
||||
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1-10
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
|
||||
|
||||
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1-9
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
|
||||
|
||||
* Wed Aug 11 2010 David Malcolm <dmalcolm@redhat.com> - 0.1-8
|
||||
- recompiling .py files against Python 2.7 (rhbz#623344)
|
||||
|
||||
* Tue Mar 20 2010 Jon Ciesla <limb@jcomserv.net> - 0.1-7
|
||||
- Fix for crash, BZ 557733.
|
||||
|
||||
* Sat Jul 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python
|
||||
#!/usr/bin/python3
|
||||
if __name__ == '__main__':
|
||||
import sys
|
||||
sys.path.insert(0, '/usr/share/pcapdiff')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue