gnu: mailutils: Add SEARCH CHARSET support.
[jackhill/guix/guix.git] / gnu / packages / admin.scm
index 88b6f61..9ed2e32 100644 (file)
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
 ;;; Copyright © 2014, 2015, 2016, 2018 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014, 2015, 2016, 2017, 2018 Eric Bavier <bavier@member.fsf.org>
@@ -9,11 +9,11 @@
 ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl>
 ;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Peter Feigl <peter.feigl@nexoid.at>
 ;;; Copyright © 2016 John J. Foerch <jjfoerch@earthlink.net>
-;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
-;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
+;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
 ;;; Copyright © 2017 Ben Sturmfels <ben@sturm.com.au>
 ;;; Copyright © 2017 Ethan R. Jones <doubleplusgood23@gmail.com>
@@ -22,6 +22,8 @@
 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
 ;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
+;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
+;;; Copyright © 2019 Brett Gilio <brettg@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -45,6 +47,7 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system emacs)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system perl)
@@ -84,6 +87,7 @@
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-crypto)
   #:use-module (gnu packages python-web)
+  #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages terminals)
   #:use-module (gnu packages texinfo)
 (define-public aide
   (package
     (name "aide")
-    (version "0.16")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://sourceforge/aide/aide/"
-                                  version "/aide-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0ibkv4z2gk14fn014kq13rp2ysiq6nn2cflv2q5i7zf466hm6758"))))
+    (version "0.16.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/aide/aide/releases/download/v"
+                           version "/aide-" version ".tar.gz"))
+       (sha256
+        (base32 "1dqhc0c24wa4zid06pfy61k357yvzh28ij86bk9jf6hcqzn7qaqg"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("bison" ,bison)
      `(("libgcrypt" ,libgcrypt)
        ("libgpg-error" ,libgpg-error)
        ("libmhash" ,libmhash)
+       ("pcre:static" ,pcre "static")
        ("pcre" ,pcre)
+       ("zlib:static" ,zlib "static")
        ("zlib" ,zlib)))
     (synopsis "File and directory integrity checker")
     (description
@@ -135,20 +141,22 @@ that it finds from its configuration files.  Once this database is initialized
 it can be used to verify the integrity of the files.  It has several message
 digest algorithms that are used to check the integrity of files.  All of the
 usual file attributes can be checked for inconsistencies.")
-    (home-page "http://aide.sourceforge.net/")
+    (home-page "https://aide.github.io/")
     (license license:gpl2+)))
 
 (define-public progress
   (package
     (name "progress")
     (version "0.14")
-    (source (origin
-      (method url-fetch)
-      (uri (string-append "https://github.com/Xfennec/"
-                          name "/archive/v" version ".tar.gz"))
-      (sha256
-       (base32 "1wcanixfsi5k4i9h5vrnncgjdncalsdfqllrxibxwpgfnf20sji1"))
-      (file-name (string-append name "-" version ".tar.gz"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Xfennec/progress.git")
+             (commit (string-append "v" version))))
+       (sha256
+        (base32 "1lk2v4b767klib93an4g3f7z5qrv9kdk9jf7545vw1immc4kamrl"))
+       (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -156,12 +164,12 @@ usual file attributes can be checked for inconsistencies.")
     (inputs
      `(("ncurses" ,ncurses)))
     (arguments
-     `(#:tests? #f ; There is no test suite.
+     `(#:tests? #f                      ; no test suite
        #:make-flags (list "CC=gcc"
                           (string-append "PREFIX=" (assoc-ref %outputs "out")))
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure)))) ; There's no configure phase.
+         (delete 'configure))))         ; no configure script
     (home-page "https://github.com/Xfennec/progress")
     (synopsis "Program to view the progress of the coreutils commands")
     (description "A program that looks for coreutils basic commands (cp, mv,
@@ -213,8 +221,8 @@ interface and is based on GNU Guile.")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "https://cr.yp.to/" name "/"
-                    name "-" version ".tar.gz"))
+                    "https://cr.yp.to/daemontools/"
+                    "daemontools-" version ".tar.gz"))
               (sha256
                (base32
                 "07scvw88faxkscxi91031pjkpccql6wspk4yrlnsbrrb5c0kamd5"))))
@@ -225,13 +233,15 @@ interface and is based on GNU Guile.")
        (modify-phases %standard-phases
          (add-after 'unpack 'chdir
            (lambda _
-             (chdir ,(string-append  name "-" version))))
+             (chdir ,(string-append "daemontools-" version))
+             #t))
          (delete 'configure)
          (add-before 'build 'patch
            (lambda _
              (substitute* "src/error.h"
                (("extern int errno;")
-                "#include <errno.h>"))))
+                "#include <errno.h>"))
+             #t))
          (replace 'build
            (lambda _
              (invoke "package/compile")))
