[dstat/f18] fixed inconsistency between man page and help (#852797)
Jiří Popelka
jpopelka at fedoraproject.org
Mon Sep 3 12:45:59 UTC 2012
commit 877d021fd8474737b5bc5c85aa788a5c6e5670ef
Author: Jiri Popelka <jpopelka at redhat.com>
Date: Mon Sep 3 14:38:23 2012 +0200
fixed inconsistency between man page and help (#852797)
dstat-0.7.2-bits.patch | 285 ++++++++++++++++++++++++++++++++----------------
dstat-0.7.2-man.patch | 23 ++++
dstat.spec | 10 ++-
3 files changed, 221 insertions(+), 97 deletions(-)
---
diff --git a/dstat-0.7.2-bits.patch b/dstat-0.7.2-bits.patch
index 0a2ac0d..3e9c7fd 100644
--- a/dstat-0.7.2-bits.patch
+++ b/dstat-0.7.2-bits.patch
@@ -1,106 +1,199 @@
---- dstat-0.7.2/dstat.orig 2010-06-11 08:08:01.000000000 +0200
-+++ dstat-0.7.2/dstat 2010-08-24 09:50:39.000000000 +0200
-@@ -90,6 +90,8 @@ class Options:
- self.output = False
- self.pidfile = False
- self.profile = ''
-+ self.netbits = False
-+ self.diskbits = False
-
- ### List of available plugins
- allplugins = listplugins()
-@@ -111,9 +113,9 @@ class Options:
- }
+diff -up dstat-0.7.2/docs/dstat.1.bits dstat-0.7.2/docs/dstat.1
+--- dstat-0.7.2/docs/dstat.1.bits 2010-06-15 00:26:19.000000000 +0200
++++ dstat-0.7.2/docs/dstat.1 2012-09-03 14:26:57.930801564 +0200
+@@ -137,6 +137,9 @@ expand \-C, \-D, \-I, \-N and \-S discov
+ \-v, \-\-vmstat
+ equals \-pmgdsc \-D total
+ .TP
++\-\-bits
++force bits for values expressed in bytes
++.TP
+ \-\-float
+ force float values on screen (mutual exclusive with
+ \fB\-\-integer\fR)
+diff -up dstat-0.7.2/dstat.bits dstat-0.7.2/dstat
+--- dstat-0.7.2/dstat.bits 2010-06-11 08:08:01.000000000 +0200
++++ dstat-0.7.2/dstat 2012-09-03 14:23:42.056447576 +0200
+@@ -72,6 +72,7 @@ pluginpath = [
+ class Options:
+ def __init__(self, args):
+ self.args = args
++ self.bits = False
+ self.blackonwhite = False
+ self.count = -1
+ self.cpulist = None
+@@ -112,7 +113,7 @@ class Options:
try:
-- opts, args = getopt.getopt(args, 'acdfghilmno:prstTvyC:D:I:M:N:S:V',
+ opts, args = getopt.getopt(args, 'acdfghilmno:prstTvyC:D:I:M:N:S:V',
- ['all', 'all-plugins', 'bw', 'blackonwhite', 'debug',
-- 'filesystem', 'float', 'full', 'help', 'integer',
-+ opts, args = getopt.getopt(args, 'abcdfghilmno:prstTvyC:D:I:M:N:S:V',
-+ ['all', 'all-plugins', 'bw', 'bits', 'blackonwhite', 'debug',
-+ 'filesystem', 'float', 'full', 'help', 'integer', 'netbits', 'diskbits',
++ ['all', 'all-plugins', 'bits', 'bw', 'blackonwhite', 'debug',
+ 'filesystem', 'float', 'full', 'help', 'integer',
'list', 'mods', 'modules', 'nocolor', 'noheaders', 'noupdate',
'output=', 'pidfile=', 'profile', 'version', 'vmstat'] + allplugins)
- except getopt.error, exc:
-@@ -179,6 +181,13 @@ class Options:
+@@ -175,6 +176,8 @@ class Options:
+ plugins = {}.fromkeys(allplugins).keys()
+ plugins.sort()
+ self.plugins += plugins
++ elif opt in ['--bits']:
++ self.bits = True
+ elif opt in ['--bw', '--black-on-white']:
self.blackonwhite = True
elif opt in ['--debug']:
- self.debug = self.debug + 1
-+ elif opt in ['--bits', '-b']:
-+ self.netbits = True
-+ self.diskbits = True
-+ elif opt in ['--netbits']:
-+ self.netbits = True
-+ elif opt in ['--diskbits']:
-+ self.diskbits = True
- elif opt in ['--float']:
- self.float = True
- elif opt in ['--integer']:
-@@ -268,9 +277,11 @@ Dstat options:
- -C 0,3,total include cpu0, cpu3 and total
- -d, --disk enable disk stats
- -D total,hda include hda and total
-+ --diskbits output disk stats in bits instead of bytes
- -g, --page enable page stats
- -i, --int enable interrupt stats
- -I 5,eth2 include int5 and interrupt used by eth2
-+ --netbits output net stats in bits instead of bytes
- -l, --load enable load stats
- -m, --mem enable memory stats
- -n, --net enable network stats
-@@ -282,6 +293,7 @@ Dstat options:
- -t, --time enable time/date output
- -T, --epoch enable time counter (seconds since epoch)
- -y, --sys enable system stats
-+ -b, --bits output disk/net stats in bits instead of bytes
+@@ -301,6 +304,7 @@ Dstat options:
+ -f, --full automatically expand -C, -D, -I, -N and -S lists
+ -v, --vmstat equals -pmgdsc -D total
+
++ --bits force bits for values expressed in bytes
+ --float force float values on screen
+ --integer force integer values on screen
+
+@@ -428,10 +432,10 @@ class dstat:
+ ret = theme['title']
+ if isinstance(self.name, types.StringType):
+ width = self.statwidth()
+- return ret + self.name[0:width].center(width).replace(' ', '-') + theme['default']
++ return ret + self.name[0:width].center(width, char['space']).replace(' ', '-') + theme['default']
+ for i, name in enumerate(self.name):
+ width = self.colwidth()
+- ret = ret + name[0:width].center(width).replace(' ', '-')
++ ret = ret + name[0:width].center(width, char['space']).replace(' ', '-')
+ if i + 1 != len(self.name):
+ if op.color:
+ ret = ret + theme['frame'] + char['dash'] + theme['title']
+@@ -443,13 +447,13 @@ class dstat:
+ ret = ''
+ if isinstance(self.name, types.StringType):
+ for i, nick in enumerate(self.nick):
+- ret = ret + theme['subtitle'] + nick[0:self.width].center(self.width) + theme['default']
++ ret = ret + theme['subtitle'] + nick[0:self.width].center(self.width, char['space']) + theme['default']
+ if i + 1 != len(self.nick): ret = ret + char['space']
+ return ret
+ else:
+ for i, name in enumerate(self.name):
+ for j, nick in enumerate(self.nick):
+- ret = ret + theme['subtitle'] + nick[0:self.width].center(self.width) + theme['default']
++ ret = ret + theme['subtitle'] + nick[0:self.width].center(self.width, char['space']) + theme['default']
+ if j + 1 != len(self.nick): ret = ret + char['space']
+ if i + 1 != len(self.name): ret = ret + theme['frame'] + char['colon']
+ return ret
+@@ -679,7 +683,7 @@ class dstat_cpu24(dstat):
+ class dstat_disk(dstat):
+ def __init__(self):
+ self.nick = ('read', 'writ')
+- self.type = 'd'
++ self.type = 'b'
+ self.diskfilter = re.compile('^(dm-\d+|md\d+|[hsv]d[a-z]+\d+)$')
+ self.open('/proc/diskstats')
+ self.cols = 2
+@@ -745,7 +749,7 @@ class dstat_disk(dstat):
+ class dstat_disk24(dstat):
+ def __init__(self):
+ self.nick = ('read', 'writ')
+- self.type = 'd'
++ self.type = 'b'
+ self.diskfilter = re.compile('(dm-\d+|md\d+|[hsv]d[a-z]+\d+)')
+ self.open('/proc/partitions')
+ if self.fd and not self.discover:
+@@ -810,7 +814,7 @@ class dstat_disk24(dstat):
+ class dstat_disk24old(dstat):
+ def __init__(self):
+ self.nick = ('read', 'writ')
+- self.type = 'd'
++ self.type = 'b'
+ self.diskfilter = re.compile('(dm-\d+|md\d+|[hsv]d[a-z]+\d+)')
+ self.regexp = re.compile('^\((\d+),(\d+)\):\(\d+,\d+,(\d+),\d+,(\d+)\)$')
+ self.open('/proc/stat')
+@@ -1188,7 +1192,7 @@ class dstat_mem(dstat):
+ class dstat_net(dstat):
+ def __init__(self):
+ self.nick = ('recv', 'send')
+- self.type = 'd'
++ self.type = 'b'
+ self.totalfilter = re.compile('^(lo|bond\d+|face|.+\.\d+)$')
+ self.open('/proc/net/dev')
+ self.cols = 2
+@@ -1599,6 +1603,7 @@ char = {
+ 'space': ' ',
+ 'dash': '-',
+ 'plus': '+',
++ 'underscore': '_',
+ }
+
+ def set_theme():
+@@ -1863,7 +1868,7 @@ def cprintlist(varlist, type, width, sca
+ ret = sep = ''
+ for var in varlist:
+ ret = ret + sep + cprint(var, type, width, scale)
+- sep = ' '
++ sep = char['space']
+ return ret
+
+ def cprint(var, type = 'f', width = 4, scale = 1000):
+@@ -1882,14 +1887,18 @@ def cprint(var, type = 'f', width = 4, s
+ ### If this is a negative value, return a dash
+ if var < 0:
+ if unit:
+- return theme['error'] + '-'.rjust(width) + ' ' + theme['default']
++ return theme['error'] + '-'.rjust(width, char['space']) + char['space'] + theme['default']
+ else:
+- return theme['error'] + '-'.rjust(width) + theme['default']
++ return theme['error'] + '-'.rjust(width, char['space']) + theme['default']
+
+- if base == 1024:
+- units = ('B', 'k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y')
++ if base != 1024:
++ units = (char['space'], 'k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y')
++ elif op.bits and type in ('b', ):
++ units = ('b', 'k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y')
++ base = scale = 1000
++ var = var * 8.0
+ else:
+- units = (' ', 'k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y')
++ units = ('B', 'k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y')
+
+ if step == op.delay:
+ colors = theme['colors_lo']
+@@ -1901,11 +1910,11 @@ def cprint(var, type = 'f', width = 4, s
+ cunit = theme['unit_hi']
+
+ ### Convert value to string given base and field-length
+- if op.integer and type in ('d', 'p', 'f'):
++ if op.integer and type in ('b', 'd', 'p', 'f'):
+ ret, c = dchg(var, width, base)
+- elif op.float and type in ('d', 'p', 'f'):
++ elif op.float and type in ('b', 'd', 'p', 'f'):
+ ret, c = fchg(var, width, base)
+- elif type in ('d', 'p'):
++ elif type in ('b', 'd', 'p'):
+ ret, c = dchg(var, width, base)
+ elif type in ('f'):
+ ret, c = fchg(var, width, base)
+@@ -1925,23 +1934,23 @@ def cprint(var, type = 'f', width = 4, s
+ color = colors[int(var/scale)%len(colors)]
+ elif type in ('p'):
+ color = colors[int(round(var)/scale)%len(colors)]
+- elif type in ('d', 'f'):
++ elif type in ('b', 'd', 'f'):
+ color = colors[c%len(colors)]
+ else:
+ color = ctext
+
+ ### Justify value to left if string
+ if type in ('s',):
+- ret = color + ret.ljust(width)
++ ret = color + ret.ljust(width, char['space'])
+ else:
+- ret = color + ret.rjust(width)
++ ret = color + ret.rjust(width, char['space'])
- --aio enable aio stats
- --fs, --filesystem enable fs stats
-@@ -719,6 +731,12 @@ class dstat_disk(dstat):
- return ['dsk/'+sysfs_dev(name) for name in self.vars]
+ ### Add unit to output
+ if unit:
+ if c != -1 and round(var) != 0:
+ ret += cunit + units[c]
+ else:
+- ret += ' '
++ ret += char['space']
- def extract(self):
-+
-+ # Default to 1.0 (leave as bytes) but if bits convert the bytes to bits
-+ factor = 1.0
-+ if op.diskbits:
-+ factor = 8.0
-+
- for name in self.vars: self.set2[name] = (0, 0)
- for l in self.splitlines():
- if len(l) < 13: continue
-@@ -736,8 +754,8 @@ class dstat_disk(dstat):
- self.set2[diskset] = ( self.set2[diskset][0] + long(l[5]), self.set2[diskset][1] + long(l[9]) )
- for name in self.set2.keys():
- self.val[name] = (
-- (self.set2[name][0] - self.set1[name][0]) * 512.0 / elapsed,
-- (self.set2[name][1] - self.set1[name][1]) * 512.0 / elapsed,
-+ (self.set2[name][0] - self.set1[name][0]) * factor * 512.0 / elapsed,
-+ (self.set2[name][1] - self.set1[name][1]) * factor * 512.0 / elapsed,
- )
- if step == op.delay:
- self.set1.update(self.set2)
-@@ -1227,6 +1245,12 @@ class dstat_net(dstat):
+ return ret
- def extract(self):
- self.set2['total'] = [0, 0]
-+
-+ # Default to 1.0 (leave as bytes) but if bits convert the bytes to bits
-+ factor = 1.0
-+ if op.netbits:
-+ factor = 8.0
-+
- for l in self.splitlines(replace=':'):
- if len(l) < 17: continue
- if l[2] == '0' and l[10] == '0': continue
-@@ -1238,8 +1262,8 @@ class dstat_net(dstat):
- if update:
- for name in self.set2.keys():
- self.val[name] = [
-- (self.set2[name][0] - self.set1[name][0]) * 1.0 / elapsed,
-- (self.set2[name][1] - self.set1[name][1]) * 1.0 / elapsed,
-+ (self.set2[name][0] - self.set1[name][0]) * factor / elapsed,
-+ (self.set2[name][1] - self.set1[name][1]) * factor / elapsed,
- ]
- if self.val[name][0] < 0: self.val[name][0] += maxint + 1
- if self.val[name][1] < 0: self.val[name][1] += maxint + 1
diff --git a/dstat-0.7.2-man.patch b/dstat-0.7.2-man.patch
new file mode 100644
index 0000000..29ee753
--- /dev/null
+++ b/dstat-0.7.2-man.patch
@@ -0,0 +1,23 @@
+diff -up dstat-0.7.2/docs/dstat.1.man dstat-0.7.2/docs/dstat.1
+--- dstat-0.7.2/docs/dstat.1.man 2012-09-03 14:27:43.000000000 +0200
++++ dstat-0.7.2/docs/dstat.1 2012-09-03 14:29:29.472736887 +0200
+@@ -90,7 +90,7 @@ enable system stats (interrupts, context
+ \-\-aio
+ enable aio stats (asynchronous I/O)
+ .TP
+-\-\-fs
++\-\-fs, \-\-filesystem
+ enable filesystem stats (open files, inodes)
+ .TP
+ \-\-ipc
+diff -up dstat-0.7.2/dstat.man dstat-0.7.2/dstat
+--- dstat-0.7.2/dstat.man 2012-09-03 14:27:43.000000000 +0200
++++ dstat-0.7.2/dstat 2012-09-03 14:29:54.683393579 +0200
+@@ -339,6 +339,7 @@ Dstat options:
+ --noheaders disable repetitive headers
+ --noupdate disable intermediate updates
+ --output file write CSV output to file
++ --profile show profiling statistics when exiting dstat
+
+ delay is the delay in seconds between each update (default: 1)
+ count is the number of updates to display before exiting (default: unlimited)
diff --git a/dstat.spec b/dstat.spec
index 3ce2d15..df0dcc6 100644
--- a/dstat.spec
+++ b/dstat.spec
@@ -1,7 +1,7 @@
Summary: Versatile resource statistics tool
Name: dstat
Version: 0.7.2
-Release: 8%{?dist}
+Release: 9%{?dist}
License: GPLv2
Group: System Environment/Base
URL: http://dag.wieers.com/home-made/dstat/
@@ -25,6 +25,9 @@ Patch1: dstat-0.7.2-bits.patch
# (BZ#766443)
Patch2: dstat-0.7.2-disk-path.patch
+# Fixed inconsistency between man page and help (#852797)
+Patch3: dstat-0.7.2-man.patch
+
BuildArch: noarch
BuildRequires: python2-devel
Requires: python
@@ -49,6 +52,7 @@ confusion, less mistakes.
%patch0 -p1 -b .dbus
%patch1 -p1 -b .bits
%patch2 -p1 -b .disk-path
+%patch3 -p1 -b .man
%build
# Make sure the docs are in unix format
@@ -75,6 +79,10 @@ cd docs
%{_datadir}/dstat/*.py*
%changelog
+* Mon Sep 03 2012 Jiri Popelka <jpopelka at redhat.com> - 0.7.2-9
+- use upstream's bits.patch
+- fixed inconsistency between man page and help (#852797)
+
* Wed Jul 18 2012 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 0.7.2-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
More information about the scm-commits
mailing list