Patchwork gnu: Add nethogs.

login
register
mail settings
Submitter Arun
Date Oct. 30, 2016, 4:44 p.m.
Message ID <20161030164427.1817-1-arunisaac@systemreboot.net>
Download mbox | patch
Permalink /patch/17023/
State New
Headers show

Comments

Arun - Oct. 30, 2016, 4:44 p.m.
* gnu/packages/networking.scm (nethogs): New variable.
---
 gnu/packages/networking.scm | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)
Arun - Oct. 30, 2016, 5:04 p.m.
> +    (arguments
> +     `(#:make-flags `("CC=gcc"
> +                      ,(string-append "PREFIX=" %output))
> +       #:phases
> +       (modify-phases %standard-phases
> +         (delete 'configure))))

I haven't moved the binary to /bin yet. If we can come to some consensus
on that, I'll make that change as well.

> +    (synopsis "Per-process bandwidth monitor")
> +    (description "NetHogs is a small 'net top' tool for Linux.
> +Instead of breaking the traffic down per protocol or per subnet, like
> +most tools do, it groups bandwidth by process.

I've updated the synopsis and description as discussed earlier.
Leo Famulari - Oct. 30, 2016, 5:09 p.m.
On Sun, Oct 30, 2016 at 10:34:54PM +0530, Arun Isaac wrote:
> 
> > +    (arguments
> > +     `(#:make-flags `("CC=gcc"
> > +                      ,(string-append "PREFIX=" %output))
> > +       #:phases
> > +       (modify-phases %standard-phases
> > +         (delete 'configure))))
> 
> I haven't moved the binary to /bin yet. If we can come to some consensus
> on that, I'll make that change as well.

We typically package what the upstream maintainers offer, and only make
changes in order to fix bugs or to adapt the software to the functional
packaging paradigm. In this case, I don't see a reason to change the
directory the software is installed to. Is there a reason to change it?
Arun - Oct. 30, 2016, 5:46 p.m.
> We typically package what the upstream maintainers offer, and only make
> changes in order to fix bugs or to adapt the software to the functional
> packaging paradigm. In this case, I don't see a reason to change the
> directory the software is installed to. Is there a reason to change it?

/sbin is for programs that need superuser privileges. nethogs does need
superuser privileges. So, I don't think we should move it to /bin.

If everything else is fine, please consider the patch for inclusion into
Guix.

Thanks.
Leo Famulari - Oct. 30, 2016, 7:41 p.m.
On Sun, Oct 30, 2016 at 11:16:55PM +0530, Arun Isaac wrote:
> 
> > We typically package what the upstream maintainers offer, and only make
> > changes in order to fix bugs or to adapt the software to the functional
> > packaging paradigm. In this case, I don't see a reason to change the
> > directory the software is installed to. Is there a reason to change it?
> 
> /sbin is for programs that need superuser privileges. nethogs does need
> superuser privileges. So, I don't think we should move it to /bin.
> 
> If everything else is fine, please consider the patch for inclusion into
> Guix.

Okay, pushed! This is another package I can now install from Guix
instead of my host distro :)

Thank you!
Arun - Oct. 31, 2016, 6 a.m.
> Okay, pushed!

Thanks!

Patch

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index ac88673..d0e0a79 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -991,3 +991,39 @@  the bandwidth, loss, and other parameters.")
                    license:ncsa              ; src/{units,iperf_locale,tcp_window_size}.c
                    license:expat             ; src/{cjson,net}.[ch]
                    license:public-domain)))) ; src/portable_endian.h
+
+(define-public nethogs
+  (package
+    (name "nethogs")
+    (version "0.8.5")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/raboof/nethogs/archive/v"
+                    version ".tar.gz"))
+              (sha256
+               (base32
+                "1k4x8r7s4dgcb6n2rjn28h2yyij92mwm69phncl3597cdxr954va"))
+              (file-name (string-append name "-" version ".tar.gz"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("libpcap" ,libpcap)
+       ("ncurses" ,ncurses)))
+    (arguments
+     `(#:make-flags `("CC=gcc"
+                      ,(string-append "PREFIX=" %output))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))
+    (home-page "https://github.com/raboof/nethogs")
+    (synopsis "Per-process bandwidth monitor")
+    (description "NetHogs is a small 'net top' tool for Linux.
+Instead of breaking the traffic down per protocol or per subnet, like
+most tools do, it groups bandwidth by process.
+
+NetHogs does not rely on a special kernel module to be loaded.  If
+there's suddenly a lot of network traffic, you can fire up NetHogs and
+immediately see which PID is causing this.  This makes it easy to
+identify programs that have gone wild and are suddenly taking up your
+bandwidth.")
+    (license license:gpl2+)))