@@ -241,7 +251,8 @@ interface and is based on GNU Guile.")
                     (bin (string-append out "/bin")))
                (for-each (lambda (file)
                            (install-file file bin))
-                         (find-files "command"))))))))
+                         (find-files "command")))
+             #t)))))
     (synopsis "Tools for managing UNIX style services")
     (description
      "@code{daemontools} is a collection of tools for managing UNIX
@@ -274,26 +285,26 @@ graphs and can export its output to different formats.")
 
 (define-public htop
   (package
-   (name "htop")
-   (version "2.2.0")
-   (source (origin
-            (method url-fetch)
-            (uri (string-append "http://hisham.hm/htop/releases/"
-                  version "/htop-" version ".tar.gz"))
-            (sha256
-             (base32
-              "0mrwpb3cpn3ai7ar33m31yklj64c3pp576vh1naqff6f21pq5mnr"))))
-   (build-system gnu-build-system)
-   (inputs
-    `(("ncurses" ,ncurses)))
-   (native-inputs
-    `(("python" ,python-minimal-wrapper))) ; for scripts/MakeHeader.py
-   (home-page "https://hisham.hm/htop/")
-   (synopsis "Interactive process viewer")
-   (description
-    "This is htop, an interactive process viewer.  It is a text-mode
+    (name "htop")
+    (version "2.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://hisham.hm/htop/releases/"
+                                  version "/htop-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0mrwpb3cpn3ai7ar33m31yklj64c3pp576vh1naqff6f21pq5mnr"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("ncurses" ,ncurses)))
+    (native-inputs
+     `(("python" ,python-wrapper)))     ;for scripts/MakeHeader.py
+    (home-page "https://hisham.hm/htop/")
+    (synopsis "Interactive process viewer")
+    (description
+     "This is htop, an interactive process viewer.  It is a text-mode
 application (for console or X terminals) and requires ncurses.")
-   (license license:gpl2)))
+    (license license:gpl2)))
 
 (define-public pies
   (package
@@ -869,7 +880,7 @@ over ssh connections.")
 (define-public rename
   (package
     (name "rename")
-    (version "1.00")
+    (version "1.10")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -877,7 +888,7 @@ over ssh connections.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "03yhf8nmqsb0zyliv501fdvwlp589jqfn44yqkrflmpzrbik3zxl"))))
+                "137m8s06r4n038ivlr5r1d9a7q9l7shmwpvnyx053r9ndhvbnkh5"))))
     (build-system perl-build-system)
     (arguments
      `(#:phases
@@ -963,7 +974,7 @@ at once based on a Perl regular expression.")
                       #t))
                   (add-after 'install 'install-info
                     (lambda _
-                      (zero? (system* "make" "install-info")))))))
+                      (invoke "make" "install-info"))))))
     (native-inputs `(("texinfo" ,texinfo)
                      ("util-linux" ,util-linux))) ; for 'cal'
     (home-page "https://www.gnu.org/software/rottlog/")
@@ -979,7 +990,7 @@ system administrator.")
 (define-public sudo
   (package
     (name "sudo")
-    (version "1.8.26")
+    (version "1.8.27")
     (source (origin
               (method url-fetch)
               (uri
@@ -989,7 +1000,7 @@ system administrator.")
                                     version ".tar.gz")))
               (sha256
                (base32
-                "1qpyyfga8rs02p3186sns8qvh2bzwa48ka845nrcqh83dyd23nj0"))
+                "1h1f7v9pv0rzp14cxzv8kaa8mdd717fbqv83l7c5dvvi8jwnisvv"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -1059,22 +1070,16 @@ commands and their arguments.")
 (define-public wpa-supplicant-minimal
   (package
     (name "wpa-supplicant-minimal")
-    (version "2.6")
+    (version "2.7")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "https://w1.fi/releases/wpa_supplicant-"
                     version
                     ".tar.gz"))
-              (patches (search-patches "wpa-supplicant-CVE-2017-13082.patch"
-                                       "wpa-supplicant-CVE-2018-14526.patch"
-                                       "wpa-supplicant-fix-key-reuse.patch"
-                                       "wpa-supplicant-fix-zeroed-keys.patch"
-                                       "wpa-supplicant-fix-nonce-reuse.patch"
-                                       "wpa-supplicant-krack-followups.patch"))
               (sha256
                (base32
-                "0l0l5gz3d5j9bqjsbjlfcv4w4jwndllp9fmyai4x9kg6qhs6v4xl"))))
+                "0x1hqyahq44jyla8jl6791nnwrgicrhidadikrnqxsm2nw36pskn"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -1094,7 +1099,8 @@ commands and their arguments.")
       CFLAGS += $(shell pkg-config libnl-3.0 --cflags)
       CONFIG_LIBNL32=y
       CONFIG_READLINE=y\n" port)
-               (close-port port))))
+               (close-port port))
+             #t))
          (add-after 'install 'install-man-pages
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out  (assoc-ref outputs "out"))
@@ -1137,7 +1143,9 @@ WLAN driver.
 This package provides the 'wpa_supplicant' daemon and the 'wpa_cli' command.")
 
     ;; In practice, this is linked against Readline, which makes it GPLv3+.
-    (license license:bsd-3)))
+    (license license:bsd-3)
+
+    (properties `((cpe-name . "wpa_supplicant")))))
 
 (define-public wpa-supplicant
   (package (inherit wpa-supplicant-minimal)
@@ -1233,11 +1241,10 @@ This package provides the 'wpa_supplicant' daemon and the 'wpa_cli' command.")
                ;; It's an old configure script that doesn't understand
                ;; the extra options we pass.
                (setenv "CONFIG_SHELL" (which "bash"))
-               (zero?
-                (system* "./configure"
-                         (string-append "--prefix=" out)
-                         (string-append "--mandir=" out
-                                        "/share/man")))))))
+               (invoke "./configure"
+                       (string-append "--prefix=" out)
+                       (string-append "--mandir=" out
+                                      "/share/man"))))))
        #:tests? #f))
     (home-page "https://www.kernel.org") ; really, no home page
     (synopsis "Send a wake-on-LAN packet")
