~ruther/guix-local

61ac75445320890e9be38dc04492cae3caf657a2 — Tobias Geerinckx-Rice 9 years ago 71794d7
gnu: Add nyx.

* gnu/packages/tor.scm (nyx): New variable.
1 files changed, 64 insertions(+), 0 deletions(-)

M gnu/packages/tor.scm
M gnu/packages/tor.scm => gnu/packages/tor.scm +64 -0
@@ 3,6 3,7 @@
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 227,3 228,66 @@ internet.  The other user just needs to use Tor Browser to download the file
from you.")
    (license (list license:gpl3+
                   license:bsd-3))))    ; onionshare/socks.py

(define-public nyx
  ;; The last ‘arm’ relase was 5 years ago.  Meanwhile, python3 support has
  ;; been added and the software was renamed to ‘nyx’.
  (let ((commit "fea209127484d9b304b908a4711c9528b1d065bc")
        (revision "1"))                 ; Guix package revision
    (package
      (name "nyx")
      (version (string-append "1.9-"
                              revision "." (string-take commit 7)))
      (source
       (origin
         (method git-fetch)
         (file-name (string-append name "-" version "-checkout"))
         (uri (git-reference
               (url "https://git.torproject.org/nyx.git")
               (commit commit)))
         (sha256
          (base32
           "1g0l4988076xg5gs0x0nxzlg58rfx5g5agmklvyh4yp03vxncdb9"))))
      (build-system python-build-system)
      (native-inputs
       `(("python-mock" ,python-mock)
         ("python-pep8" ,python-pep8)
         ("python-pyflakes" ,python-pyflakes)))
      (inputs
       `(("python-stem" ,python-stem)))
      (arguments
       `(#:configure-flags
         (list (string-append "--man-page="
                              (assoc-ref %outputs "out")
                              "/share/man/man1/nyx.1")
               (string-append "--sample-path="
                              (assoc-ref %outputs "out")
                              "/share/doc/nyx/nyxrc.sample"))
         #:use-setuptools? #f           ; setup.py still uses distutils
         #:phases
         (modify-phases %standard-phases
           (replace 'check
             (lambda _
               (zero? (system* "./run_tests.py" "--unit")))))))
      ;; A Nyx home page is ‘being worked on’.  Use Arm's for now, which at
      ;; least mentions the new source repository:
      (home-page "http://www.atagar.com/arm/")
      (synopsis "Tor relay status monitor")
      (description "Nyx (formerly Anonymizing Relay Monitor or \"arm\")
monitors the performance of relays participating in the
@uref{https://www.torproject.org/, Tor anonymity network}.  It displays this
information visually and in real time, using a curses-based terminal interface.
This makes Nyx well-suited for remote shell connections and servers without a
graphical display.  It's like @command{top} for Tor, providing detailed
statistics and status reports on:

@enumerate
@item connections (with IP address, hostname, fingerprint, and consensus data),
@item bandwidth, processor, and memory usage,
@item the relay's current configuration,
@item logged events,
@item and much more.
@end enumerate

Potential client and exit connections are scrubbed of sensitive information.")
      (license license:gpl3+))))