summaryrefslogtreecommitdiffstats
path: root/network/speedometer/update-to-python3.patch
diff options
context:
space:
mode:
Diffstat (limited to 'network/speedometer/update-to-python3.patch')
-rw-r--r--network/speedometer/update-to-python3.patch174
1 files changed, 174 insertions, 0 deletions
diff --git a/network/speedometer/update-to-python3.patch b/network/speedometer/update-to-python3.patch
new file mode 100644
index 0000000000..dfce959f3b
--- /dev/null
+++ b/network/speedometer/update-to-python3.patch
@@ -0,0 +1,174 @@
+Description: Update upstream source to Python 3.
+ Based on fixes at https://github.com/kenduest/speedometer/
+Author: Giovani Augusto Ferreira <giovani@debian.org>
+Last-Update: 2019-12-08
+
+Index: speedometer/speedometer.py
+===================================================================
+--- speedometer.orig/speedometer.py
++++ speedometer/speedometer.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python3
+
+ # speedometer.py
+ # Copyright (C) 2001-2011 Ian Ward
+@@ -21,6 +21,8 @@ import os
+ import string
+ import math
+ import re
++import psutil
++import six
+
+ __usage__ = """Usage: speedometer [options] tap [[-c] tap]...
+ Monitor network traffic or speed/progress of a file transfer. At least one
+@@ -76,6 +78,10 @@ units_per_second = 'bytes'
+ chart_minimum = 2**5
+ chart_maximum = 2**32
+
++if six.PY3:
++ def long(*args,**kwargs):
++ return int(*args,**kwargs)
++
+ graph_scale = None
+ def update_scale():
+ """
+@@ -400,7 +406,8 @@ class SpeedGraph:
+ self.log = []
+ self.bar = []
+
+- def get_data(self, (maxcol,maxrow)):
++ def get_data(self, max_col_row):
++ maxcol, maxrow = max_col_row
+ bar = self.bar[-maxcol:]
+ if len(bar) < maxcol:
+ bar = [[0]]*(maxcol-len(bar)) + bar
+@@ -409,8 +416,8 @@ class SpeedGraph:
+ def selectable(self):
+ return False
+
+- def render(self, (maxcol, maxrow), focus=False):
+-
++ def render(self, max_col_row, focus=False):
++ maxcol, maxrow = max_col_row
+ left = max(0, len(self.log)-maxcol)
+ pad = maxcol-(len(self.log)-left)
+
+@@ -445,8 +452,8 @@ class SpeedGraph:
+ for i in range(left+max(0, ldist-pad),len(l)-rdist+1):
+ li = l[i]
+ if li == 0: continue
+- if i and l[i-1]>=li: continue
+- if l[i+1]>li: continue
++ if i and l[i-1] != None and l[i-1]>=li: continue
++ if li is None or l[i+1]>li: continue
+ highs.append((li, -i))
+
+ highs.sort()
+@@ -471,7 +478,7 @@ class SpeedGraph:
+
+
+ def speed_scale(s):
+- if s <= 0: return 0
++ if s is None or s <= 0: return 0
+ if logarithmic_scale:
+ s = math.log(s, 2)
+ s = min(graph_range(), max(0, s-graph_min()))
+@@ -498,7 +505,7 @@ def readable_speed(speed):
+ if speed == None or speed < 0: speed = 0
+
+ units = "B/s ", "KiB/s", "MiB/s", "GiB/s", "TiB/s"
+- step = 1L
++ step = long(1)
+
+ for u in units:
+
+@@ -511,7 +518,7 @@ def readable_speed(speed):
+ if speed/step < 1024:
+ return "%4d " %(speed/step) + u
+
+- step = step * 1024L
++ step = step * long(1024)
+
+ return "%4d " % (speed/(step/1024)) + units[-1]
+
+@@ -524,7 +531,7 @@ def readable_speed_bits(speed):
+
+ speed = speed * 8
+ units = "b/s ", "Kib/s", "Mib/s", "Gib/s", "Tib/s"
+- step = 1L
++ step = long(1)
+
+ for u in units:
+
+@@ -537,7 +544,7 @@ def readable_speed_bits(speed):
+ if speed/step < 1024:
+ return "%4d " %(speed/step) + u
+
+- step = step * 1024L
++ step = step * long(1024)
+
+ return "%4d " % (speed/(step/1024)) + units[-1]
+
+@@ -607,18 +614,12 @@ def network_feed(device,rxtx):
+ r = re.compile(r"^\s*" + re.escape(device) + r":(.*)$", re.MULTILINE)
+
+ def networkfn(devre=r,rxtx=rxtx):
+- f = open('/proc/net/dev')
+- dev_lines = f.read()
+- f.close()
+- match = devre.search(dev_lines)
+- if not match:
+- return None
+-
+- parts = match.group(1).split()
+ if rxtx == 'RX':
+- return long(parts[0])
++ val=psutil.net_io_counters(pernic=True)[device].bytes_recv
+ else:
+- return long(parts[8])
++ val=psutil.net_io_counters(pernic=True)[device].bytes_sent
++
++ return long(val)
+
+ return networkfn
+
+@@ -728,7 +729,7 @@ def time_as_units(seconds):
+ # (multiplicative factor, suffix)
+ units = (1,"s"), (60,"m"), (60,"h"), (24,"d"), (7,"w"), (52,"y")
+
+- scale = 1L
++ scale = long(1)
+ topunit = -1
+ # find the top unit to use
+ for mul, suf in units:
+@@ -757,7 +758,7 @@ def readable_time(seconds, columns=None)
+ for value, suf in time_as_units(seconds):
+ new_out = out
+ if out: new_out = new_out + ' '
+- new_out = new_out + `value` + suf
++ new_out = new_out + value + suf
+ if columns and len(new_out) > columns: break
+ out = new_out
+
+@@ -1091,6 +1092,6 @@ def wait_all(cols):
+ if __name__ == "__main__":
+ try:
+ console()
+- except KeyboardInterrupt, err:
++ except KeyboardInterrupt as err:
+ pass
+
+Index: speedometer/setup.py
+===================================================================
+--- speedometer.orig/setup.py
++++ speedometer/setup.py
+@@ -35,7 +35,7 @@ setup_d = {
+ 'scripts': ['speedometer.py'],
+ 'entry_points': {
+ 'console_scripts': ['speedometer = speedometer:console'],},
+- 'install_requires': ['urwid >= 0.9.9.1'],
++ 'install_requires': ['urwid >= 0.9.9.1', 'psutil', 'six'],
+ 'license':"LGPL",
+ 'keywords':"network bandwidth monitor system speed download file progress console",
+ 'platforms':"Linux",