@@ -1279,7 +1286,7 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
 (define-public acpica
   (package
     (name "acpica")
-    (version "20180810")
+    (version "20190215")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1287,7 +1294,7 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
                     version ".tar.gz"))
               (sha256
                (base32
-                "01drf32h0v1s8yd414rgc9bavb52yffrwpnbzfxd9sk1lwssr6v7"))))
+                "1iy2zwi8aicq0b5a0phfacvk1f9z1d89cx43adcf0qh82gb9m4wg"))))
     (build-system gnu-build-system)
     (native-inputs `(("flex" ,flex)
                      ("bison" ,bison)))
@@ -1339,25 +1346,30 @@ system is under heavy load.")
 (define-public detox
   (package
     (name "detox")
-    (version "1.2.0")
+    (version "1.3.0")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://sourceforge/detox/detox/" version
-                                  "/detox-" version ".tar.bz2"))
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/dharple/detox.git")
+                    (commit (string-append "v" version))))
               (sha256
                (base32
-                "1y6vvjqsg54kl49cry73jbfhr04s7wjs779vrr9zrq6kww7dkymb"))))
+                "1dd608c7g65s5lj02cddvani3q9kzirddgkjqa22ap9d4f8b9xgr"))))
     (build-system gnu-build-system)
-    ;; Both flex and popt are used in this case for their runtime libraries
-    ;; (libfl and libpopt).
-    (inputs
-     `(("flex" ,flex)
-       ("popt" ,popt)))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("flex" ,flex)))
     (arguments
-     `(#:configure-flags `(,(string-append "--with-popt="
-                                           (assoc-ref %build-inputs "popt")))
-       #:tests? #f))                    ;no 'check' target
-    (home-page "http://detox.sourceforge.net")
+     `(#:tests? #f                    ;no 'check' target
+       #:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'delete-configure
+                    ;; The "configure" script is present, but otherwise the
+                    ;; project is not bootstrapped: missing install-sh and
+                    ;; Makefile.in, so delete it so the bootstrap phase will
+                    ;; take over.
+                    (lambda _ (delete-file "configure") #t)))))
+    (home-page "https://github.com/dharple/detox")
     (synopsis "Clean up file names")
     (description
      "Detox is a program that renames files to make them easier to work with
@@ -1397,14 +1409,14 @@ recover lost partitions and/or make non-booting disks bootable again.")
 (define-public tree
   (package
     (name "tree")
-    (version "1.7.0")
+    (version "1.8.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "http://mama.indstate.edu/users/ice/tree/src/tree-"
                     version ".tgz"))
               (sha256
-               (base32 "04kviw799qxly08zb8n5mgxfd96gyis6x69q2qiw86jnh87c4mv9"))))
+               (base32 "1hmpz6k0mr6salv0nprvm1g0rdjva1kx03bdf1scw8a38d5mspbi"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases (delete 'configure))
@@ -1498,7 +1510,7 @@ various ways that may be running with too much privilege.")
 (define-public smartmontools
   (package
     (name "smartmontools")
-    (version "6.6")
+    (version "7.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1506,7 +1518,7 @@ various ways that may be running with too much privilege.")
                     version "/smartmontools-" version ".tar.gz"))
               (sha256
                (base32
-                "0m1hllbb78rr6cxkbalmz1gqkl0psgq8rrmv4gwcmz34n07kvx2i"))))
+                "077nx2rn9szrg6isdh0938zbp7vr3dsyxl4jdyyzv1xwhqksrqg5"))))
     (build-system gnu-build-system)
     (inputs `(("libcap-ng" ,libcap-ng)))
     (home-page "https://www.smartmontools.org/")
@@ -1525,14 +1537,13 @@ degradation and failure.")
     (version "1.6.1")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/adrianlopezroche/fdupes/archive/v"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/adrianlopezroche/fdupes.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1sj9pa40pbz6xdwbxfwhdhkvhdf1xc5gvggk9mdq26c41gdnyswx"))))
