gnu: dstat: Add two patches, fix two bugs.
* gnu/packages/admin.scm (dstat)[source]: Add patches. * gnu/packages/patches/dstat-fix-crash-when-specifying-delay.patch, gnu/packages/patches/dstat-skip-devices-without-io.patch: New files. * gnu/local.mk (dist_patch_DATA): Add them.
This commit is contained in:
parent
fa67073f13
commit
10a3297389
|
@ -753,6 +753,8 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/docker-use-fewer-modprobes.patch \
|
||||
%D%/packages/patches/dovecot-trees-support-dovecot-2.3.patch \
|
||||
%D%/packages/patches/doxygen-test.patch \
|
||||
%D%/packages/patches/dstat-fix-crash-when-specifying-delay.patch \
|
||||
%D%/packages/patches/dstat-skip-devices-without-io.patch \
|
||||
%D%/packages/patches/dvd+rw-tools-add-include.patch \
|
||||
%D%/packages/patches/elfutils-tests-ptrace.patch \
|
||||
%D%/packages/patches/elixir-path-length.patch \
|
||||
|
|
|
@ -2133,7 +2133,9 @@ results (ndiff), and a packet generation and response analysis tool (nping).")
|
|||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name "dstat" version))
|
||||
(sha256
|
||||
(base32 "1qnmkhqmjd1m3if05jj29dvr5hn6kayq9bkkkh881w472c0zhp8v"))))
|
||||
(base32 "1qnmkhqmjd1m3if05jj29dvr5hn6kayq9bkkkh881w472c0zhp8v"))
|
||||
(patches (search-patches "dstat-fix-crash-when-specifying-delay.patch"
|
||||
"dstat-skip-devices-without-io.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no make check
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
From: Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
Date: Sun, 16 Jun 2019 02:34:10 +0200
|
||||
Subject: [PATCH] gnu: dstat: Fix crash when specifying a delay.
|
||||
|
||||
Taken verbatim from a pull request[0] that will never be merged.
|
||||
|
||||
[0]: https://github.com/dagwieers/dstat/pull/167
|
||||
|
||||
From 220a785321b13b6df92a536080aca6ef1cb644ad Mon Sep 17 00:00:00 2001
|
||||
From: Falko Goettsch <falko@uw.edu>
|
||||
Date: Mon, 11 Mar 2019 20:12:49 -0700
|
||||
Subject: [PATCH] Fixed bug when specifying a delay
|
||||
|
||||
The division in the 'loop' calculation in perform() was returning floating point values
|
||||
after the migration to Python 3, rather than rounding down. Changed to floor division.
|
||||
|
||||
I think the floating point values kept 'loop == 0' from ever being
|
||||
true and the variables inside that conditional were never initialized,
|
||||
causing the following error when a delay other than 1 was specified:
|
||||
|
||||
You did not select any stats, using -cdngy by default.
|
||||
Traceback (most recent call last):
|
||||
File "/home/falko/repos/dstat/dstat", line 2825, in <module>
|
||||
main()
|
||||
File "/home/falko/repos/dstat/dstat", line 2684, in main
|
||||
scheduler.run()
|
||||
File "/home/falko/.conda/envs/python3/lib/python3.7/sched.py", line 151, in run
|
||||
action(*argument, **kwargs)
|
||||
File "/home/falko/repos/dstat/dstat", line 2729, in perform
|
||||
oldcols = cols
|
||||
NameError: name 'cols' is not defined
|
||||
---
|
||||
dstat | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dstat b/dstat
|
||||
index 9359965..3b4980f 100755
|
||||
--- a/dstat
|
||||
+++ b/dstat
|
||||
@@ -2697,7 +2697,7 @@ def perform(update):
|
||||
|
||||
starttime = time.time()
|
||||
|
||||
- loop = (update - 1 + op.delay) / op.delay
|
||||
+ loop = (update - 1 + op.delay) // op.delay
|
||||
step = ((update - 1) % op.delay) + 1
|
||||
|
||||
### Get current time (may be different from schedule) for debugging
|
|
@ -0,0 +1,32 @@
|
|||
From: Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
Date: Sun, 16 Jun 2019 02:36:23 +0200
|
||||
Subject: [PATCH] gnu: dstat: Skip devices without I/O.
|
||||
|
||||
Taken verbatim from a pull request[0] that will never be merged.
|
||||
|
||||
[0]: https://github.com/dagwieers/dstat/pull/164
|
||||
|
||||
From 0988589ea4ee092b285bd4049d56add5f61e3f69 Mon Sep 17 00:00:00 2001
|
||||
From: Tobias Gruetzmacher <tobias-git@23.gs>
|
||||
Date: Fri, 15 Feb 2019 18:46:57 +0100
|
||||
Subject: [PATCH] Skip devices without I/O
|
||||
|
||||
Linux 4.18+ has added more fields to the diskstats proc file, so the
|
||||
original skip condition for devices without I/O didn't apply anymore.
|
||||
---
|
||||
dstat | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dstat b/dstat
|
||||
index 9359965..5c2fb53 100755
|
||||
--- a/dstat
|
||||
+++ b/dstat
|
||||
@@ -763,7 +763,7 @@ class dstat_disk(dstat):
|
||||
ret = []
|
||||
for l in self.splitlines():
|
||||
if len(l) < 13: continue
|
||||
- if l[3:] == ['0',] * 11: continue
|
||||
+ if l[3:] == ['0',] * (len(l) - 3): continue
|
||||
name = l[2]
|
||||
ret.append(name)
|
||||
for item in objlist: ret.append(item)
|
Loading…
Reference in New Issue