+        (base32 "19b6vqblddaw8ccw4sn0qsqzbswlhrz8ia6n4m3hymvcxn8skpz9"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
@@ -1555,9 +1566,7 @@ specified directories.")
    (source
     (origin
       (method url-fetch)
-      (uri (string-append
-            "https://pypi.python.org/packages/source/g/graphios/graphios-"
-            version ".tar.gz"))
+      (uri (pypi-uri "graphios" version))
       (sha256
        (base32
         "1h87hvc315wg6lklbf4l7csd3n5pgljwrfli1p3nasdi0izgn66i"))))
@@ -1589,15 +1598,13 @@ of supported upstream metrics systems simultaneously.")
 (define-public ansible
   (package
     (name "ansible")
-    (version "2.5.7")
+    (version "2.7.9")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "ansible" version))
        (sha256
-        (base32
-         "0wbsjjx3xjlm8g50a9j9c6p9rn23jx32yn1234bf5rmj1qgy3p85"))
-       (patches (search-patches "ansible-wrap-program-hack.patch"))))
+        (base32 "19vyf60zfmnv7frwm96bzqzvia69dysy9apk8bl84vr03ib9vrbf"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-bcrypt" ,python-bcrypt)
@@ -1614,6 +1621,42 @@ of supported upstream metrics systems simultaneously.")
        ("python-jinja2" ,python-jinja2)
        ("python-pyyaml" ,python-pyyaml)
        ("python-paramiko" ,python-paramiko)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; Several ansible commands (ansible-config, ansible-console, etc.)
+         ;; are just symlinks to a single ansible executable. The ansible
+         ;; executable behaves differently based on the value of
+         ;; sys.argv[0]. This does not work well with our wrap phase, and
+         ;; therefore the following two phases are required as a workaround.
+         (add-after 'unpack 'hide-wrapping
+           (lambda _
+             ;; Overwrite sys.argv[0] to hide the wrapper script from it.
+             (substitute* "bin/ansible"
+               (("import traceback" all)
+                (string-append all "
+import re
+sys.argv[0] = re.sub(r'\\.([^/]*)-real$', r'\\1', sys.argv[0])
+")))
+             #t))
+         (add-after 'wrap 'fix-symlinks
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (for-each
+                (lambda (subprogram)
+                  ;; The symlinks point to the ansible wrapper script. Make
+                  ;; them point to the real executable (.ansible-real).
+                  (delete-file (string-append out "/bin/.ansible-" subprogram "-real"))
+                  (symlink (string-append out "/bin/.ansible-real")
+                           (string-append out "/bin/.ansible-" subprogram "-real"))
+                  ;; The wrapper scripts of the symlinks invoke the ansible
+                  ;; wrapper script. Fix them to invoke the correct executable.
+                  (substitute* (string-append out "/bin/ansible-" subprogram)
+                    (("/bin/ansible")
+                     (string-append "/bin/.ansible-" subprogram "-real"))))
+                (list "config" "console" "doc" "galaxy"
+                      "inventory" "playbook" "pull" "vault")))
+             #t)))))
     (home-page "https://www.ansible.com/")
     (synopsis "Radically simple IT automation")
     (description "Ansible is a radically simple IT automation system.  It
@@ -1622,37 +1665,63 @@ ad hoc task execution, and multinode orchestration---including trivializing
 things like zero-downtime rolling updates with load balancers.")
     (license license:gpl3+)))
 
+(define-public emacs-ansible-doc
+  (let ((commit "86083a7bb2ed0468ca64e52076b06441a2f8e9e0"))
+    (package
+      (name "emacs-ansible-doc")
+      (version (git-version "0.4" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/lunaryorn/ansible-doc.el")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0lap404ch74w99n3xip176jr42b38xhyzkfnkyqg0g3wk2cd3aq8"))))
+      (build-system emacs-build-system)
+      ;; Unmaintained by upstream.
+      (home-page "https://github.com/lunaryorn/ansible-doc.el")
+      (synopsis "Ansible documentation for Emacs")
+      (description
+       "This package provides an Ansible documentation for GNU Emacs.
+
+@code{ansible-doc} allows you to view the documentation of an Ansible
+module and @code{ansible-doc-mode} minor mode adds documentation
+lookup to YAML Mode.  You could enable the mode with @code{(add-hook
+'yaml-mode-hook #'ansible-doc-mode)}.")
+      (license license:gpl3+))))
+
 (define-public cpulimit
   (package
     (name "cpulimit")
     (version "0.2")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/opsengine/cpulimit/archive/v"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/opsengine/cpulimit.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1nn2w849xd5bw4y5sqnll29nxdwl5h0cv4smc7dwmpb9qnd2ycb4"))))
+        (base32 "1dz045yhcsw1rdamzpz4bk8mw888in7fyqk1q1b3m1yk4pd1ahkh"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
                   (delete 'configure)
-                  (replace
-                   'build
-                   (lambda _
-                     (zero? (system* "make" "CC=gcc" "-Csrc"))))
-                  (replace
-                   'check
-                   (lambda _
-                     (zero? (system* "make" "CC=gcc" "-Ctests"))))
-                  (replace
-                   'install
-                   (lambda* (#:key outputs #:allow-other-keys)
-                     (let* ((out (assoc-ref outputs "out"))
-                            (bin (string-append out "/bin")))
-                       (install-file "src/cpulimit" bin)))))))
+                  (replace 'build
+                    (lambda _
+                      (invoke "make" "CC=gcc" "-Csrc")))
+                  (replace 'check
+                    (lambda _
+                      (invoke "make" "CC=gcc" "-Ctests")))
+                  (replace 'install
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let* ((out (assoc-ref outputs "out"))
+                             (bin (string-append out "/bin")))
+                        (install-file "src/cpulimit" bin))
+                      #t)))))
     (home-page "https://github.com/opsengine/cpulimit")
     (synopsis "Limit CPU usage")
     (description
@@ -1788,13 +1857,13 @@ platform-specific methods.")
   (package
     (name "audit")
     (home-page "https://people.redhat.com/sgrubb/audit/")
-    (version "2.8.4")
+    (version "2.8.5")
     (source (origin
               (method url-fetch)
-              (uri (string-append home-page name "-" version ".tar.gz"))
+              (uri (string-append home-page "audit-" version ".tar.gz"))
               (sha256
                (base32
-                "0f4ci6ffznnmgblwgv7ich9mjfk3p6y5l6m6h3chhmzw156nj454"))))
+                "1dzcwb2q78q7x41shcachn7f4aksxbxd470yk38zh03fch1l2p8f"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags (list "--with-python=no"
@@ -1849,7 +1918,7 @@ done with the @code{auditctl} utility.")
     ;; TODO Add zenmap output.
     (outputs '("out" "ndiff"))
     (arguments
-     '(#:configure-flags '("--without-zenmap")
+     `(#:configure-flags '("--without-zenmap")
        #:phases
        (modify-phases %standard-phases
          (add-after 'configure 'patch-Makefile
@@ -1861,12 +1930,14 @@ done with the @code{auditctl} utility.")
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (define (make out . args)
-               (unless (zero? (apply system* "make"
-                                     (string-append "prefix=" out)
-                                     args))
-                 (error "make failed")))
+               (apply invoke "make"
+                      (string-append "prefix=" out)
+                      args))
              (define (python-path dir)
-               (string-append dir "/lib/python2.7/site-packages"))
+               (string-append dir "/lib/python"
+                              ,(version-major+minor
+                                 (package-version python))
+                              "/site-packages"))
              (let ((out (assoc-ref outputs "out"))
                    (ndiff (assoc-ref outputs "ndiff")))
                (for-each mkdir-p (list out ndiff))
@@ -1878,13 +1949,14 @@ done with the @code{auditctl} utility.")
                (make ndiff "install-ndiff")
                (wrap-program (string-append ndiff "/bin/ndiff")
                  `("PYTHONPATH" prefix
-                   (,(python-path ndiff)))))))
+                   (,(python-path ndiff)))))
+             #t))
          ;; These are the tests that do not require network access.
          (replace 'check
-           (lambda _ (zero? (system* "make"
-                                     "check-nse"
-                                     "check-ndiff"
-                                     "check-dns")))))
+           (lambda _ (invoke "make"
+                             "check-nse"
+                             "check-ndiff"
+                             "check-dns"))))
        ;; Nmap can't cope with out-of-source building.
        #:out-of-source? #f))
     (home-page "https://nmap.org/")
@@ -1903,22 +1975,22 @@ results (ndiff), and a packet generation and response analysis tool (nping).")
   (package
     (name "dstat")
     (version "0.7.3")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/dagwieers/dstat/archive/"
-                    version ".tar.gz"))
-              (file-name (string-append "dstat-" version ".tar.gz"))
-              (sha256
-               (base32
-                "16286z3y2lc9nsq8njzjkv6k2vyxrj9xiixj1k3gnsbvhlhkirj6"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/dagwieers/dstat.git")
+             (commit version)))
+       (file-name (git-file-name "dstat" version))
+       (sha256
+        (base32 "0sbpna531034gr40w4g9cwz35s2fpf9h654paznsxw9fih91rfa5"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ;; no make check
+     `(#:tests? #f                      ; no make check
        #:make-flags (let ((out (assoc-ref %outputs "out")))
                       (list (string-append "DESTDIR=" out)
                             "prefix=/"))
-       ;; no configure script
+       ;; No configure script.
        #:phases (modify-phases %standard-phases (delete 'configure))))
     (inputs `(("python-2" ,python-2)))
     (synopsis "Versatile resource statistics tool")
@@ -1938,16 +2010,17 @@ throughput (in the same interval).")
 (define-public thefuck
   (package
     (name "thefuck")
-    (version "3.27")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/nvbn/thefuck/archive/"
-                                  version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0my32n2x8x0f0wr8ql7qgk9qhb6ibv5b1rqs5b2r4nadv0gpiv96"))
-              (patches (search-patches "thefuck-test-environ.patch"))))
+    (version "3.28")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/nvbn/thefuck.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "070b2sx8r0b4hry6xg97psxlikxghmz91zicg2cm6kc1yhgz4agc"))
+       (patches (search-patches "thefuck-test-environ.patch"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
@@ -2013,23 +2086,24 @@ produce uniform output across heterogeneous networks.")
   (package
     (name "cbatticon")
     (version "1.6.8")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/valr/"
-                                  name "/archive/" version ".tar.gz"))
-              (sha256
-               (base32
-                "185lzvaijvyq7y8r7dvizhri0rf9lpc1anfgbbn4lznr1fr3z7rn"))
-              (file-name (string-append name "-" version ".tar.gz"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/valr/cbatticon.git")
+             (commit version)))
+       (sha256
+        (base32 "16g26vin1693dbdr9qsnw36fdchx394lp79gvp7gcbw0w1ny9av6"))
+       (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ; no tests
+     `(#:tests? #f                      ; no tests
        #:make-flags
        (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
              "CC=gcc")
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure)))) ; no configure script
+         (delete 'configure))))         ; no configure script
     (inputs
      `(("gtk+" ,gtk+)
        ("gettext" ,gettext-minimal)
@@ -2047,22 +2121,22 @@ the status of your battery in the system tray.")
         (commit "896543735e1c99144765fdbd7b6e6b5afbd8b881"))
     (package
       (name "interrobang")
-      (version (string-append "0.0.0-" revision "." (string-take commit 7)))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/TrilbyWhite/interrobang")
-                      (commit commit)))
-                (file-name (string-append name "-" version))
-                (sha256
-                 (base32
-                  "1n13m70p1hfba5dy3i8hfclbr6k9q3d9dai3dg4jvhdhmxcpjzdf"))))
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/TrilbyWhite/interrobang.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1n13m70p1hfba5dy3i8hfclbr6k9q3d9dai3dg4jvhdhmxcpjzdf"))))
       (build-system gnu-build-system)
       (arguments
-       `(#:tests? #f ; no tests
+       `(#:tests? #f                    ; no tests
          #:phases
          (modify-phases %standard-phases
-           (delete 'configure)) ; no configure script
+           (delete 'configure))         ; no configure script
          #:make-flags (list (string-append "PREFIX="
                                            (assoc-ref %outputs "out")))))
       (inputs
@@ -2082,8 +2156,8 @@ shortcut syntax and completion options.")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "https://archives.eyrie.org/software/kerberos/" name "-"
-                    version ".tar.xz"))
+                    "https://archives.eyrie.org/software/kerberos/"
+                    "pam-krb5-" version ".tar.xz"))
               (sha256
                (base32
                 "1qjp8i1s9bz7g6kiqrkzzkxn5pfspa4sy53b6z40fqmdf9przdfb"))))
@@ -2129,11 +2203,12 @@ Kerberos and Heimdal and FAST is supported with recent MIT Kerberos.")
     (version "1.4.2")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/linux-sunxi/"
-                           "sunxi-tools/archive/v" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/linux-sunxi/sunxi-tools.git")
+             (commit (string-append "v" version))))
        (sha256
-        (base32 "08iqwj95qw2s7ilhrdi2lkbc8dx64zk5lzz1qk587jr0lla81x41"))
+        (base32 "04f3jqg8ww4jxsf9c6ddcdgy2xbhkyp0b3l5f1hvvbv94p81rjxd"))
        (modules '((guix build utils)))
        (snippet
         ;; Remove binaries contained in the tarball which are only for the
@@ -2141,7 +2216,7 @@ Kerberos and Heimdal and FAST is supported with recent MIT Kerberos.")
         '(begin
            (delete-file-recursively "bin")
            #t))
-       (file-name (string-append name "-" version ".tar.gz"))))
+       (file-name (git-file-name name version))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("cross-gcc" ,(cross-gcc "arm-linux-gnueabihf"
@@ -2190,15 +2265,15 @@ Kerberos and Heimdal and FAST is supported with recent MIT Kerberos.")
              #t))
          (replace 'build
            (lambda* (#:key make-flags #:allow-other-keys)
-             (zero? (apply system* "make" "tools" "misc" make-flags))))
+             (apply invoke "make" "tools" "misc" make-flags)))
          (add-after 'build 'build-armhf
            (lambda* (#:key make-flags #:allow-other-keys)
              (setenv "LIBRARY_PATH" #f)
-             (zero? (apply system* "make" "target-tools" make-flags))))
+             (apply invoke "make" "target-tools" make-flags)))
          (replace 'install
            (lambda* (#:key make-flags #:allow-other-keys)
-             (zero? (apply system* "make" "install-all" "install-misc"
-                           make-flags)))))))
+             (apply invoke "make" "install-all" "install-misc"
+                    make-flags))))))
     (home-page "https://github.com/linux-sunxi/sunxi-tools")
     (synopsis "Hardware management tools for Allwinner computers")
     (description "This package contains tools for Allwinner devices:
@@ -2224,16 +2299,16 @@ in order to be able to find it.
     (version "1.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/aureliojargas/sedsed/"
-                           "archive/v" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/aureliojargas/sedsed.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0139jkqvm8ipiwfj7k69ry2f9b1ffgpk79arpz4r7w9kf6h23bnh"))))
+        (base32 "0009lsjsxhqmgaklpwq15hhd94hpiy7r4va69yy0ig3mxi6zbg2z"))))
     (build-system python-build-system)
     (arguments
-     `(#:tests? #f ; No tests.
+     `(#:tests? #f                      ; no tests
        #:python ,python-2
        #:phases
        (modify-phases %standard-phases
@@ -2288,7 +2363,7 @@ buffers.")
               (method url-fetch)
               (uri (string-append "https://cgit.freedesktop.org/xorg/app/"
                                   "intel-gpu-tools/snapshot/"
-                                  name "-" version ".tar.gz"))
+                                  "igt-gpu-tools-" version ".tar.gz"))
               (sha256
                (base32
                 "0vzv2i4jfv2pkbqby5k3ap9pzidkmajwqmg3s7wnv8i1h33775iq"))))
@@ -2384,7 +2459,7 @@ tool for remote execution and deployment.")
 (define-public neofetch
   (package
     (name "neofetch")
-    (version "5.0.0")
+    (version "6.0.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2392,7 +2467,7 @@ tool for remote execution and deployment.")
                     (commit version)))
               (sha256
                (base32
-                "0yzyi2p0d8xp576lxyv5m9h60dl1d5dmrn40aad307872835b9rr"))))
+                "0j0r40llyry1sgc6p9wd7jrpydps2lnj4rwajjp37697g2bik89i"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; there are no tests
@@ -2418,7 +2493,7 @@ you are running, what theme or icon set you are using, etc.")
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/jarun/nnn/releases/download/v"
-                           version "/" name "-v" version ".tar.gz"))
+                           version "/nnn-v" version ".tar.gz"))
        (sha256
         (base32 "1d6z12y4rlg4dzhpm30irpq2ak8hjh5zykkp2n7vxnz5m4ki89zp"))))
     (build-system gnu-build-system)
@@ -2449,7 +2524,7 @@ make it a perfect utility on modern distros.")
 (define-public thermald
   (package
     (name "thermald")
-    (version "1.7.2")
+    (version "1.8")
     (source
      (origin
       (method git-fetch)
@@ -2458,22 +2533,15 @@ make it a perfect utility on modern distros.")
              (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
-       (base32
-        "1cs2pq8xvfnsvrhg2bxawk4kn3z1qmfrnpnhs178pvfbglzh15hc"))))
+       (base32 "1g1l7k8yxj8bl1ysdx8v6anv1s7xk9j072y44gwki70dy48n7j92"))
+      (patches
+       (search-patches "thermald-make-int-max32-visible.patch"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'bootstrap
-           (lambda _
-             (invoke "sh" "autogen.sh")
-             #t)))
-       #:configure-flags
+     `(#:configure-flags
        (let ((out      (assoc-ref %outputs "out")))
          (list (string-append "--sysconfdir="
                               out "/etc")
-               (string-append "--with-udev-dir="
-                              out "/lib/udev")
                (string-append "--with-dbus-sys-dir="
                               out "/etc/dbus-1/system.d")
                "--localstatedir=/var"))))
@@ -2497,14 +2565,15 @@ on systems running the Linux kernel.")
   (package
     (name "masscan")
     (version "1.0.5")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/robertdavidgraham/masscan"
-                                  "/archive/" version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0wxddsgyx27z45906icdhdbfsvfj8ij805208qpqjx46i0lnjs50"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/robertdavidgraham/masscan.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0q0c7bsf0pbl8napry1qyg0gl4pd8wn872h4mz9b56dx4rx90vqg"))))
     (build-system gnu-build-system)
     (inputs
      `(("libpcap" ,libpcap)))
@@ -2540,7 +2609,7 @@ application, collecting the information received.")
               (method url-fetch)
               (uri (string-append "https://github.com/jwilk/hungrycat/"
                                   "releases/download/" version "/"
-                                  name "-" version ".tar.gz"))
+                                  "hungrycat-" version ".tar.gz"))
               (sha256
                (base32
                 "03fc1zsrf99lvxa7b4ps6pbi43304wbxh1f6ci4q0vkal370yfwh"))))
@@ -2572,7 +2641,7 @@ late.")
               (method url-fetch)
               (uri (string-append
                     "https://github.com/LLNL/LaunchMON/releases/download/v"
-                    version "/" name "-v" version ".tar.gz"))
+                    version "/launchmon-v" version ".tar.gz"))
               (sha256
                (base32
                 "0fm3nd9mydm9v2bf7bh01dbgrfnpwkapxa3dsvy3x1z0rz61qc0x"))))
@@ -2630,20 +2699,21 @@ Python loading in HPC environments.")
   (let ((real-name "inxi"))
     (package
       (name "inxi-minimal")
-      (version "3.0.20-1")
+      (version "3.0.32-1")
       (source
        (origin
          (method git-fetch)
          (uri (git-reference
                (url "https://github.com/smxi/inxi")
                (commit version)))
+         (file-name (git-file-name real-name version))
          (sha256
-          (base32
-           "1k9148xnfznch1443niaa3w1kmsw4vp0xpwna6npgmi7zqg06ymy"))))
+          (base32 "171xdip2alkp3g0k0sanaavvdcz6d0wlldj9lgj11xsdbhaaknnv"))))
       (build-system trivial-build-system)
       (inputs
-       `(("bash" ,bash)
-         ("perl" ,perl)))
+       `(("bash" ,bash-minimal)
+         ("perl" ,perl)
+         ("procps" ,procps)))
       (native-inputs
        `(("gzip" ,gzip)))
       (arguments
@@ -2716,7 +2786,6 @@ support forum.  It runs with the @code{/exec} command in most IRC clients.")
        ("lm-sensors" ,lm-sensors)
        ("mesa-utils" ,mesa-utils)
        ("pciutils" ,pciutils)
-       ("procps" ,procps)
        ("tar" ,tar)
        ("tree" ,tree)
        ("util-linux" ,util-linux)       ; lsblk
@@ -2742,17 +2811,17 @@ support forum.  It runs with the @code{/exec} command in most IRC clients.")
 (define-public pscircle
   (package
     (name "pscircle")
-    (version "1.1.0")
+    (version "1.3.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://gitlab.com/mildlyparallel/pscircle/-/archive/v"
-             version "/pscircle-v" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.com/mildlyparallel/pscircle.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "1k757yf2bmgfrjd417l6kpcf83hlvi0z1791vz967mwcklrsb3fj"))))
+         "0qsif00dkqa8ky3vl2ycx5anx2yk62nrv47f5lrlqzclz91f00fx"))))
     (build-system meson-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -2845,3 +2914,114 @@ support forum.  It runs with the @code{/exec} command in most IRC clients.")
     (description "This package provides tools to manage clients of the
 Logitech Unifying Receiver.")
     (license license:gpl2)))
+
+(define-public lynis
+  (package
+    (name "lynis")
+    (version "2.7.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/CISOfy/lynis")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0dbbfk47dpxx7zpb98n4w3ls3z5di57qnr2nsgxjvp49gk9j3f6k"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Remove proprietary plugins. As of now, all plugins supplied with
+           ;; lynis are proprietary. In the future, if free plugins are
+           ;; provided, whitelist them from deletion.
+           (for-each delete-file (find-files "plugins"))
+           #t))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(;; For tests
+       ("lynis-sdk"
+        ,(origin
+           (method git-fetch)
+           (uri (git-reference
+                 (url "https://github.com/CISOfy/lynis-sdk")
+                 (commit "3310aef4f2b3dd97d166c96ad0253c89c4ad390d")))
+           (file-name (git-file-name "lynis-sdk" version))
+           (sha256
+            (base32
+             "0sqsrm5wal742yrwps8bqb8a8lxd93n4b93n3kkm1b30nbs25g7y"))))))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (substitute* "lynis"
+               (("/usr/share/lynis")
+                (string-append (assoc-ref outputs "out") "/share/lynis")))
+             (substitute* "include/functions"
+               (("/usr/local/etc/lynis")
+                (string-append (assoc-ref outputs "out") "/etc/lynis")))
+             #t))
+         (delete 'build)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (install-file "lynis" (string-append out "/bin/"))
+               (install-file "default.prf" (string-append out "/etc/lynis"))
+               (for-each
+                (lambda (dir)
+                  (copy-recursively dir (string-append out "/share/lynis/" dir)))
+                (list "db" "include" "plugins"))
+               (install-file "lynis.8" (string-append out "/share/man/man8"))
+               #t)))
+         (replace 'check
+           (lambda* (#:key inputs #:allow-other-keys)
+             (copy-recursively (assoc-ref inputs "lynis-sdk") "../lynis-sdk")
+             (setenv "LANG" "en_US.UTF-8")
+             (let ((lynis-dir (getcwd)))
+               (with-directory-excursion "../lynis-sdk"
+                 (substitute* "config"
+                   (("\\.\\./lynis") lynis-dir))
+                 (substitute* "unit-tests/tests-language-translations.sh"
+                   (("\\.\\./lynis") lynis-dir))
+                 (invoke "sh" "lynis-devkit" "run" "unit-tests"))))))))
+    (home-page "https://cisofy.com/lynis/")
+    (synopsis "Security auditing tool")
+    (description "Lynis is a security auditing tool.  It performs an in-depth
+security scan and runs on the system itself.  The primary goal is to test
+security defenses and provide tips for further system hardening.  It will also
+scan for general system information, vulnerable software packages, and
+possible configuration issues.")
+    (license license:gpl3+)))
+
+(define-public ngrep
+  (package
+    (name "ngrep")
+    (version "1.47")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/jpr5/ngrep/")
+             (commit (string-append "V" (string-replace-substring version "." "_")))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1x2fyd7wdqlj1r76ilal06cl2wmbz0ws6i3ys204sbjh1cj6dcl7"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("libpcap" ,libpcap)))
+    (arguments
+     `(#:tests? #f ;; No tests.
+       #:configure-flags (list (string-append "--with-pcap-includes="
+                                              (assoc-ref %build-inputs "libpcap")
+                                              "/include/pcap"))))
+    (home-page "https://github.com/jpr5/ngrep/")
+    (synopsis "Grep-like utility to search for network packets on an interface")
+    (description "@command{ngrep} is like GNU grep applied to the network
+layer.  It's a PCAP-based tool that allows you to specify an extended regular
+or hexadecimal expression to match against data payloads of packets.  It
+understands many kinds of protocols, including IPv4/6, TCP, UDP, ICMPv4/6,
+IGMP and Raw, across a wide variety of interface types, and understands BPF
+filter logic in the same fashion as more common packet sniffing tools, such as
+tcpdump and snoop.")
+    (license license:bsd-3)))