gnu: xtensor: Update to 0.20.5.
[jackhill/guix/guix.git] / gnu / packages / admin.scm
CommitLineData
233e7676 1;;; GNU Guix --- Functional package management for GNU
107b081e 2;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
340c7033 3;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
02843215 4;;; Copyright © 2014, 2015, 2016, 2018 Mark H Weaver <mhw@netris.org>
2468ca04 5;;; Copyright © 2014, 2015, 2016, 2017, 2018 Eric Bavier <bavier@member.fsf.org>
d0457553 6;;; Copyright © 2015, 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
15926aec 7;;; Copyright © 2015 Alex Sassmannshausen <alex.sassmannshausen@gmail.com>
8d801045 8;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
d7c64ad5 9;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
f1957fc1 10;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl>
d10fa5c7 11;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
a49bbaa6 12;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
1a0346f0 13;;; Copyright © 2016 Peter Feigl <peter.feigl@nexoid.at>
61402398 14;;; Copyright © 2016 John J. Foerch <jjfoerch@earthlink.net>
47956fa0 15;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
043eeda1 16;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
1b5b24c9
BS
17;;; Copyright © 2016 John Darrington <jmd@gnu.org>
18;;; Copyright © 2017 Ben Sturmfels <ben@sturm.com.au>
6e75ea48 19;;; Copyright © 2017 Ethan R. Jones <doubleplusgood23@gmail.com>
58989684 20;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org>
050e5756 21;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
710d889d 22;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
3ebf2c29 23;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
abde01f2 24;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
ce3fef9f 25;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
e60b3e14 26;;; Copyright © 2019 Brett Gilio <brettg@posteo.net>
1df895b0 27;;;
233e7676 28;;; This file is part of GNU Guix.
1df895b0 29;;;
233e7676 30;;; GNU Guix is free software; you can redistribute it and/or modify it
1df895b0
LC
31;;; under the terms of the GNU General Public License as published by
32;;; the Free Software Foundation; either version 3 of the License, or (at
33;;; your option) any later version.
34;;;
233e7676 35;;; GNU Guix is distributed in the hope that it will be useful, but
1df895b0
LC
36;;; WITHOUT ANY WARRANTY; without even the implied warranty of
37;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
38;;; GNU General Public License for more details.
39;;;
40;;; You should have received a copy of the GNU General Public License
233e7676 41;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
1df895b0 42
4aeea896 43(define-module (gnu packages admin)
f61e0e79 44 #:use-module ((guix licenses) #:prefix license:)
1df895b0 45 #:use-module (guix packages)
4fb7e0de 46 #:use-module (guix utils)
1df895b0 47 #:use-module (guix download)
aaff68ee 48 #:use-module (guix git-download)
fbc1a58f 49 #:use-module (guix build-system cmake)
2b6164f0 50 #:use-module (guix build-system emacs)
1df895b0 51 #:use-module (guix build-system gnu)
b19f3337 52 #:use-module (guix build-system meson)
d1ce1125 53 #:use-module (guix build-system perl)
4ecfbda7 54 #:use-module (guix build-system python)
c773aba8 55 #:use-module (guix build-system trivial)
59a43334 56 #:use-module (gnu packages)
c73d4c92 57 #:use-module (gnu packages base)
bbc94ed0 58 #:use-module (gnu packages bash)
ac257f12 59 #:use-module (gnu packages check)
3d7a157c 60 #:use-module (gnu packages cyrus-sasl)
bbc94ed0
PN
61 #:use-module (gnu packages dns)
62 #:use-module (gnu packages file)
9a9e72d5 63 #:use-module (gnu packages ncurses)
9927622f 64 #:use-module (gnu packages readline)
f15164e7 65 #:use-module (gnu packages linux)
d0457553 66 #:use-module (gnu packages lua)
f15164e7 67 #:use-module (gnu packages guile)
1dba6407 68 #:use-module (gnu packages gettext)
050e5756
MB
69 #:use-module (gnu packages imagemagick)
70 #:use-module (gnu packages inkscape)
d0457553 71 #:use-module (gnu packages pcre)
c73d4c92 72 #:use-module (gnu packages perl)
5ccde207 73 #:use-module (gnu packages perl-check)
87216303 74 #:use-module (gnu packages tcl)
f61e0e79 75 #:use-module (gnu packages compression)
faa6bdf8 76 #:use-module (gnu packages cross-base)
a7fd7b68 77 #:use-module (gnu packages tls)
61bdd0d8 78 #:use-module (gnu packages gnupg)
02c86a5e
LC
79 #:use-module (gnu packages bison)
80 #:use-module (gnu packages flex)
bbc94ed0 81 #:use-module (gnu packages gl)
02c86a5e 82 #:use-module (gnu packages glib)
3d7a157c 83 #:use-module (gnu packages openldap)
c1f73569 84 #:use-module (gnu packages mcrypt)
87216303 85 #:use-module (gnu packages pkg-config)
b36fcf95 86 #:use-module (gnu packages popt)
1a0346f0 87 #:use-module (gnu packages python)
cc6f4912 88 #:use-module (gnu packages python-crypto)
1b2f753d 89 #:use-module (gnu packages python-web)
44d10b1f 90 #:use-module (gnu packages python-xyz)
050e5756 91 #:use-module (gnu packages qt)
2468ca04 92 #:use-module (gnu packages terminals)
fccf2fe0 93 #:use-module (gnu packages texinfo)
e1485c7b 94 #:use-module (gnu packages groff)
42dc3af5 95 #:use-module (gnu packages pciutils)
d10fa5c7 96 #:use-module (gnu packages libunwind)
42dc3af5
MW
97 #:use-module (gnu packages libusb)
98 #:use-module (gnu packages libftdi)
c4492a16 99 #:use-module (gnu packages image)
da6c3749 100 #:use-module (gnu packages xorg)
d10fa5c7 101 #:use-module (gnu packages xdisorg)
e932d371 102 #:use-module (gnu packages man)
5ec8b02d 103 #:use-module (gnu packages autotools)
104 #:use-module (gnu packages gnome)
89e34644 105 #:use-module (gnu packages kerberos)
58989684 106 #:use-module (gnu packages gtk)
3ebf2c29
PAR
107 #:use-module (gnu packages xml)
108 #:use-module (gnu packages boost)
109 #:use-module (gnu packages elf)
bbc94ed0
PN
110 #:use-module (gnu packages mpi)
111 #:use-module (gnu packages web))
f15164e7 112
c1f73569
RW
113(define-public aide
114 (package
115 (name "aide")
2f805e97 116 (version "0.16.1")
737300be
TGR
117 (source
118 (origin
119 (method url-fetch)
120 (uri (string-append "https://github.com/aide/aide/releases/download/v"
121 version "/aide-" version ".tar.gz"))
122 (sha256
2f805e97 123 (base32 "1dqhc0c24wa4zid06pfy61k357yvzh28ij86bk9jf6hcqzn7qaqg"))))
c1f73569
RW
124 (build-system gnu-build-system)
125 (native-inputs
126 `(("bison" ,bison)
127 ("flex" ,flex)))
128 (inputs
129 `(("libgcrypt" ,libgcrypt)
130 ("libgpg-error" ,libgpg-error)
131 ("libmhash" ,libmhash)
7d9d521f 132 ("pcre:static" ,pcre "static")
b067ad3e 133 ("pcre" ,pcre)
7d9d521f 134 ("zlib:static" ,zlib "static")
c1f73569
RW
135 ("zlib" ,zlib)))
136 (synopsis "File and directory integrity checker")
137 (description
138 "AIDE (Advanced Intrusion Detection Environment) is a file and directory
139integrity checker. It creates a database from the regular expression rules
140that it finds from its configuration files. Once this database is initialized
141it can be used to verify the integrity of the files. It has several message
142digest algorithms that are used to check the integrity of files. All of the
143usual file attributes can be checked for inconsistencies.")
737300be 144 (home-page "https://aide.github.io/")
c1f73569
RW
145 (license license:gpl2+)))
146
4971d5d0
RJ
147(define-public progress
148 (package
149 (name "progress")
3116a4c5 150 (version "0.14")
4b6456ce
TGR
151 (source
152 (origin
153 (method git-fetch)
154 (uri (git-reference
155 (url "https://github.com/Xfennec/progress.git")
156 (commit (string-append "v" version))))
157 (sha256
158 (base32 "1lk2v4b767klib93an4g3f7z5qrv9kdk9jf7545vw1immc4kamrl"))
159 (file-name (git-file-name name version))))
4971d5d0 160 (build-system gnu-build-system)
eec9c4a7
TGR
161 (native-inputs
162 `(("pkg-config" ,pkg-config)
163 ("which" ,which)))
4971d5d0
RJ
164 (inputs
165 `(("ncurses" ,ncurses)))
166 (arguments
4b6456ce 167 `(#:tests? #f ; no test suite
eec9c4a7 168 #:make-flags (list "CC=gcc"
4971d5d0
RJ
169 (string-append "PREFIX=" (assoc-ref %outputs "out")))
170 #:phases
171 (modify-phases %standard-phases
4b6456ce 172 (delete 'configure)))) ; no configure script
4971d5d0
RJ
173 (home-page "https://github.com/Xfennec/progress")
174 (synopsis "Program to view the progress of the coreutils commands")
175 (description "A program that looks for coreutils basic commands (cp, mv,
176dd, tar, gzip/gunzip, cat, etc.) currently running on your system and displays
177the percentage of copied data. It can also show estimated time and throughput,
178and provides a \"top-like\" mode (monitoring).")
179 (license license:gpl3+)))
180
e932d371 181(define-public shepherd
133056bd
LC
182 (package
183 (name "shepherd")
3b8699f9 184 (version "0.6.1")
133056bd
LC
185 (source (origin
186 (method url-fetch)
9fb1ca08 187 (uri (string-append "mirror://gnu/shepherd/shepherd-"
133056bd
LC
188 version ".tar.gz"))
189 (sha256
190 (base32
3b8699f9 191 "1xn6mb5bh8bpfgdrh09ja31jk0ln7bmxbbf0vjcqxkkixs2wl6sk"))))
133056bd
LC
192 (build-system gnu-build-system)
193 (arguments
194 '(#:configure-flags '("--localstatedir=/var")))
425ab478
LC
195 (native-inputs
196 `(("pkg-config" ,pkg-config)
197
198 ;; This is the Guile we use as a cross-compiler...
c8eb2b8c 199 ("guile" ,guile-2.2)))
425ab478
LC
200 (inputs
201 ;; ... and this is the one that appears in shebangs when cross-compiling.
bfb06e58
LC
202 `(("guile" ,guile-2.2)
203
204 ;; The 'shepherd' command uses Readline when used interactively. It's
205 ;; an unusual use case though, so we don't propagate it.
206 ("guile-readline" ,guile-readline)))
133056bd
LC
207 (synopsis "System service manager")
208 (description
209 "The GNU Shepherd is a daemon-managing daemon, meaning that it supervises
210the execution of system services, replacing similar functionality found in
211typical init systems. It provides dependency-handling through a convenient
212interface and is based on GNU Guile.")
213 (license license:gpl3+)
9fb1ca08 214 (home-page "https://www.gnu.org/software/shepherd/")))
e932d371 215
bf949323
CB
216(define-public cloud-utils
217 (package
218 (name "cloud-utils")
219 (version "0.31")
220 (source
221 (origin
222 (method url-fetch)
223 (uri (string-append
224 "https://launchpad.net/cloud-utils/trunk/"
225 version "/+download/cloud-utils-" version ".tar.gz"))
226 (sha256
227 (base32
228 "07fl3dlqwdzw4xx7mcxhpkks6dnmaxha80zgs9f6wmibgzni8z0r"))))
229 (build-system gnu-build-system)
230 (arguments
231 '(#:make-flags
232 (let ((out (assoc-ref %outputs "out")))
233 (list (string-append "BINDIR=" out "/bin")
234 (string-append "MANDIR=" out "/share/man/man1")
235 (string-append "DOCDIR=" out "/share/doc")))
236 #:phases
237 (modify-phases %standard-phases
238 (delete 'configure)
239 (delete 'check)
240 (add-after 'install 'wrap
241 (lambda* (#:key outputs inputs #:allow-other-keys)
242 (let ((growpart (string-append (assoc-ref outputs "out")
243 "/bin/growpart")))
244 (wrap-program growpart
245 `("PATH" ":" prefix (,(dirname (which "sfdisk"))
246 ,(dirname (which "readlink"))))))
247 #t)))))
248 (inputs
249 `(("python" ,python)
250 ("util-linux" ,util-linux))) ; contains sfdisk for growpart
251 (home-page "https://launchpad.net/cloud-utils")
252 (synopsis "Set of utilities for cloud computing environments")
253 (description
254 "This package contains a set of utilities for cloud computing
255environments:
256
257@itemize @bullet
258@item @command{cloud-localds} Create a disk for cloud-init to utilize nocloud
259@item @command{cloud-publish-image} Wrapper for cloud image publishing
260@item @command{cloud-publish-tarball} Wrapper for publishing cloud tarballs
261@item @command{cloud-publish-ubuntu} Import a Ubuntu cloud image
262@item @command{ec2metadata} Query and display @acronym{EC2,Amazon Elastic
263 Compute Cloud} metadata
264@item @command{growpart} Grow a partition to fill the device
265@item @command{mount-image-callback} Mount a file and run a command
266@item @command{resize-part-image} Resize a partition image to a new size
267@item @command{ubuntu-cloudimg-query} Get the latest Ubuntu
268 @acronym{AMI,Amazon Machine Image}
269@item @command{ubuntu-ec2-run} Run a @acronym{EC2,Amazon Elastic Compute
270 Cloud} instance using Ubuntu
271@item @command{vcs-run} Obtain a repository, and run a command
272@item @command{write-mime-multipart} Handle multipart
273 @acronym{MIME,Multipurpose Internet Mail Extensions} messages
274@end itemize")
275 (license license:gpl3)))
276
db341bfa
CB
277(define-public daemontools
278 (package
279 (name "daemontools")
280 (version "0.76")
281 (source (origin
282 (method url-fetch)
283 (uri (string-append
213114a7
TGR
284 "https://cr.yp.to/daemontools/"
285 "daemontools-" version ".tar.gz"))
db341bfa
CB
286 (sha256
287 (base32
288 "07scvw88faxkscxi91031pjkpccql6wspk4yrlnsbrrb5c0kamd5"))))
289 (build-system gnu-build-system)
290 (arguments
291 `(#:tests? #f ;; No tests as far as I can tell.
292 #:phases
293 (modify-phases %standard-phases
294 (add-after 'unpack 'chdir
295 (lambda _
213114a7 296 (chdir ,(string-append "daemontools-" version))
cb8ba848 297 #t))
db341bfa
CB
298 (delete 'configure)
299 (add-before 'build 'patch
300 (lambda _
301 (substitute* "src/error.h"
302 (("extern int errno;")
cb8ba848
MW
303 "#include <errno.h>"))
304 #t))
db341bfa
CB
305 (replace 'build
306 (lambda _
307 (invoke "package/compile")))
308 (replace 'install
309 (lambda* (#:key outputs #:allow-other-keys)
310 (let* ((out (assoc-ref outputs "out"))
311 (bin (string-append out "/bin")))
312 (for-each (lambda (file)
313 (install-file file bin))
cb8ba848
MW
314 (find-files "command")))
315 #t)))))
db341bfa
CB
316 (synopsis "Tools for managing UNIX style services")
317 (description
318 "@code{daemontools} is a collection of tools for managing UNIX
319services.")
320 (license license:public-domain)
321 (home-page "https://cr.yp.to/daemontools.html")))
322
fbc1a58f
CR
323(define-public dfc
324 (package
325 (name "dfc")
48167ccd 326 (version "3.1.1")
fbc1a58f
CR
327 (source
328 (origin
329 (method url-fetch)
330 (uri (string-append
eeb8b0e6 331 "https://projects.gw-computing.net/attachments/download/615/dfc-"
fbc1a58f
CR
332 version ".tar.gz"))
333 (sha256
334 (base32
48167ccd 335 "0m1fd7l85ckb7bq4c5c3g257bkjglm8gq7x42pkmpp87fkknc94n"))))
fbc1a58f
CR
336 (build-system cmake-build-system)
337 (arguments '(#:tests? #f)) ; There are no tests.
b94a6ca0 338 (native-inputs `(("gettext" ,gettext-minimal)))
eeb8b0e6 339 (home-page "https://projects.gw-computing.net/projects/dfc")
fbc1a58f
CR
340 (synopsis "Display file system space usage using graphs and colors")
341 (description
342 "dfc (df color) is a modern version of df. It uses colors, draws pretty
343graphs and can export its output to different formats.")
f61e0e79 344 (license license:bsd-3)))
fbc1a58f 345
340c7033
CR
346(define-public htop
347 (package
611ee0c9
MB
348 (name "htop")
349 (version "2.2.0")
350 (source (origin
351 (method url-fetch)
352 (uri (string-append "http://hisham.hm/htop/releases/"
353 version "/htop-" version ".tar.gz"))
354 (sha256
355 (base32
356 "0mrwpb3cpn3ai7ar33m31yklj64c3pp576vh1naqff6f21pq5mnr"))))
357 (build-system gnu-build-system)
358 (inputs
359 `(("ncurses" ,ncurses)))
360 (native-inputs
361 `(("python" ,python-wrapper))) ;for scripts/MakeHeader.py
362 (home-page "https://hisham.hm/htop/")
363 (synopsis "Interactive process viewer")
364 (description
365 "This is htop, an interactive process viewer. It is a text-mode
340c7033 366application (for console or X terminals) and requires ncurses.")
611ee0c9 367 (license license:gpl2)))
340c7033 368
1df895b0
LC
369(define-public pies
370 (package
371 (name "pies")
a9764b7d 372 (version "1.3")
1df895b0
LC
373 (source
374 (origin
a9764b7d
LC
375 (method url-fetch)
376 (uri (string-append "mirror://gnu/pies/pies-"
377 version ".tar.bz2"))
378 (sha256
379 (base32
380 "12r7rjjyibjdj08dvwbp0iflfpzl4s0zhn6cr6zj3hwf9gbzgl1g"))))
1df895b0 381 (build-system gnu-build-system)
a9764b7d
LC
382 (arguments
383 '(#:phases (modify-phases %standard-phases
384 (add-before 'build 'patch-/bin/sh
385 (lambda* (#:key inputs #:allow-other-keys)
386 ;; Use the right shell when executing user-provided
387 ;; shell commands.
388 (let ((bash (assoc-ref inputs "bash")))
389 (substitute* "src/progman.c"
390 (("\"/bin/sh\"")
391 (string-append "\"" bash "/bin/sh\"")))
392 #t))))))
6fd52309 393 (home-page "https://www.gnu.org/software/pies/")
f50d2669 394 (synopsis "Program invocation and execution supervisor")
1df895b0 395 (description
79c311b8 396 "GNU pies is a program that supervises the invocation and execution of
a22dc0c4
LC
397other programs. It reads the list of programs to be started from its
398configuration file, executes them, and then monitors their status,
399re-executing them as necessary.")
f61e0e79 400 (license license:gpl3+)))
1df895b0
LC
401
402(define-public inetutils
403 (package
404 (name "inetutils")
8b1c8e4e 405 (version "1.9.4")
01eafd38
LC
406 (source (origin
407 (method url-fetch)
408 (uri (string-append "mirror://gnu/inetutils/inetutils-"
409 version ".tar.gz"))
410 (sha256
411 (base32
8b1c8e4e 412 "05n65k4ixl85dc6rxc51b1b732gnmm8xnqi424dy9f1nz7ppb3xy"))))
1df895b0 413 (build-system gnu-build-system)
483188b7 414 (arguments
e4015e57
LC
415 `(#:configure-flags '("--localstatedir=/var"
416
417 ;; Make sure 'PATH_PROCNET_DEV' gets defined when
418 ;; cross-compiling (by default it does not.)
419 ,@(if (%current-target-system)
420 '("--with-path-procnet-dev=/proc/net/dev")
421 '()))
ed6a21b4
MB
422 ;; On some systems, 'libls.sh' may fail with an error such as:
423 ;; "Failed to tell switch -a apart from -A".
424 #:parallel-tests? #f))
9927622f 425 (inputs `(("ncurses" ,ncurses)
6f5d28f9
MC
426 ("readline" ,readline))) ;for 'ftp'
427 (native-inputs `(("netstat" ,net-tools))) ;for tests
6fd52309 428 (home-page "https://www.gnu.org/software/inetutils/")
f50d2669 429 (synopsis "Basic networking utilities")
1df895b0 430 (description
a22dc0c4 431 "Inetutils is a collection of common network programs, such as an ftp
e048de60
LF
432client and server, a telnet client and server, an rsh client and server, and
433hostname.")
f61e0e79 434 (license license:gpl3+)))
9a9e72d5
LC
435
436(define-public shadow
437 (package
438 (name "shadow")
2e402618 439 (version "4.6")
9a9e72d5 440 (source (origin
ca2a55d4
SB
441 (method url-fetch)
442 (uri (string-append
4153ef23 443 "https://github.com/shadow-maint/shadow/releases/"
444 "download/" version "/shadow-" version ".tar.xz"))
ca2a55d4
SB
445 (sha256
446 (base32
2e402618 447 "10smy01km2bqjjvsd2jz17zvrxbzj89qczyb1amk38j28bcci609"))))
9a9e72d5
LC
448 (build-system gnu-build-system)
449 (arguments
ce6223e6 450 `(;; Assume System V `setpgrp (void)', which is the default on GNU
9a9e72d5 451 ;; variants (`AC_FUNC_SETPGRP' is not cross-compilation capable.)
52701a3d 452 #:configure-flags
453 '("--with-libpam" "ac_cv_func_setpgrp_void=yes")
9a9e72d5 454
52701a3d 455 #:phases
456 (modify-phases %standard-phases
457 (add-before 'build 'set-nscd-file-name
458 (lambda* (#:key inputs #:allow-other-keys)
459 ;; Use the right file name for nscd.
ce6223e6
LC
460 (let ((libc (assoc-ref inputs
461 ,(if (%current-target-system)
462 "cross-libc"
463 "libc"))))
52701a3d 464 (substitute* "lib/nscd.c"
465 (("/usr/sbin/nscd")
acfa777e
MW
466 (string-append libc "/sbin/nscd")))
467 #t)))
52701a3d 468 (add-after 'install 'remove-groups
469 (lambda* (#:key outputs #:allow-other-keys)
470 ;; Remove `groups', which is already provided by Coreutils.
471 (let* ((out (assoc-ref outputs "out"))
472 (bin (string-append out "/bin"))
473 (man (string-append out "/share/man")))
474 (delete-file (string-append bin "/groups"))
475 (for-each delete-file (find-files man "^groups\\."))
476 #t))))))
9a9e72d5 477
5dfbd769
LC
478 (inputs (if (string-contains (or (%current-target-system)
479 (%current-system))
480 "-linux")
481 `(("linux-pam" ,linux-pam))
482 '()))
9a9e72d5
LC
483 (home-page "http://pkg-shadow.alioth.debian.org/")
484 (synopsis "Authentication-related tools such as passwd, su, and login")
485 (description
486 "Shadow provides a number of authentication-related tools, including:
487login, passwd, su, groupadd, and useradd.")
488
489 ;; The `vipw' program is GPLv2+.
490 ;; libmisc/salt.c is public domain.
f61e0e79 491 (license license:bsd-3)))
1e151896
LC
492
493(define-public mingetty
494 (package
495 (name "mingetty")
496 (version "1.08")
497 (source (origin
498 (method url-fetch)
de67e922
LF
499 (uri (string-append "mirror://sourceforge/mingetty/mingetty/"
500 version "/mingetty-" version ".tar.gz"))
1e151896
LC
501 (sha256
502 (base32
503 "05yxrp44ky2kg6qknk1ih0kvwkgbn9fbz77r3vci7agslh5wjm8g"))))
504 (build-system gnu-build-system)
505 (arguments
dc1d3cde
KK
506 `(#:phases
507 (modify-phases %standard-phases
508 (replace 'configure
509 (lambda* (#:key inputs outputs #:allow-other-keys)
510 (let* ((out (assoc-ref outputs "out"))
511 (man8 (string-append out "/share/man/man8"))
512 (sbin (string-append out "/sbin"))
513 (shadow (assoc-ref inputs "shadow"))
514 (login (string-append shadow "/bin/login")))
515 (substitute* "Makefile"
516 (("^SBINDIR.*")
517 (string-append "SBINDIR = " out
518 "/sbin\n"))
519 (("^MANDIR.*")
520 (string-append "MANDIR = " out
521 "/share/man/man8\n")))
522
523 ;; Pick the right 'login' by default.
524 (substitute* "mingetty.c"
525 (("\"/bin/login\"")
526 (string-append "\"" login "\"")))
527
528 (mkdir-p sbin)
529 (mkdir-p man8))
530 #t)))
1e151896
LC
531 #:tests? #f)) ; no tests
532 (inputs `(("shadow" ,shadow)))
533
3b3b60d0 534 (home-page "https://sourceforge.net/projects/mingetty")
1e151896
LC
535 (synopsis "Getty for the text console")
536 (description
537 "Small console getty that is started on the Linux text console,
36a4366d
EF
538asks for a login name and then transfers over to @code{login}. It is extended
539to allow automatic login and starting any app.")
f61e0e79 540 (license license:gpl2+)))
c773aba8
LC
541
542(define-public net-base
543 (package
544 (name "net-base")
db719df7 545 (version "5.3")
c773aba8
LC
546 (source (origin
547 (method url-fetch)
548 (uri (string-append
34af3684 549 "mirror://debian/pool/main/n/netbase/netbase_"
db719df7 550 version ".tar.xz"))
c773aba8
LC
551 (sha256
552 (base32
db719df7 553 "12xqjwg3p4rzmmh2iib6sigm9l29y3dgk74mmnw64k84jnbwdxl1"))))
c773aba8
LC
554 (build-system trivial-build-system)
555 (arguments
556 `(#:modules ((guix build utils))
557 #:builder (begin
558 (use-modules (guix build utils)
559 (srfi srfi-26))
560
561 (let* ((source (assoc-ref %build-inputs "source"))
562 (tar (assoc-ref %build-inputs "tar"))
db719df7 563 (xz (assoc-ref %build-inputs "xz"))
c773aba8
LC
564 (output (assoc-ref %outputs "out"))
565 (etc (string-append output "/etc")))
db719df7 566 (setenv "PATH" (string-append xz "/bin"))
e3cfef22
MW
567 (invoke (string-append tar "/bin/tar") "xvf"
568 source)
c773aba8
LC
569 (chdir ,(string-append "netbase-" version))
570 (mkdir-p etc)
571 (for-each copy-file
572 '("etc-services" "etc-protocols" "etc-rpc")
573 (map (cut string-append etc "/" <>)
574 '("services" "protocols" "rpc")))
575 #t))))
576 (native-inputs `(("tar" ,tar)
f61e0e79 577 ("xz" ,xz)))
c773aba8
LC
578 (synopsis "IANA protocol, port, and RPC number assignments")
579 (description
580 "This package provides the /etc/services, /etc/protocols, and /etc/rpc
581files, which contain information about the IANA-assigned port, protocol, and
e881752c 582ONC RPC numbers.")
eeb8b0e6 583 (home-page "https://packages.debian.org/sid/netbase")
f61e0e79 584 (license license:gpl2)))
94c4a58a
LC
585
586(define-public netcat
587 (package
588 (name "netcat")
589 (version "0.7.1")
590 (source (origin
591 (method url-fetch)
de67e922
LF
592 (uri (string-append "mirror://sourceforge/netcat/netcat/" version
593 "/netcat-" version ".tar.bz2"))
94c4a58a
LC
594 (sha256
595 (base32
596 "1frjcdkhkpzk0f84hx6hmw5l0ynpmji8vcbaxg8h5k2svyxz0nmm"))))
597 (build-system gnu-build-system)
0e4e89c2
MW
598 (arguments
599 `(#:configure-flags
600 ;; By default, man and info pages are put in PREFIX/{man,info},
601 ;; but we want them in PREFIX/share/{man,info}.
602 (let ((out (assoc-ref %outputs "out")))
603 (list (string-append "--mandir=" out "/share/man")
604 (string-append "--infodir=" out "/share/info")))))
94c4a58a
LC
605 (home-page "http://netcat.sourceforge.net")
606 (synopsis "Read and write data over TCP/IP")
607 (description
608 "Netcat is a featured networking utility which reads and writes data
609across network connections, using the TCP/IP protocol. It is designed to be a
610reliable \"back-end\" tool that can be used directly or easily driven by other
35b9e423 611programs and scripts. At the same time, it is a feature-rich network debugging
94c4a58a
LC
612and exploration tool, since it can create almost any kind of connection you
613would need and has several interesting built-in capabilities.")
f61e0e79 614 (license license:gpl2+)))
d038cac1 615
8d0edc82
OP
616(define-public sipcalc
617 (package
618 (name "sipcalc")
619 (version "1.1.6")
620 (source
621 (origin
622 (method url-fetch)
623 (uri (string-append "http://www.routemeister.net/projects"
624 "/sipcalc/files/sipcalc" "-" version ".tar.gz"))
625 (sha256
626 (base32
627 "0mv3wndj4z2bsshh2k8d5sy3j8wxzgf8mzmmkvj1k8gpcz37dm6g"))))
628 (build-system gnu-build-system)
629 (home-page "http://www.routemeister.net/projects/sipcalc/")
630 (synopsis "Command-line IP subnet calculator")
631 (description
632 "Sipcalc is an advanced command-line IP subnet calculator. It can take
633multiple forms of input (IPv4/IPv6/interface/hostname) and output a multitude
634of information about a given subnet.
635
636Features include:
637
638@itemize @bullet
639@item IPv4
640@itemize
641@item Retrieving of address information from interfaces.
642@item Classfull and CIDR output.
643@item Multiple address and netmask input and output formats (dotted quad, hex,
644number of bits).
645@item Output of broadcast address, network class, Cisco wildcard,
646hosts/range, network range.
647@item The ability to split a network based on a smaller netmask, now also with
648recursive runs on the generated subnets. (also IPv6)
649@end itemize
650@item IPv6
651@itemize
652@item Compressed and expanded input and output addresses.
653@item Standard IPv6 network output.
654@item v4 in v6 output.
655@item Reverse DNS address generation.
656@end itemize
657@end itemize\n")
658 (license license:bsd-3)))
659
d038cac1
LC
660(define-public alive
661 (package
662 (name "alive")
663 (version "2.0.2")
664 (source (origin
665 (method url-fetch)
666 (uri (string-append "mirror://gnu/alive/alive-"
667 version ".tar.xz"))
668 (sha256
669 (base32
670 "1vrzg51ai68x9yld7vbgl58sxaw5qpx8rbakwcxn4cqq6vpxj38j"))))
671 (build-system gnu-build-system)
672 (arguments '(#:configure-flags '("alive_cv_nice_ping=yes")))
673 (inputs `(("guile" ,guile-2.0)
674 ("inetutils" ,inetutils)))
6fd52309 675 (home-page "https://www.gnu.org/software/alive/")
d038cac1
LC
676 (synopsis "Autologin and keep-alive daemon")
677 (description
678 "GNU Alive sends periodic pings to a server, generally to keep a
679connection alive.")
f61e0e79 680 (license license:gpl3+)))
c73d4c92
LC
681
682(define-public isc-dhcp
6548b1e1 683 (let* ((bind-major-version "9")
4e2432d1 684 (bind-minor-version "11")
8198b3db
LF
685 (bind-patch-version "4")
686 (bind-release-type "-P") ; for patch release, use "-P"
2a1267d3 687 (bind-release-version "2") ; for patch release, e.g. "6"
6548b1e1
MW
688 (bind-version (string-append bind-major-version
689 "."
690 bind-minor-version
691 "."
692 bind-patch-version
693 bind-release-type
694 bind-release-version)))
695 (package
696 (name "isc-dhcp")
4e2432d1 697 (version "4.4.1")
6548b1e1
MW
698 (source (origin
699 (method url-fetch)
8198b3db 700 (uri (string-append "https://ftp.isc.org/isc/dhcp/"
6548b1e1
MW
701 version "/dhcp-" version ".tar.gz"))
702 (sha256
703 (base32
4e2432d1 704 "025nfqx4zwdgv4b3rkw26ihcj312vir08jk6yi57ndmb4a4m08ia"))))
6548b1e1
MW
705 (build-system gnu-build-system)
706 (arguments
e54465ff
MW
707 `(#:parallel-build? #f
708 #:phases
6548b1e1
MW
709 (modify-phases %standard-phases
710 (add-after 'unpack 'replace-bundled-bind
711 (lambda* (#:key inputs #:allow-other-keys)
712 (delete-file "bind/bind.tar.gz")
713 (copy-file (assoc-ref inputs "bind-source-tarball")
714 "bind/bind.tar.gz")
715 (chmod "bind/bind.tar.gz" #o644)
716 (substitute* "bind/version.tmp"
717 (("^MAJORVER=.*")
718 (format #f "MAJORVER=~a\n" ,bind-major-version))
719 (("^MINORVER=.*")
720 (format #f "MINORVER=~a\n" ,bind-minor-version))
721 (("^PATCHVER=.*")
722 (format #f "PATCHVER=~a\n" ,bind-patch-version))
723 (("^RELEASETYPE=.*")
724 (format #f "RELEASETYPE=~a\n" ,bind-release-type))
725 (("^RELEASEVER=.*")
726 (format #f "RELEASEVER=~a\n" ,bind-release-version)))
727 #t))
728 (add-after 'configure 'post-configure
729 (lambda* (#:key outputs #:allow-other-keys)
730 ;; Point to the right client script, which will be
731 ;; installed in a later phase.
732 (substitute* "includes/dhcpd.h"
733 (("#define[[:blank:]]+_PATH_DHCLIENT_SCRIPT.*")
734 (let ((out (assoc-ref outputs "out")))
735 (string-append "#define _PATH_DHCLIENT_SCRIPT \""
736 out "/libexec/dhclient-script"
737 "\"\n"))))
c73d4c92 738
6548b1e1
MW
739 ;; During the 'build' phase, 'bind.tar.gz' is extracted, so
740 ;; we must patch shebangs in there and make sure the right
741 ;; shell is used.
742 (with-directory-excursion "bind"
743 (substitute* "Makefile"
744 (("\\./configure")
745 (let ((sh (which "sh")))
746 (string-append "./configure CONFIG_SHELL="
747 sh " SHELL=" sh))))
c73d4c92 748
6548b1e1 749 (let ((bind-directory (string-append "bind-" ,bind-version)))
d6acc9f8 750 (invoke "tar" "xf" "bind.tar.gz")
6548b1e1
MW
751 (for-each patch-shebang
752 (find-files bind-directory ".*"))
d6acc9f8
MW
753 (invoke "tar" "cf" "bind.tar.gz"
754 bind-directory
755 ;; avoid non-determinism in the archive
756 "--sort=name"
757 "--mtime=@0"
758 "--owner=root:0"
759 "--group=root:0")))))
6548b1e1
MW
760 (add-after 'install 'post-install
761 (lambda* (#:key inputs outputs #:allow-other-keys)
762 ;; Install the dhclient script for GNU/Linux and make sure
763 ;; if finds all the programs it needs.
764 (let* ((out (assoc-ref outputs "out"))
765 (libexec (string-append out "/libexec"))
766 (coreutils (assoc-ref inputs "coreutils"))
767 (inetutils (assoc-ref inputs "inetutils"))
768 (net-tools (assoc-ref inputs "net-tools"))
769 (sed (assoc-ref inputs "sed")))
770 (substitute* "client/scripts/linux"
771 (("/sbin/ip")
772 (string-append (assoc-ref inputs "iproute")
773 "/sbin/ip")))
c73d4c92 774
6548b1e1
MW
775 (mkdir-p libexec)
776 (copy-file "client/scripts/linux"
777 (string-append libexec "/dhclient-script"))
c73d4c92 778
6548b1e1
MW
779 (wrap-program
780 (string-append libexec "/dhclient-script")
781 `("PATH" ":" prefix
782 ,(map (lambda (dir)
783 (string-append dir "/bin:"
784 dir "/sbin"))
d6acc9f8
MW
785 (list inetutils net-tools coreutils sed))))
786 #t))))))
c73d4c92 787
6548b1e1 788 (native-inputs `(("perl" ,perl)))
c73d4c92 789
6548b1e1
MW
790 (inputs `(("inetutils" ,inetutils)
791 ("net-tools" ,net-tools)
792 ("iproute" ,iproute)
dc343935 793
6548b1e1
MW
794 ;; XXX isc-dhcp bundles a copy of bind that has security
795 ;; flaws, so we use a newer version.
796 ("bind-source-tarball"
797 ,(origin
798 (method url-fetch)
8198b3db 799 (uri (string-append "https://ftp.isc.org/isc/bind9/"
6548b1e1
MW
800 bind-version
801 "/bind-" bind-version ".tar.gz"))
802 (sha256
803 (base32
2a1267d3 804 "04fq17zksd2b3w6w6padps5n7b6s2lasxpksbhl4378h56vgfnm8"))))
c73d4c92 805
6548b1e1
MW
806 ;; When cross-compiling, we need the cross Coreutils and sed.
807 ;; Otherwise just use those from %FINAL-INPUTS.
808 ,@(if (%current-target-system)
809 `(("coreutils" ,coreutils)
810 ("sed" ,sed))
811 '())))
812
8198b3db 813 (home-page "https://www.isc.org/products/DHCP/")
6548b1e1
MW
814 (synopsis "Dynamic Host Configuration Protocol (DHCP) tools")
815 (description
816 "ISC's Dynamic Host Configuration Protocol (DHCP) distribution provides a
c73d4c92
LC
817reference implementation of all aspects of DHCP, through a suite of DHCP
818tools: server, client, and relay agent.")
4e2432d1 819 (license license:mpl2.0)
159a5e01 820 (properties '((cpe-name . "dhcp"))))))
02c86a5e
LC
821
822(define-public libpcap
823 (package
824 (name "libpcap")
24dd949c 825 (version "1.9.0")
02c86a5e
LC
826 (source (origin
827 (method url-fetch)
eeb8b0e6 828 (uri (string-append "https://www.tcpdump.org/release/libpcap-"
02c86a5e
LC
829 version ".tar.gz"))
830 (sha256
831 (base32
24dd949c 832 "06bhydl4vr4z9c3vahl76f2j96z1fbrcl7wwismgs4sris08inrf"))))
02c86a5e 833 (build-system gnu-build-system)
24dd949c
TGR
834 (native-inputs
835 `(("bison" ,bison)
836 ("flex" ,flex)))
837 (arguments
838 ;; There are some tests in testprogs/, but no automated test suite.
839 '(#:tests? #f))
eeb8b0e6 840 (home-page "https://www.tcpdump.org")
02c86a5e
LC
841 (synopsis "Network packet capture library")
842 (description
843 "libpcap is an interface for user-level packet capture. It provides a
844portable framework for low-level network monitoring. Applications include
845network statistics collection, security monitoring, network debugging, etc.")
24dd949c
TGR
846 (license (list license:bsd-4 ; fad-*.c and several other source files
847 license:bsd-3 ; pcap/, sockutils.* & others
848 license:bsd-2)))) ; the rest
02c86a5e 849
1da34f5a
LC
850(define-public tcpdump
851 (package
852 (name "tcpdump")
81635ad0 853 (version "4.9.2")
1da34f5a
LC
854 (source (origin
855 (method url-fetch)
eeb8b0e6 856 (uri (string-append "https://www.tcpdump.org/release/tcpdump-"
73a2ef36 857 version ".tar.gz"))
1da34f5a
LC
858 (sha256
859 (base32
81635ad0 860 "0ygy0layzqaj838r5xd613iraz09wlfgpyh7pc6cwclql8v3b2vr"))))
1da34f5a 861 (build-system gnu-build-system)
10db1e6c 862 (inputs `(("libpcap" ,libpcap)
cc2b77df 863 ("openssl" ,openssl)))
1da34f5a 864 (native-inputs `(("perl" ,perl))) ; for tests
eeb8b0e6 865 (home-page "https://www.tcpdump.org/")
1da34f5a
LC
866 (synopsis "Network packet analyzer")
867 (description
868 "Tcpdump is a command-line tool to analyze network traffic passing
869through the network interface controller.")
f61e0e79 870 (license license:bsd-3)))
1da34f5a 871
02c86a5e
LC
872(define-public jnettop
873 (package
874 (name "jnettop")
875 (version "0.13.0")
876 (source (origin
877 (method url-fetch)
878 (uri (string-append "http://jnettop.kubs.info/dist/jnettop-"
879 version ".tar.gz"))
880 (sha256
881 (base32
882 "1855np7c4b0bqzhf1l1dyzxb90fpnvrirdisajhci5am6als31z9"))))
883 (build-system gnu-build-system)
884 (native-inputs
885 `(("pkg-config" ,pkg-config)))
886 (inputs
887 `(("glib" ,glib)
888 ("ncurses" ,ncurses)
889 ("libpcap" ,libpcap)))
890 (home-page "http://jnettop.kubs.info/")
891 (synopsis "Visualize network traffic by bandwidth use")
892 (description
893 "Jnettop is a traffic visualiser, which captures traffic going
894through the host it is running from and displays streams sorted
895by bandwidth they use.")
f61e0e79 896 (license license:gpl2+)))
87216303
EB
897
898(define-public clusterssh
899 (package
900 (name "clusterssh")
c5829179 901 (version "4.13.2")
87216303
EB
902 (source (origin
903 (method url-fetch)
904 (uri (string-append "mirror://sourceforge/clusterssh/"
c5829179
KK
905 "2.%20ClusterSSH%20Series%204/"
906 "App-ClusterSSH-v" version ".tar.gz"))
87216303
EB
907 (sha256
908 (base32
c5829179
KK
909 "0rmk2p3f2wz1h092anidjclh212rv3gxyk0c641qk3frlrjnw6mp"))))
910 (build-system perl-build-system)
911 (native-inputs
912 `(("perl-cpan-changes" ,perl-cpan-changes)
913 ("perl-file-slurp" ,perl-file-slurp)
914 ("perl-file-which" ,perl-file-which)
915 ("perl-module-build" ,perl-module-build)
916 ("perl-readonly" ,perl-readonly)
917 ("perl-test-differences" ,perl-test-differences)
918 ("perl-test-distmanifest" ,perl-test-distmanifest)
919 ("perl-test-perltidy" ,perl-test-perltidy)
920 ("perl-test-pod" ,perl-test-pod)
921 ("perl-test-pod-coverage" ,perl-test-pod-coverage)
922 ("perl-test-trap" ,perl-test-trap)
923 ("perltidy" ,perltidy)))
924 (propagated-inputs
925 `(("xterm" ,xterm)
926 ("perl-exception-class" ,perl-exception-class)
927 ("perl-tk" ,perl-tk)
928 ("perl-try-tiny" ,perl-try-tiny)
929 ("perl-x11-protocol" ,perl-x11-protocol)
930 ("perl-x11-protocol-other" ,perl-x11-protocol-other)))
87216303 931 ;; The clusterssh.sourceforge.net address requires login to view
3b3b60d0 932 (home-page "https://sourceforge.net/projects/clusterssh/")
87216303
EB
933 (synopsis "Secure concurrent multi-server terminal control")
934 (description
935 "ClusterSSH controls a number of xterm windows via a single graphical
936console window to allow commands to be interactively run on multiple servers
937over ssh connections.")
f61e0e79 938 (license license:gpl2+)))
fccf2fe0 939
d1ce1125
MB
940(define-public rename
941 (package
942 (name "rename")
0db873dd 943 (version "1.10")
d1ce1125
MB
944 (source (origin
945 (method url-fetch)
946 (uri (string-append
947 "mirror://cpan/authors/id/R/RM/RMBARKER/File-Rename-"
948 version ".tar.gz"))
949 (sha256
950 (base32
0db873dd 951 "137m8s06r4n038ivlr5r1d9a7q9l7shmwpvnyx053r9ndhvbnkh5"))))
d1ce1125 952 (build-system perl-build-system)
e6dcf9ca
TGR
953 (arguments
954 `(#:phases
955 (modify-phases %standard-phases
956 (add-after 'install 'find-itself
957 ;; Fix run-time 'Can't locate File/Rename.pm in @INC' failure.
958 (lambda* (#:key outputs #:allow-other-keys)
959 (let* ((out (assoc-ref outputs "out"))
960 (bin (string-append out "/bin")))
961 (with-directory-excursion bin
962 (for-each
963 (lambda (program)
964 (wrap-program program
965 `("PERL5LIB" ":" prefix
966 (,(string-append out "/lib/perl5/site_perl")))))
967 (find-files "." ".*")))
968 #t))))))
d1ce1125
MB
969 (native-inputs
970 `(("perl-module-build" ,perl-module-build)
971 ("perl-test-pod" ,perl-test-pod)
972 ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
973 (home-page "https://metacpan.org/pod/distribution/File-Rename/rename.PL")
974 (synopsis "Perl extension for renaming multiple files")
975 (description
976 "This package provides a Perl interface (@code{Perl::Rename}) as well
977as a command-line utility (@command{rename}) that can rename multiple files
978at once based on a Perl regular expression.")
979 (license license:perl-license)))
980
fccf2fe0
LC
981(define-public rottlog
982 (package
983 (name "rottlog")
984 (version "0.72.2")
985 (source (origin
986 (method url-fetch)
987 (uri (string-append "mirror://gnu/rottlog/rottlog-"
988 version ".tar.gz"))
989 (sha256
990 (base32
991 "0751mb9l2f0jrk3vj6q8ilanifd121dliwk0c34g8k0dlzsv3kd7"))
992 (modules '((guix build utils)))
993 (snippet
6cbee49d
MW
994 '(begin
995 (substitute* "Makefile.in"
996 (("-o \\$\\{LOG_OWN\\} -g \\$\\{LOG_GROUP\\}")
997 ;; Don't try to chown root.
998 "")
999 (("mkdir -p \\$\\(ROTT_STATDIR\\)")
1000 ;; Don't attempt to create /var/lib/rottlog.
1001 "true"))
1002 #t))))
fccf2fe0
LC
1003 (build-system gnu-build-system)
1004 (arguments
268ad34e 1005 '(#:configure-flags (list "ROTT_ETCDIR=/etc/rottlog" ;rc file location
fccf2fe0 1006 "--localstatedir=/var")
268ad34e
LC
1007
1008 ;; Install example config files in OUT/etc.
1009 #:make-flags (list (string-append "ROTT_ETCDIR="
1010 (assoc-ref %outputs "out")
1011 "/etc"))
1012
8dc0ecae 1013 #:phases (modify-phases %standard-phases
d436c6b5
MB
1014 (add-after 'unpack 'patch-paths
1015 (lambda _
1016 (substitute* "rc/rc"
1017 (("/usr/sbin/sendmail") "sendmail"))
1018 #t))
11e74634
JN
1019 (add-after 'build 'set-packdir
1020 (lambda _
1021 ;; Set a default location for archived logs.
1022 (substitute* "rc/rc"
1023 (("packdir=\"\"")
1024 "packdir=\"/var/log\""))
1025 #t))
309e523e
LC
1026 (add-before 'install 'tweak-rc-weekly
1027 (lambda _
1028 (substitute* "rc/weekly"
1029 (("/bin/kill")
1030 (which "kill"))
1031 (("syslogd\\.pid")
1032 ;; The file is called 'syslog.pid' (no 'd').
1033 "syslog.pid"))
1034 #t))
8dc0ecae
LC
1035 (add-after 'install 'install-info
1036 (lambda _
cb8ba848 1037 (invoke "make" "install-info"))))))
fccf2fe0
LC
1038 (native-inputs `(("texinfo" ,texinfo)
1039 ("util-linux" ,util-linux))) ; for 'cal'
6fd52309 1040 (home-page "https://www.gnu.org/software/rottlog/")
fccf2fe0
LC
1041 (synopsis "Log rotation and management")
1042 (description
1043 "GNU Rot[t]log is a program for managing log files. It is used to
1044automatically rotate out log files when they have reached a given size or
1045according to a given schedule. It can also be used to automatically compress
1046and archive such logs. Rot[t]log will mail reports of its activity to the
1047system administrator.")
f61e0e79 1048 (license license:gpl3+)))
e1485c7b
LC
1049
1050(define-public sudo
1051 (package
1052 (name "sudo")
1710ffa4 1053 (version "1.8.27")
e1485c7b
LC
1054 (source (origin
1055 (method url-fetch)
1056 (uri
6baa83d2 1057 (list (string-append "https://www.sudo.ws/sudo/dist/sudo-"
e1485c7b
LC
1058 version ".tar.gz")
1059 (string-append "ftp://ftp.sudo.ws/pub/sudo/OLD/sudo-"
1060 version ".tar.gz")))
1061 (sha256
1062 (base32
1710ffa4 1063 "1h1f7v9pv0rzp14cxzv8kaa8mdd717fbqv83l7c5dvvi8jwnisvv"))
6b7f1b6c
MB
1064 (modules '((guix build utils)))
1065 (snippet
6cbee49d
MW
1066 '(begin
1067 (delete-file-recursively "lib/zlib")
1068 #t))))
e1485c7b
LC
1069 (build-system gnu-build-system)
1070 (arguments
0086ec73
LC
1071 `(#:configure-flags
1072 (list "--with-logpath=/var/log/sudo.log"
8e950ee9 1073 "--with-rundir=/var/run/sudo" ; must be cleaned up at boot time
0086ec73
LC
1074 "--with-vardir=/var/db/sudo"
1075 "--with-iologdir=/var/log/sudo-io"
1076
1077 ;; 'visudo.c' expects _PATH_MV to be defined, but glibc doesn't
1078 ;; provide it.
1079 (string-append "CPPFLAGS=-D_PATH_MV='\""
1080 (assoc-ref %build-inputs "coreutils")
1081 "/bin/mv\"'"))
511495fb
LC
1082
1083 ;; Avoid non-determinism; see <http://bugs.gnu.org/21918>.
1084 #:parallel-build? #f
1085
7fae2063
TGR
1086 #:phases
1087 (modify-phases %standard-phases
1088 (add-before 'configure 'pre-configure
1089 (lambda _
1090 (substitute* "src/sudo_usage.h.in"
1091 ;; Do not capture 'configure' arguments since we would
1092 ;; unduly retain references, and also because the
1093 ;; CPPFLAGS above would close the string literal
1094 ;; prematurely.
1095 (("@CONFIGURE_ARGS@") "\"\""))
1096 (substitute* (find-files "." "Makefile\\.in")
1097 (("-o [[:graph:]]+ -g [[:graph:]]+")
1098 ;; Allow installation as non-root.
1099 "")
1100 (("^install: (.*)install-sudoers(.*)" _ before after)
1101 ;; Don't try to create /etc/sudoers.
1102 (string-append "install: " before after "\n"))
1103 (("\\$\\(DESTDIR\\)\\$\\(rundir\\)")
1104 ;; Don't try to create /run/sudo.
1105 "$(TMPDIR)/dummy")
1106 (("\\$\\(DESTDIR\\)\\$\\(vardir\\)")
1107 ;; Don't try to create /var/db/sudo.
4b052c6a
EF
1108 "$(TMPDIR)/dummy"))
1109 #t)))
e1485c7b
LC
1110
1111 ;; XXX: The 'testsudoers' test series expects user 'root' to exist, but
1112 ;; the chroot's /etc/passwd doesn't have it. Turn off the tests.
1113 #:tests? #f))
1114 (inputs
1115 `(("groff" ,groff)
1116 ("linux-pam" ,linux-pam)
6b7f1b6c 1117 ("zlib" ,zlib)
e1485c7b 1118 ("coreutils" ,coreutils)))
6baa83d2 1119 (home-page "https://www.sudo.ws/")
e1485c7b
LC
1120 (synopsis "Run commands as root")
1121 (description
1122 "Sudo (su \"do\") allows a system administrator to delegate authority to
1123give certain users (or groups of users) the ability to run some (or all)
1124commands as root or another user while providing an audit trail of the
1125commands and their arguments.")
1126
1127 ;; See <http://www.sudo.ws/sudo/license.html>.
f61e0e79 1128 (license license:x11)))
952298d7 1129
1ce6f43a 1130(define-public wpa-supplicant-minimal
952298d7 1131 (package
1ce6f43a 1132 (name "wpa-supplicant-minimal")
aeb1ed1a 1133 (version "2.8")
952298d7
LC
1134 (source (origin
1135 (method url-fetch)
1136 (uri (string-append
eeb8b0e6 1137 "https://w1.fi/releases/wpa_supplicant-"
aeb1ed1a 1138 version ".tar.gz"))
952298d7
LC
1139 (sha256
1140 (base32
aeb1ed1a
MB
1141 "15ixzm347n8w6gdvi3j3yks3i15qmp6by9ayvswm34d929m372d6"))
1142 (modules '((guix build utils)))
1143 (snippet
1144 '(begin
1145 (substitute* "wpa_supplicant/defconfig"
1146 ;; Disable D-Bus to save ~14MiB on the closure size.
1147 (("^CONFIG_CTRL_IFACE_DBUS" line _)
1148 (string-append "#" line)))
1149 #t))))
952298d7
LC
1150 (build-system gnu-build-system)
1151 (arguments
dc1d3cde
KK
1152 '(#:phases
1153 (modify-phases %standard-phases
1154 (replace 'configure
1155 (lambda* (#:key outputs #:allow-other-keys)
1156 (chdir "wpa_supplicant")
1157 (copy-file "defconfig" ".config")
1158 (let ((port (open-file ".config" "al")))
1159 (display "
952298d7 1160 CONFIG_DEBUG_SYSLOG=y
40b4c6d6 1161
aeb1ed1a 1162 CONFIG_TLS=openssl
61bdd0d8 1163
952298d7
LC
1164 CONFIG_DRIVER_NL80211=y
1165 CFLAGS += $(shell pkg-config libnl-3.0 --cflags)
1166 CONFIG_LIBNL32=y
1167 CONFIG_READLINE=y\n" port)
cb8ba848
MW
1168 (close-port port))
1169 #t))
dc1d3cde
KK
1170 (add-after 'install 'install-man-pages
1171 (lambda* (#:key outputs #:allow-other-keys)
1172 (let* ((out (assoc-ref outputs "out"))
1173 (man (string-append out "/share/man"))
1174 (man5 (string-append man "/man5"))
1175 (man8 (string-append man "/man8")))
1176 (define (copy-man-page target)
1177 (lambda (file)
1178 (install-file file target)))
1179
1180 (mkdir-p man5) (mkdir man8)
1181 (for-each (copy-man-page man5)
1182 (find-files "doc/docbook" "\\.5"))
1183 (for-each (copy-man-page man8)
1184 (find-files "doc/docbook" "\\.8"))
1185 #t))))
952298d7
LC
1186
1187 #:make-flags (list "CC=gcc"
1188 (string-append "BINDIR=" (assoc-ref %outputs "out")
1189 "/sbin")
1190 (string-append "LIBDIR=" (assoc-ref %outputs "out")
1191 "/lib"))
1192 #:tests? #f))
1193 (inputs
1194 `(("readline" ,readline)
1195 ("libnl" ,libnl)
aeb1ed1a 1196 ("openssl" ,openssl)))
952298d7
LC
1197 (native-inputs
1198 `(("pkg-config" ,pkg-config)))
eeb8b0e6 1199 (home-page "https://w1.fi/wpa_supplicant/")
952298d7
LC
1200 (synopsis "Connecting to WPA and WPA2-protected wireless networks")
1201 (description
1202 "wpa_supplicant is a WPA Supplicant with support for WPA and WPA2 (IEEE
1203802.11i / RSN). Supplicant is the IEEE 802.1X/WPA component that is used in
1204the client stations. It implements key negotiation with a WPA Authenticator
1205and it controls the roaming and IEEE 802.11 authentication/association of the
1206WLAN driver.
1207
36a4366d
EF
1208This package provides the @code{wpa_supplicant} daemon and the @code{wpa_cli}
1209command.")
952298d7
LC
1210
1211 ;; In practice, this is linked against Readline, which makes it GPLv3+.
107b081e
LC
1212 (license license:bsd-3)
1213
1214 (properties `((cpe-name . "wpa_supplicant")))))
c6b76405 1215
4fb7e0de 1216(define-public wpa-supplicant
1ce6f43a 1217 (package (inherit wpa-supplicant-minimal)
4fb7e0de
MW
1218 (name "wpa-supplicant")
1219 (inputs `(("dbus" ,dbus)
1ce6f43a 1220 ,@(package-inputs wpa-supplicant-minimal)))
4fb7e0de 1221 (arguments
1ce6f43a 1222 (substitute-keyword-arguments (package-arguments wpa-supplicant-minimal)
4fb7e0de 1223 ((#:phases phases)
dc1d3cde
KK
1224 `(modify-phases ,phases
1225 (add-after 'configure 'configure-for-dbus
1226 (lambda _
1227 (let ((port (open-file ".config" "al")))
1228 (display "
4fb7e0de
MW
1229 CONFIG_CTRL_IFACE_DBUS_NEW=y
1230 CONFIG_CTRL_IFACE_DBUS_INTRO=y\n" port)
dc1d3cde
KK
1231 (close-port port))
1232 #t))
1233 (add-after 'install-man-pages 'install-dbus-conf
1234 (lambda* (#:key outputs #:allow-other-keys)
1235 (let* ((out (assoc-ref outputs "out"))
1236 (dir (string-append out "/etc/dbus-1/system.d")))
1237 (mkdir-p dir)
1238 (copy-file "dbus/dbus-wpa_supplicant.conf"
1239 (string-append dir "/wpa_supplicant.conf")))
1240 #t))))))))
4fb7e0de 1241
050e5756
MB
1242(define-public wpa-supplicant-gui
1243 (package
1244 (inherit wpa-supplicant)
1245 (name "wpa-supplicant-gui")
1246 (inputs `(("qtbase" ,qtbase)
1247 ("qtsvg" ,qtsvg)
1248 ,@(package-inputs wpa-supplicant)))
1249 (native-inputs
1250 ;; For icons.
1251 `(("imagemagick" ,imagemagick)
1252 ("inkscape" ,inkscape)
1253 ,@(package-native-inputs wpa-supplicant)))
1254 (arguments
1255 `(#:phases (modify-phases %standard-phases
1256 (add-after 'unpack 'chdir
1257 (lambda _
1258 (chdir "wpa_supplicant/wpa_gui-qt4")
1259 #t))
1260 (delete 'configure)
1261 (replace 'build
1262 (lambda _
1263 (invoke "qmake" "wpa_gui.pro")
1264 (invoke "make" "-j" (number->string (parallel-job-count)))
1265 (invoke "make" "-C" "icons")))
1266 (replace 'install
1267 (lambda* (#:key inputs outputs #:allow-other-keys)
1268 (let ((out (assoc-ref outputs "out"))
1269 (qt '("qtbase" "qtsvg")))
050e5756
MB
1270 (install-file "wpa_gui" (string-append out "/bin"))
1271 (install-file "wpa_gui.desktop"
1272 (string-append out "/share/applications"))
1273 (copy-recursively "icons/hicolor"
1274 (string-append out "/share/icons/hicolor"))
1275 (wrap-program (string-append out "/bin/wpa_gui")
1276 `("QT_PLUGIN_PATH" ":" prefix
1277 ,(map (lambda (label)
1278 (string-append (assoc-ref inputs label)
1279 "/lib/qt5/plugins/"))
1280 qt)))
1281 #t))))))
1282 (synopsis "Graphical user interface for WPA supplicant")))
1283
56038bac
LC
1284(define-public hostapd
1285 (package
1286 (name "hostapd")
1287 (version "2.8")
1288 (source (origin
1289 (method url-fetch)
1290 (uri (string-append "https://w1.fi/releases/hostapd-" version
1291 ".tar.gz"))
1292 (sha256
1293 (base32
1294 "1c74rrazkhy4lr7pwgwa2igzca7h9l4brrs7672kiv7fwqmm57wj"))))
1295 (build-system gnu-build-system)
1296 (arguments
1297 '(#:phases
1298 (modify-phases %standard-phases
1299 (replace 'configure
1300 (lambda* (#:key outputs #:allow-other-keys)
1301 ;; This is mostly copied from 'wpa-supplicant' above.
1302 (chdir "hostapd")
1303 (copy-file "defconfig" ".config")
1304 (let ((port (open-file ".config" "al")))
1305 (display "
1306 CONFIG_LIBNL32=y
1307 CONFIG_IEEE80211R=y
1308 CONFIG_IEEE80211N=y
1309 CONFIG_IEEE80211AC=y\n" port)
1310 (close-port port))
1311 #t))
1312 (add-after 'install 'install-man-pages
1313 (lambda* (#:key outputs #:allow-other-keys)
1314 (let* ((out (assoc-ref outputs "out"))
1315 (man (string-append out "/share/man"))
1316 (man1 (string-append man "/man1"))
1317 (man8 (string-append man "/man8")))
1318 (define (copy-man-page target)
1319 (lambda (file)
1320 (install-file file target)))
1321
1322 (for-each (copy-man-page man1)
1323 (find-files "." "\\.1"))
1324 (for-each (copy-man-page man8)
1325 (find-files "." "\\.8"))
1326 #t))))
1327
1328 #:make-flags (list "CC=gcc"
1329 (string-append "BINDIR=" (assoc-ref %outputs "out")
1330 "/sbin")
1331 (string-append "LIBDIR=" (assoc-ref %outputs "out")
1332 "/lib"))
1333 #:tests? #f))
1334 (native-inputs `(("pkg-config" ,pkg-config)))
1335
1336 ;; There's an optional dependency on SQLite.
1337 (inputs `(("openssl" ,openssl)
1338 ("libnl" ,libnl)))
1339 (home-page "https://w1.fi/hostapd/")
1340 (synopsis "Daemon for Wi-Fi access points and authentication servers")
1341 (description
1342 "hostapd is a user-space daemon for WiFi access points and authentication
1343servers. It implements IEEE 802.11 access point management, IEEE
1344802.1X/WPA/WPA2/EAP Authenticators, RADIUS client, EAP server, and RADIUS
1345authentication server.")
1346
1347 ;; Same license as wpa_supplicant.
1348 (license license:bsd-3)))
1349
c6b76405
LC
1350(define-public wakelan
1351 (package
1352 (name "wakelan")
1353 (version "1.1")
1354 (source (origin
1355 (method url-fetch)
1356 (uri (string-append
1357 "ftp://ftp.gwdg.de/pub/linux/metalab/system/network/misc/wakelan-"
1358 version ".tar.gz"))
1359 (sha256
1360 (base32
1361 "0vydqpf44146ir6k87gmqaq6xy66xhc1gkr3nsd7jj3nhy7ypx9x"))))
1362 (build-system gnu-build-system)
1363 (arguments
dc1d3cde
KK
1364 '(#:phases
1365 (modify-phases %standard-phases
1366 (replace 'configure
1367 (lambda* (#:key outputs #:allow-other-keys)
1368 (let ((out (assoc-ref outputs "out")))
1369 (mkdir-p (string-append out "/bin"))
1370 (mkdir-p (string-append out "/share/man/man1"))
1371
1372 ;; It's an old configure script that doesn't understand
1373 ;; the extra options we pass.
1374 (setenv "CONFIG_SHELL" (which "bash"))
cb8ba848
MW
1375 (invoke "./configure"
1376 (string-append "--prefix=" out)
1377 (string-append "--mandir=" out
1378 "/share/man"))))))
c6b76405 1379 #:tests? #f))
eeb8b0e6 1380 (home-page "https://www.kernel.org") ; really, no home page
c6b76405
LC
1381 (synopsis "Send a wake-on-LAN packet")
1382 (description
1383 "WakeLan broadcasts a properly formatted UDP packet across the local area
1384network, which causes enabled computers to power on.")
f61e0e79 1385 (license license:gpl2+)))
d43f4296
LC
1386
1387(define-public dmidecode
1388 (package
1389 (name "dmidecode")
31fdfc0c 1390 (version "3.2")
d43f4296
LC
1391 (source (origin
1392 (method url-fetch)
1393 (uri (string-append
1394 "mirror://savannah/dmidecode/dmidecode-"
06438b07 1395 version ".tar.xz"))
d43f4296
LC
1396 (sha256
1397 (base32
31fdfc0c 1398 "1pcfhcgs2ifdjwp7amnsr3lq95pgxpr150bjhdinvl505px0cw07"))))
d43f4296
LC
1399 (build-system gnu-build-system)
1400 (arguments
06438b07 1401 '(#:phases (modify-phases %standard-phases (delete 'configure))
d43f4296
LC
1402 #:tests? #f ; no 'check' target
1403 #:make-flags (list (string-append "prefix="
1404 (assoc-ref %outputs "out")))))
340978d7 1405 (home-page "https://www.nongnu.org/dmidecode/")
d43f4296
LC
1406 (synopsis "Read hardware information from the BIOS")
1407 (description
1408 "Dmidecode reports information about your system's hardware as described
1409in your system BIOS according to the SMBIOS/DMI standard. This typically
1410includes system manufacturer, model name, serial number, BIOS version, asset
1411tag as well as a lot of other details of varying level of interest and
1412reliability depending on the manufacturer. This will often include usage
1413status for the CPU sockets, expansion slots (e.g. AGP, PCI, ISA) and memory
1414module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
f61e0e79 1415 (license license:gpl2+)))
42dc3af5 1416
13c8c2bf
MW
1417(define-public acpica
1418 (package
1419 (name "acpica")
7710b8f8 1420 (version "20190405")
13c8c2bf
MW
1421 (source (origin
1422 (method url-fetch)
1423 (uri (string-append
1424 "https://acpica.org/sites/acpica/files/acpica-unix2-"
1425 version ".tar.gz"))
1426 (sha256
1427 (base32
7710b8f8 1428 "0hv6r65l8vk3f6i3by7i47vc1917qm47838bpq80lfn22784y53y"))))
13c8c2bf
MW
1429 (build-system gnu-build-system)
1430 (native-inputs `(("flex" ,flex)
1431 ("bison" ,bison)))
1432 (arguments
1433 '(#:make-flags (list (string-append "PREFIX=" %output)
4a462aa7 1434 "CC=gcc"
13c8c2bf
MW
1435 "HOST=_LINUX"
1436 "OPT_CFLAGS=-Wall -fno-strict-aliasing")
e56feffe 1437 #:tests? #f ; no 'check' target
dc1d3cde 1438 #:phases (modify-phases %standard-phases (delete 'configure))))
6c441efc 1439 (home-page "https://acpica.org/")
35b9e423 1440 (synopsis "Tools for the development and debug of ACPI tables")
13c8c2bf 1441 (description
3908546a 1442 "The ACPI Component Architecture (@dfn{ACPICA}) project provides an
13c8c2bf 1443OS-independent reference implementation of the Advanced Configuration and
3908546a
TGR
1444Power Interface Specification (@dfn{ACPI}). ACPICA code contains those portions
1445of ACPI meant to be directly integrated into the host OS as a kernel-resident
13c8c2bf
MW
1446subsystem, and a small set of tools to assist in developing and debugging ACPI
1447tables. This package contains only the user-space tools needed for ACPI table
1448development, not the kernel implementation of ACPI.")
e56feffe 1449 (license license:gpl2))) ; dual GPLv2/ACPICA Licence
4cf7bd2b
MW
1450
1451(define-public stress
1452 (package
1453 (name "stress")
ca52937c 1454 (version "1.0.4")
4cf7bd2b
MW
1455 (source (origin
1456 (method url-fetch)
1457 (uri (string-append "mirror://debian/pool/main/s/stress/stress_"
1458 version ".orig.tar.gz"))
1459 (sha256
1460 (base32
ca52937c 1461 "0nw210jajk38m3y7h8s130ps2qsbz7j75wab07hi2r3hlz14yzh5"))))
4cf7bd2b 1462 (build-system gnu-build-system)
abf7fed5 1463 (home-page "https://packages.debian.org/sid/stress")
9e771e3b 1464 (synopsis "Impose load on and stress test a computer system")
4cf7bd2b 1465 (description
35b9e423 1466 "Stress is a tool that imposes a configurable amount of CPU, memory, I/O,
4cf7bd2b
MW
1467or disk stress on a POSIX-compliant operating system and reports any errors it
1468detects.
1469
35b9e423 1470Stress is not a benchmark. It is a tool used by system administrators to
4cf7bd2b
MW
1471evaluate how well their systems will scale, by kernel programmers to evaluate
1472perceived performance characteristics, and by systems programmers to expose
1473the classes of bugs which only or more frequently manifest themselves when the
1474system is under heavy load.")
f61e0e79 1475 (license license:gpl2+)))
b36fcf95
EB
1476
1477(define-public detox
1478 (package
1479 (name "detox")
c2d512d3 1480 (version "1.3.0")
b36fcf95 1481 (source (origin
c2d512d3
EB
1482 (method git-fetch)
1483 (uri (git-reference
1484 (url "https://github.com/dharple/detox.git")
1485 (commit (string-append "v" version))))
b36fcf95
EB
1486 (sha256
1487 (base32
c2d512d3 1488 "1dd608c7g65s5lj02cddvani3q9kzirddgkjqa22ap9d4f8b9xgr"))))
b36fcf95 1489 (build-system gnu-build-system)
c2d512d3
EB
1490 (native-inputs
1491 `(("autoconf" ,autoconf)
1492 ("automake" ,automake)
1493 ("flex" ,flex)))
b36fcf95 1494 (arguments
c2d512d3
EB
1495 `(#:tests? #f ;no 'check' target
1496 #:phases (modify-phases %standard-phases
1497 (add-after 'unpack 'delete-configure
1498 ;; The "configure" script is present, but otherwise the
1499 ;; project is not bootstrapped: missing install-sh and
1500 ;; Makefile.in, so delete it so the bootstrap phase will
1501 ;; take over.
1502 (lambda _ (delete-file "configure") #t)))))
1503 (home-page "https://github.com/dharple/detox")
e881752c 1504 (synopsis "Clean up file names")
b36fcf95
EB
1505 (description
1506 "Detox is a program that renames files to make them easier to work with
1507under Unix and related operating systems. Spaces and various other unsafe
1508characters (such as \"$\") get replaced with \"_\". ISO 8859-1 (Latin-1)
1509characters can be replaced as well, as can UTF-8 characters.")
f61e0e79 1510 (license license:bsd-3)))
c4492a16
LC
1511
1512(define-public testdisk
1513 (package
1514 (name "testdisk")
cf91cfc0 1515 (version "7.0")
c4492a16
LC
1516 (source (origin
1517 (method url-fetch)
1518 (uri (string-append "http://www.cgsecurity.org/testdisk-"
1519 version ".tar.bz2"))
1520 (sha256
1521 (base32
cf91cfc0 1522 "0ba4wfz2qrf60vwvb1qsq9l6j0pgg81qgf7fh22siaz649mkpfq0"))))
c4492a16
LC
1523 (build-system gnu-build-system)
1524 (inputs
d6a08ec0 1525 `(("ntfs-3g" ,ntfs-3g)
c4492a16 1526 ("util-linux" ,util-linux)
cc2b77df 1527 ("openssl" ,openssl)
d6a08ec0 1528 ;; FIXME: add reiserfs
f61e0e79 1529 ("zlib" ,zlib)
c4492a16
LC
1530 ("e2fsprogs" ,e2fsprogs)
1531 ("libjpeg" ,libjpeg)
1532 ("ncurses" ,ncurses)))
8fc46a43 1533 (home-page "https://www.cgsecurity.org/wiki/TestDisk")
c4492a16
LC
1534 (synopsis "Data recovery tool")
1535 (description
1536 "TestDisk is a program for data recovery, primarily designed to help
1537recover lost partitions and/or make non-booting disks bootable again.")
f61e0e79 1538 (license license:gpl2+)))
c4492a16 1539
15926aec
AS
1540(define-public tree
1541 (package
1542 (name "tree")
1e2ebf7c 1543 (version "1.8.0")
15926aec
AS
1544 (source (origin
1545 (method url-fetch)
1546 (uri (string-append
1547 "http://mama.indstate.edu/users/ice/tree/src/tree-"
1548 version ".tgz"))
1549 (sha256
1e2ebf7c 1550 (base32 "1hmpz6k0mr6salv0nprvm1g0rdjva1kx03bdf1scw8a38d5mspbi"))))
15926aec
AS
1551 (build-system gnu-build-system)
1552 (arguments
dc1d3cde 1553 '(#:phases (modify-phases %standard-phases (delete 'configure))
15926aec
AS
1554 #:tests? #f ; no check target
1555 #:make-flags (let ((out (assoc-ref %outputs "out")))
1556 (list (string-append "prefix=" out)))))
1557 (synopsis "Recursively list the contents of a directory")
1558 (description
1559 "Tree is a recursive directory listing command that produces a depth
1560indented listing of files, which is colorized ala dircolors if the LS_COLORS
1561environment variable is set and output is to tty.")
1562 (home-page "http://mama.indstate.edu/users/ice/tree/")
1563 (license license:gpl2+)))
1564
c2619e10
LC
1565(define-public direvent
1566 (package
1567 (name "direvent")
bac67a5a 1568 (version "5.1")
c2619e10
LC
1569 (source (origin
1570 (method url-fetch)
1571 (uri (string-append "mirror://gnu/direvent/direvent-"
1572 version ".tar.gz"))
1573 (sha256
1574 (base32
bac67a5a 1575 "1nwvjmx7kb14ni34c0b8x9a3791pc20gvhj7xaj66d8q4h6n0qf4"))
c2619e10 1576 (modules '((guix build utils)))
6cbee49d
MW
1577 (snippet '(begin
1578 (substitute* "tests/testsuite"
1579 (("#![[:blank:]]?/bin/sh")
1580 "#!$SHELL"))
1581 #t))))
c2619e10
LC
1582 (build-system gnu-build-system)
1583 (arguments
dc1d3cde
KK
1584 '(#:phases
1585 (modify-phases %standard-phases
1586 (add-before 'build 'patch-/bin/sh
1587 (lambda* (#:key inputs #:allow-other-keys)
1588 ;; Use the right shell when executing the watcher and
1589 ;; user-provided shell commands.
1590 (let ((bash (assoc-ref inputs "bash")))
1591 (substitute* '("src/direvent.c" "src/progman.c")
1592 (("\"/bin/sh\"")
1593 (string-append "\"" bash "/bin/sh\"")))
1594
1595 ;; Adjust the 'shell.at' test accordingly.
1596 (substitute* "tests/testsuite"
1597 (("SHELL=/bin/sh")
1598 (string-append "SHELL=" bash "/bin/sh")))
1599
1600 #t))))))
6fd52309 1601 (home-page "https://www.gnu.org/software/direvent/")
c2619e10
LC
1602 (synopsis "Daemon to monitor directories for events such as file removal")
1603 (description
1604 "A daemon that monitors directories for events, such as creating,
35b9e423 1605deleting or modifying files. It can monitor different sets of directories for
c2619e10
LC
1606different events. When an event is detected, direvent calls a specified
1607external program with information about the event, such as the location
c5779c93
LC
1608within the file system where it occurred. Thus, \"direvent\" provides an
1609easy way to react immediately if given files undergo changes, for example, to
c2619e10 1610track changes in important system configuration files.")
f61e0e79 1611 (license license:gpl3+)))
da6c3749
TUBK
1612
1613(define-public libcap-ng
1614 (package
1615 (name "libcap-ng")
cc304fe8 1616 (version "0.7.9")
da6c3749
TUBK
1617 (source (origin
1618 (method url-fetch)
1619 (uri (string-append
eeb8b0e6 1620 "https://people.redhat.com/sgrubb/libcap-ng/libcap-ng-"
da6c3749
TUBK
1621 version ".tar.gz"))
1622 (sha256
1623 (base32
cc304fe8 1624 "0a0k484kwv0zilry2mbl9k56cnpdhsjxdxin17jas6kkyfy345aa"))))
da6c3749 1625 (build-system gnu-build-system)
dd935df2
TGR
1626 (arguments
1627 `(#:configure-flags
1628 (list "--without-python")))
4a2982a1 1629 (home-page "https://people.redhat.com/sgrubb/libcap-ng/")
da6c3749
TUBK
1630 (synopsis "Library for more easily working with POSIX capabilities")
1631 (description
1632 "The libcap-ng library is intended to make programming with POSIX
1633capabilities easier than the traditional libcap library. It includes
1634utilities that can analyse all currently running applications and print out
1635any capabilities and whether or not it has an open ended bounding set. The
1636included utilities are designed to let admins and developers spot apps from
1637various ways that may be running with too much privilege.")
1638 ;; The library is lgpl2.1+, but also ships some utils which are gpl2+.
f61e0e79 1639 (license (list license:lgpl2.1+ license:gpl2+))))
d02f2cc4
TUBK
1640
1641(define-public smartmontools
1642 (package
1643 (name "smartmontools")
043eeda1 1644 (version "7.0")
d02f2cc4
TUBK
1645 (source (origin
1646 (method url-fetch)
1647 (uri (string-append
1648 "mirror://sourceforge/smartmontools/smartmontools/"
1649 version "/smartmontools-" version ".tar.gz"))
1650 (sha256
1651 (base32
043eeda1 1652 "077nx2rn9szrg6isdh0938zbp7vr3dsyxl4jdyyzv1xwhqksrqg5"))))
d02f2cc4
TUBK
1653 (build-system gnu-build-system)
1654 (inputs `(("libcap-ng" ,libcap-ng)))
51b6a1dd 1655 (home-page "https://www.smartmontools.org/")
d02f2cc4
TUBK
1656 (synopsis "S.M.A.R.T. harddisk control and monitoring tools")
1657 (description
1658 "The smartmontools package contains utility programs to control and
1659monitor storage systems using the Self-Monitoring, Analysis and Reporting
c115b2db
TGR
1660Technology System (@dfn{S.M.A.R.T.}) built into most modern ATA and SCSI hard
1661disks. In many cases, these utilities will provide advanced warning of disk
d02f2cc4 1662degradation and failure.")
f61e0e79 1663 (license license:gpl2+)))
6efd0823
RW
1664
1665(define-public fdupes
1666 (package
1667 (name "fdupes")
47d7b303 1668 (version "1.6.1")
6efd0823
RW
1669 (source
1670 (origin
9bc96d13
TGR
1671 (method git-fetch)
1672 (uri (git-reference
1673 (url "https://github.com/adrianlopezroche/fdupes.git")
1674 (commit (string-append "v" version))))
1675 (file-name (git-file-name name version))
6efd0823 1676 (sha256
9bc96d13 1677 (base32 "19b6vqblddaw8ccw4sn0qsqzbswlhrz8ia6n4m3hymvcxn8skpz9"))))
6efd0823
RW
1678 (build-system gnu-build-system)
1679 (arguments
e192a230
TGR
1680 '(#:phases (modify-phases %standard-phases
1681 (delete 'configure))
6efd0823 1682 #:tests? #f ; no 'check' target
47d7b303
TGR
1683 #:make-flags (list "CC=gcc"
1684 (string-append "PREFIX="
6efd0823
RW
1685 (assoc-ref %outputs "out")))))
1686 (home-page "https://github.com/adrianlopezroche/fdupes")
1687 (synopsis "Identify duplicate files")
1688 (description
1689 "fdupes is a program for identifying duplicate files residing within
1690specified directories.")
1691 (license license:expat)))
4ecfbda7
DT
1692
1693(define-public graphios
1694 (package
1695 (name "graphios")
1696 (version "2.0.3")
1697 (source
1698 (origin
1699 (method url-fetch)
4267aa75 1700 (uri (pypi-uri "graphios" version))
4ecfbda7
DT
1701 (sha256
1702 (base32
1703 "1h87hvc315wg6lklbf4l7csd3n5pgljwrfli1p3nasdi0izgn66i"))))
1704 (build-system python-build-system)
1705 (arguments
1706 ;; Be warned: Building with Python 3 succeeds, but the build process
1707 ;; throws a syntax error that is ignored.
1708 `(#:python ,python-2
1709 #:phases
1710 (modify-phases %standard-phases
1711 (add-before 'build 'fix-setup.py
1712 (lambda* (#:key outputs #:allow-other-keys)
1713 ;; Fix hardcoded, unprefixed file names.
1714 (let ((out (assoc-ref outputs "out")))
1715 (substitute* '("setup.py")
1716 (("/etc") (string-append out "/etc"))
1717 (("/usr") out)
1718 (("distro_ver = .*") "distro_ver = ''"))
1719 #t))))))
4ecfbda7
DT
1720 (home-page "https://github.com/shawn-sterling/graphios")
1721 (synopsis "Emit Nagios metrics to Graphite, Statsd, and Librato")
1722 (description
1723 "Graphios is a script to emit nagios perfdata to various upstream metrics
1724processing and time-series systems. It's currently compatible with Graphite,
1725Statsd, Librato and InfluxDB. Graphios can emit Nagios metrics to any number
1726of supported upstream metrics systems simultaneously.")
1727 (license license:gpl2+)))
8d801045
ED
1728
1729(define-public ansible
1730 (package
1731 (name "ansible")
cf287faa 1732 (version "2.7.10")
8d801045
ED
1733 (source
1734 (origin
1735 (method url-fetch)
697e86dd 1736 (uri (pypi-uri "ansible" version))
8d801045 1737 (sha256
cf287faa 1738 (base32 "15721d0bxymghxnlnknq43lszlxg3ybbcp2p5v424hhw6wg2v944"))))
8d801045
ED
1739 (build-system python-build-system)
1740 (native-inputs
504e26ed
KB
1741 `(("python-bcrypt" ,python-bcrypt)
1742 ("python-pynacl" ,python-pynacl)
1743 ("python-httplib2" ,python-httplib2)
1744 ("python-passlib" ,python-passlib)
1745 ("python-nose" ,python-nose)
1746 ("python-mock" ,python-mock)
1747 ("python-jinja2" ,python-jinja2)
1748 ("python-pyyaml" ,python-pyyaml)
1749 ("python-paramiko" ,python-paramiko)))
8d801045 1750 (inputs
504e26ed
KB
1751 `(("python-cryptography" ,python-cryptography)
1752 ("python-jinja2" ,python-jinja2)
1753 ("python-pyyaml" ,python-pyyaml)
1754 ("python-paramiko" ,python-paramiko)))
01cb4d47
AI
1755 (arguments
1756 `(#:phases
1757 (modify-phases %standard-phases
1758 ;; Several ansible commands (ansible-config, ansible-console, etc.)
1759 ;; are just symlinks to a single ansible executable. The ansible
1760 ;; executable behaves differently based on the value of
1761 ;; sys.argv[0]. This does not work well with our wrap phase, and
1762 ;; therefore the following two phases are required as a workaround.
1763 (add-after 'unpack 'hide-wrapping
1764 (lambda _
1765 ;; Overwrite sys.argv[0] to hide the wrapper script from it.
1766 (substitute* "bin/ansible"
1767 (("import traceback" all)
1768 (string-append all "
1769import re
1770sys.argv[0] = re.sub(r'\\.([^/]*)-real$', r'\\1', sys.argv[0])
1771")))
1772 #t))
1773 (add-after 'wrap 'fix-symlinks
1774 (lambda* (#:key outputs #:allow-other-keys)
1775 (let ((out (assoc-ref outputs "out")))
1776 (for-each
1777 (lambda (subprogram)
1778 ;; The symlinks point to the ansible wrapper script. Make
1779 ;; them point to the real executable (.ansible-real).
1780 (delete-file (string-append out "/bin/.ansible-" subprogram "-real"))
1781 (symlink (string-append out "/bin/.ansible-real")
1782 (string-append out "/bin/.ansible-" subprogram "-real"))
1783 ;; The wrapper scripts of the symlinks invoke the ansible
1784 ;; wrapper script. Fix them to invoke the correct executable.
1785 (substitute* (string-append out "/bin/ansible-" subprogram)
1786 (("/bin/ansible")
1787 (string-append "/bin/.ansible-" subprogram "-real"))))
1788 (list "config" "console" "doc" "galaxy"
1789 "inventory" "playbook" "pull" "vault")))
1790 #t)))))
ff18d0f1 1791 (home-page "https://www.ansible.com/")
8d801045
ED
1792 (synopsis "Radically simple IT automation")
1793 (description "Ansible is a radically simple IT automation system. It
e22473ff
TGR
1794handles configuration management, application deployment, cloud provisioning,
1795ad hoc task execution, and multinode orchestration---including trivializing
1796things like zero-downtime rolling updates with load balancers.")
8d801045 1797 (license license:gpl3+)))
44157e9f 1798
2b6164f0
OP
1799(define-public emacs-ansible-doc
1800 (let ((commit "86083a7bb2ed0468ca64e52076b06441a2f8e9e0"))
1801 (package
1802 (name "emacs-ansible-doc")
1803 (version (git-version "0.4" "1" commit))
1804 (source
1805 (origin
1806 (method git-fetch)
1807 (uri (git-reference
1808 (url "https://github.com/lunaryorn/ansible-doc.el")
1809 (commit commit)))
1810 (file-name (git-file-name name version))
1811 (sha256
1812 (base32
1813 "0lap404ch74w99n3xip176jr42b38xhyzkfnkyqg0g3wk2cd3aq8"))))
1814 (build-system emacs-build-system)
1815 ;; Unmaintained by upstream.
1816 (home-page "https://github.com/lunaryorn/ansible-doc.el")
1817 (synopsis "Ansible documentation for Emacs")
1818 (description
1819 "This package provides an Ansible documentation for GNU Emacs.
1820
1821@code{ansible-doc} allows you to view the documentation of an Ansible
1822module and @code{ansible-doc-mode} minor mode adds documentation
1823lookup to YAML Mode. You could enable the mode with @code{(add-hook
1824'yaml-mode-hook #'ansible-doc-mode)}.")
1825 (license license:gpl3+))))
1826
44157e9f
EB
1827(define-public cpulimit
1828 (package
1829 (name "cpulimit")
1830 (version "0.2")
1831 (source
1832 (origin
aa372292
TGR
1833 (method git-fetch)
1834 (uri (git-reference
1835 (url "https://github.com/opsengine/cpulimit.git")
1836 (commit (string-append "v" version))))
1837 (file-name (git-file-name name version))
44157e9f 1838 (sha256
aa372292 1839 (base32 "1dz045yhcsw1rdamzpz4bk8mw888in7fyqk1q1b3m1yk4pd1ahkh"))))
44157e9f
EB
1840 (build-system gnu-build-system)
1841 (arguments
1842 `(#:phases (modify-phases %standard-phases
1843 (delete 'configure)
cb8ba848
MW
1844 (replace 'build
1845 (lambda _
1846 (invoke "make" "CC=gcc" "-Csrc")))
1847 (replace 'check
1848 (lambda _
1849 (invoke "make" "CC=gcc" "-Ctests")))
1850 (replace 'install
1851 (lambda* (#:key outputs #:allow-other-keys)
1852 (let* ((out (assoc-ref outputs "out"))
1853 (bin (string-append out "/bin")))
1854 (install-file "src/cpulimit" bin))
1855 #t)))))
44157e9f
EB
1856 (home-page "https://github.com/opsengine/cpulimit")
1857 (synopsis "Limit CPU usage")
1858 (description
1859 "Cpulimit limits the CPU usage of a process. It does not change the nice
1860value or other scheduling priority settings, but the real CPU usage, and is
1861able to adapt itself dynamically to the overall system load. Children
1862processes and threads of the specified process may optionally share the same
1863limits.")
1864 (license license:gpl2+)))
2328b47c
EB
1865
1866(define-public autojump
1867 (package
1868 (name "autojump")
0e684357 1869 (version "22.5.3")
2328b47c
EB
1870 (source
1871 (origin
24d459ce
TGR
1872 (method git-fetch)
1873 (uri (git-reference
1874 (url "https://github.com/wting/autojump.git")
1875 (commit (string-append "release-v" version))))
1876 (file-name (git-file-name name version))
2328b47c 1877 (sha256
0e684357 1878 (base32 "1rgpsh70manr2dydna9da4x7p8ahii7dgdgwir5fka340n1wrcws"))))
2328b47c 1879 (build-system gnu-build-system)
24d459ce 1880 (native-inputs ; for tests
2328b47c
EB
1881 `(("python-mock" ,python-mock)
1882 ("python-pytest" ,python-pytest)))
1883 (inputs
1884 `(("python" ,python-wrapper)))
1885 (arguments
eb9dda9c
KK
1886 `(#:phases
1887 (modify-phases %standard-phases
24d459ce
TGR
1888 (add-after 'unpack 'make-git-checkout-writable
1889 ;; ‘install.py’ modifies files before installing them.
1890 (lambda _
1891 (for-each make-file-writable (find-files "."))
1892 #t))
eb9dda9c
KK
1893 (delete 'configure)
1894 (delete 'build)
1895 (replace 'check
1896 (lambda _
1897 (invoke "python" "tests/unit/autojump_utils_test.py")))
1898 (replace 'install
1899 (lambda* (#:key outputs #:allow-other-keys)
1900 (setenv "SHELL" (which "bash"))
1901 (invoke "python" "install.py"
1902 (string-append "--destdir="
1903 (assoc-ref outputs "out"))))))))
2328b47c 1904 (home-page "https://github.com/wting/autojump")
8f65585b 1905 (synopsis "Shell extension for file system navigation")
2328b47c 1906 (description
8f65585b 1907 "Autojump provides a faster way to navigate your file system, with a \"cd
2328b47c
EB
1908command that learns\". It works by maintaining a database of the directories
1909you use the most from the command line and allows you to \"jump\" to
1910frequently used directories by typing only a small pattern.")
1911 (license license:gpl3+)))
765973cd 1912
1ca0ac1e
EB
1913(define-public fasd
1914 (package
1915 (name "fasd")
1916 (version "1.0.1")
1917 (source (origin
1918 (method git-fetch)
1919 (uri (git-reference
1920 (url "https://github.com/clvv/fasd.git")
1921 (commit version)))
1922 (file-name (git-file-name name version))
1923 (sha256
1924 (base32
1925 "1awi71jdv3mhjrmar2d4z1i90kn7apd7aq1w31sh6w4yibz9kiyj"))))
1926 (build-system gnu-build-system)
1927 (arguments
1928 `(#:phases (modify-phases %standard-phases
1929 (delete 'configure)) ;no configuration
1930 #:tests? #f ;no tests
1931 #:make-flags (list (string-append "PREFIX=" %output))))
1932 (home-page "https://github.com/clvv/fasd")
1933 (synopsis "Quick access to files and directories for shells")
1934 (description
1935 "Fasd (pronounced similar to \"fast\") is a command-line productivity
1936booster. Fasd offers quick access to files and directories for POSIX shells.
1937It is inspired by tools like autojump, z, and v. Fasd keeps track of files
1938and directories you have accessed so that you can quickly reference them in
1939the command line.")
1940 (license license:x11)))
1941
765973cd
LF
1942(define-public iftop
1943 (package
1944 (name "iftop")
1945 (version "1.0pre4")
1946 (source (origin
1947 (method url-fetch)
1948 (uri (string-append "http://www.ex-parrot.com/~pdw/iftop/download"
1949 "/iftop-" version ".tar.gz"))
1950 (sha256
1951 (base32
1952 "15sgkdyijb7vbxpxjavh5qm5nvyii3fqcg9mzvw7fx8s6zmfwczp"))))
1953 (build-system gnu-build-system)
1954 (inputs
1955 `(("libpcap" ,libpcap)
1956 ("ncurses" ,ncurses)))
1957 (synopsis "Monitor network usage")
1958 (description "Iftop does for network usage what @command{top} does
1959for CPU usage. It listens to network traffic on a named interface and
1960displays a table of current bandwidth usage by pairs of hosts.")
1961 (home-page "http://www.ex-parrot.com/~pdw/iftop/")
d4e21fbb 1962 (license license:gpl2+)))
f1957fc1
PP
1963
1964(define-public munge
1965 (package
1966 (name "munge")
5578a9c6 1967 (version "0.5.13")
f1957fc1
PP
1968 (source (origin
1969 (method url-fetch)
b52ae4de
EF
1970 (uri (string-append "https://github.com/dun/munge/releases/"
1971 "download/munge-" version "/munge-"
1972 version ".tar.xz"))
f1957fc1
PP
1973 (sha256
1974 (base32
5578a9c6 1975 "1nj486bbg1adfg298zck96vgx57kchcypc1zdz1n7w540vyksxcr"))))
f1957fc1
PP
1976 (inputs
1977 `(("openssl" ,openssl)
1978 ("libgcrypt" ,libgcrypt)))
1979 (build-system gnu-build-system)
b52ae4de 1980 (home-page "https://dun.github.io/munge/")
f1957fc1
PP
1981 (synopsis "Cluster computing authentication service")
1982 (description
1983 "Munge is an authentication service for creating and validating
1984credentials. It allows a process to authenticate the UID and GID of another
1985local or remote process within a group of hosts having common users and
1986groups. These hosts form a security realm that is defined by a shared
1987cryptographic key. Clients within this security realm can create and validate
1988credentials without the use of root privileges, reserved ports, or
1989platform-specific methods.")
1990 (license license:gpl3+)))
3d7a157c
RW
1991
1992(define-public audit
1993 (package
1994 (name "audit")
00f81f83 1995 (home-page "https://people.redhat.com/sgrubb/audit/")
b4e1f1ae 1996 (version "2.8.5")
3d7a157c
RW
1997 (source (origin
1998 (method url-fetch)
fe2f0166 1999 (uri (string-append home-page "audit-" version ".tar.gz"))
3d7a157c
RW
2000 (sha256
2001 (base32
b4e1f1ae 2002 "1dzcwb2q78q7x41shcachn7f4aksxbxd470yk38zh03fch1l2p8f"))))
3d7a157c 2003 (build-system gnu-build-system)
3d7a157c 2004 (arguments
8938b369
MB
2005 `(#:configure-flags (list "--with-python=no"
2006 "--disable-static")))
3d7a157c
RW
2007 (inputs
2008 `(("openldap" ,openldap)
1bafad56 2009 ("gnutls" ,gnutls)
3d7a157c
RW
2010 ("sasl" ,cyrus-sasl)))
2011 (synopsis "User-space component to the Linux auditing system")
2012 (description
2013 "auditd is the user-space component to the Linux auditing system, which
2014allows logging of system calls made by user-land processes. It's responsible
2015for writing audit records to the disk. Viewing the logs is done with the
2016@code{ausearch} or @code{aureport} utilities. Configuring the audit rules is
2017done with the @code{auditctl} utility.")
2018 (license license:gpl2+)))
d0457553
TUBK
2019
2020(define-public nmap
2021 (package
2022 (name "nmap")
069d0b7f 2023 (version "7.70")
d0457553
TUBK
2024 (source (origin
2025 (method url-fetch)
2026 (uri (string-append "https://nmap.org/dist/nmap-" version
2027 ".tar.bz2"))
2028 (sha256
2029 (base32
069d0b7f 2030 "063fg8adx23l4irrh5kn57hsmi1xvjkar4vm4k6g94ppan4hcyw4"))
d0457553
TUBK
2031 (modules '((guix build utils)))
2032 (snippet
6cbee49d
MW
2033 '(begin
2034 (for-each delete-file-recursively
2035 ;; Remove bundled lua, pcap, and pcre libraries.
2036 ;; FIXME: Remove bundled liblinear once packaged.
2037 '("liblua"
2038 "libpcap"
2039 "libpcre"
2040 ;; Remove pre-compiled binares.
2041 "mswin32"))
2042 #t))))
d0457553
TUBK
2043 (build-system gnu-build-system)
2044 (inputs
2045 `(("openssl" ,openssl)
2046 ("libpcap" ,libpcap)
2047 ("pcre" ,pcre)
2048 ("lua" ,lua)
069d0b7f
MB
2049 ("zlib" ,zlib) ;for NSE compression support
2050
d0457553
TUBK
2051 ;; For 'ndiff'.
2052 ("python" ,python-2)))
2053
2054 ;; TODO Add zenmap output.
2055 (outputs '("out" "ndiff"))
2056 (arguments
cc729d25 2057 `(#:configure-flags '("--without-zenmap")
d0457553
TUBK
2058 #:phases
2059 (modify-phases %standard-phases
f4dc22bc
MB
2060 (add-after 'configure 'patch-Makefile
2061 (lambda _
2062 (substitute* "Makefile"
2063 ;; Do not attempt to build lua.
2064 (("build-dnet build-lua") "build-dnet"))
2065 #t))
d0457553
TUBK
2066 (replace 'install
2067 (lambda* (#:key outputs #:allow-other-keys)
2068 (define (make out . args)
cb8ba848
MW
2069 (apply invoke "make"
2070 (string-append "prefix=" out)
2071 args))
d0457553 2072 (define (python-path dir)
cc729d25
EF
2073 (string-append dir "/lib/python"
2074 ,(version-major+minor
2075 (package-version python))
2076 "/site-packages"))
d0457553
TUBK
2077 (let ((out (assoc-ref outputs "out"))
2078 (ndiff (assoc-ref outputs "ndiff")))
2079 (for-each mkdir-p (list out ndiff))
2080 (make out
2081 "install-nmap"
2082 "install-nse"
2083 "install-ncat"
2084 "install-nping")
2085 (make ndiff "install-ndiff")
2086 (wrap-program (string-append ndiff "/bin/ndiff")
2087 `("PYTHONPATH" prefix
cb8ba848
MW
2088 (,(python-path ndiff)))))
2089 #t))
d0457553
TUBK
2090 ;; These are the tests that do not require network access.
2091 (replace 'check
cb8ba848
MW
2092 (lambda _ (invoke "make"
2093 "check-nse"
2094 "check-ndiff"
2095 "check-dns"))))
d0457553
TUBK
2096 ;; Nmap can't cope with out-of-source building.
2097 #:out-of-source? #f))
2098 (home-page "https://nmap.org/")
2099 (synopsis "Network discovery and security auditing tool")
2100 (description
2101 "Nmap (\"Network Mapper\") is a network discovery and security auditing
2102tool. It is also useful for tasks such as network inventory, managing service
2103upgrade schedules, and monitoring host or service uptime. It also provides an
2104advanced netcat implementation (ncat), a utility for comparing scan
2105results (ndiff), and a packet generation and response analysis tool (nping).")
2106 ;; This package uses nmap's bundled versions of libdnet and liblinear, which
2107 ;; both use a 3-clause BSD license.
2108 (license (list license:nmap license:bsd-3))))
1a0346f0
P
2109
2110(define-public dstat
2111 (package
2112 (name "dstat")
2113 (version "0.7.3")
fc204d24
TGR
2114 (source
2115 (origin
2116 (method git-fetch)
2117 (uri (git-reference
2118 (url "https://github.com/dagwieers/dstat.git")
2119 (commit version)))
2120 (file-name (git-file-name "dstat" version))
2121 (sha256
2122 (base32 "0sbpna531034gr40w4g9cwz35s2fpf9h654paznsxw9fih91rfa5"))))
1a0346f0
P
2123 (build-system gnu-build-system)
2124 (arguments
fc204d24 2125 `(#:tests? #f ; no make check
1a0346f0
P
2126 #:make-flags (let ((out (assoc-ref %outputs "out")))
2127 (list (string-append "DESTDIR=" out)
2128 "prefix=/"))
fc204d24 2129 ;; No configure script.
dc1d3cde 2130 #:phases (modify-phases %standard-phases (delete 'configure))))
1a0346f0
P
2131 (inputs `(("python-2" ,python-2)))
2132 (synopsis "Versatile resource statistics tool")
2133 (description "Dstat is a versatile replacement for @command{vmstat},
2134@command{iostat}, @command{netstat}, and @command{ifstat}. Dstat overcomes
2135some of their limitations and adds some extra features, more counters and
2136flexibility. Dstat is handy for monitoring systems during performance tuning
2137tests, benchmarks or troubleshooting.
2138
2139Dstat allows you to view all of your system resources in real-time, you can,
2140e.g., compare disk utilization in combination with interrupts from your IDE
2141controller, or compare the network bandwidth numbers directly with the disk
2142throughput (in the same interval).")
2143 (home-page "http://dag.wiee.rs/home-made/dstat/")
c59f62e9 2144 (license license:gpl2+)))
0405e5f4
EB
2145
2146(define-public thefuck
2147 (package
2148 (name "thefuck")
5d941f4e 2149 (version "3.28")
a0c693e1
TGR
2150 (source
2151 (origin
2152 (method git-fetch)
2153 (uri (git-reference
2154 (url "https://github.com/nvbn/thefuck.git")
2155 (commit version)))
2156 (file-name (git-file-name name version))
2157 (sha256
2158 (base32 "070b2sx8r0b4hry6xg97psxlikxghmz91zicg2cm6kc1yhgz4agc"))
2159 (patches (search-patches "thefuck-test-environ.patch"))))
0405e5f4 2160 (build-system python-build-system)
1c1b67a3 2161 (arguments
bf5b6fb2
EB
2162 '(#:phases
2163 (modify-phases %standard-phases
2164 (delete 'check)
2165 (add-after 'install 'check
2166 (lambda* (#:key inputs outputs #:allow-other-keys)
2167 ;; Tests look for installed package
2168 (add-installed-pythonpath inputs outputs)
2169 ;; Some tests need write access to $HOME.
2170 (setenv "HOME" "/tmp")
2216b6f4
TGR
2171 (invoke "py.test" "-v")
2172 #t)))))
1c1b67a3 2173 (propagated-inputs
0405e5f4
EB
2174 `(("python-colorama" ,python-colorama)
2175 ("python-decorator" ,python-decorator)
2176 ("python-psutil" ,python-psutil)
2468ca04 2177 ("python-pyte" ,python-pyte)
0405e5f4 2178 ("python-six" ,python-six)))
2d1ac1d1 2179 (native-inputs
1c1b67a3
MB
2180 `(("python-mock" ,python-mock)
2181 ("python-pytest" ,python-pytest)
2468ca04 2182 ("python-pytest-mock" ,python-pytest-mock)))
0405e5f4
EB
2183 (home-page "https://github.com/nvbn/thefuck")
2184 (synopsis "Correct mistyped console command")
2185 (description
2186 "The Fuck tries to match a rule for a previous, mistyped command, creates
2187a new command using the matched rule, and runs it.")
2188 (license license:x11)))
61402398
JF
2189
2190(define-public di
2191 (package
2192 (name "di")
b31e67f1 2193 (version "4.47")
61402398
JF
2194 (source
2195 (origin
2196 (method url-fetch)
2197 (uri (string-append "https://gentoo.com/di/di-" version ".tar.gz"))
2198 (sha256
b31e67f1 2199 (base32 "0zlapxlzjizwzwa8xwrwibhcbkh0wx7n74gvjpp6wlwq7cgiq0xm"))))
61402398
JF
2200 (build-system gnu-build-system)
2201 (arguments
b31e67f1 2202 `(#:tests? #f ; obscure test failures.
61402398
JF
2203 #:phases
2204 (modify-phases %standard-phases
2205 (delete 'configure)
2206 (add-before 'build 'setup-environment
2207 (lambda* (#:key outputs #:allow-other-keys)
2208 (setenv "CC" "gcc")
2209 (setenv "prefix" (assoc-ref outputs "out"))
2210 #t)))
2211 #:make-flags (list "--environment-overrides")))
2212 (home-page "https://www.gentoo.com/di/")
2213 (synopsis "Advanced df like disk information utility")
2214 (description
36a4366d 2215 "@code{di} is a disk information utility, displaying everything that your
26c6de8b
TGR
2216@code{df} command does and more. It features the ability to display your disk
2217usage in whatever format you prefer. It is designed to be highly portable and
2218produce uniform output across heterogeneous networks.")
61402398 2219 (license license:zlib)))
5ec8b02d 2220
2221(define-public cbatticon
2222 (package
2223 (name "cbatticon")
84f95d55 2224 (version "1.6.8")
d8d910e6
TGR
2225 (source
2226 (origin
2227 (method git-fetch)
2228 (uri (git-reference
2229 (url "https://github.com/valr/cbatticon.git")
2230 (commit version)))
2231 (sha256
2232 (base32 "16g26vin1693dbdr9qsnw36fdchx394lp79gvp7gcbw0w1ny9av6"))
2233 (file-name (git-file-name name version))))
5ec8b02d 2234 (build-system gnu-build-system)
2235 (arguments
d8d910e6 2236 `(#:tests? #f ; no tests
5ec8b02d 2237 #:make-flags
2238 (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
2239 "CC=gcc")
2240 #:phases
2241 (modify-phases %standard-phases
d8d910e6 2242 (delete 'configure)))) ; no configure script
5ec8b02d 2243 (inputs
2244 `(("gtk+" ,gtk+)
b94a6ca0 2245 ("gettext" ,gettext-minimal)
5ec8b02d 2246 ("libnotify" ,libnotify)))
2247 (native-inputs
2248 `(("pkg-config" ,pkg-config)))
2249 (synopsis "Lightweight battery icon for the system tray")
2250 (description "cbatticon is a lightweight battery icon that displays
2251the status of your battery in the system tray.")
2252 (home-page "https://github.com/valr/cbatticon")
2253 (license license:gpl2+)))
c08533b2 2254
2255(define-public interrobang
2256 (let ((revision "1")
2257 (commit "896543735e1c99144765fdbd7b6e6b5afbd8b881"))
2258 (package
2259 (name "interrobang")
807a3099
TGR
2260 (version (git-version "0.0.0" revision commit))
2261 (source
2262 (origin
2263 (method git-fetch)
2264 (uri (git-reference
2265 (url "https://github.com/TrilbyWhite/interrobang.git")
2266 (commit commit)))
2267 (file-name (git-file-name name version))
2268 (sha256
2269 (base32 "1n13m70p1hfba5dy3i8hfclbr6k9q3d9dai3dg4jvhdhmxcpjzdf"))))
c08533b2 2270 (build-system gnu-build-system)
2271 (arguments
807a3099 2272 `(#:tests? #f ; no tests
c08533b2 2273 #:phases
2274 (modify-phases %standard-phases
807a3099 2275 (delete 'configure)) ; no configure script
c08533b2 2276 #:make-flags (list (string-append "PREFIX="
2277 (assoc-ref %outputs "out")))))
2278 (inputs
2279 `(("libx11" ,libx11)))
2280 (native-inputs
2281 `(("pkg-config" ,pkg-config)))
2282 (synopsis "Scriptable launcher menu")
2283 (description "Interrobang is a scriptable launcher menu with a customizable
2284shortcut syntax and completion options.")
2285 (home-page "https://github.com/TrilbyWhite/interrobang")
2286 (license license:gpl3+))))
94c5dc8c 2287
94c5dc8c
JD
2288(define-public pam-krb5
2289 (package
2290 (name "pam-krb5")
0e6c242b 2291 (version "4.8")
94c5dc8c
JD
2292 (source (origin
2293 (method url-fetch)
2294 (uri (string-append
ab213bfd
TGR
2295 "https://archives.eyrie.org/software/kerberos/"
2296 "pam-krb5-" version ".tar.xz"))
94c5dc8c
JD
2297 (sha256
2298 (base32
0e6c242b 2299 "1qjp8i1s9bz7g6kiqrkzzkxn5pfspa4sy53b6z40fqmdf9przdfb"))))
94c5dc8c
JD
2300 (build-system gnu-build-system)
2301 (arguments
2302 `(#:phases
2303 (modify-phases %standard-phases
2304 (add-before 'configure 'disable-tests
2305 (lambda _
2306 ;; The build container seems to interfere with some tests.
2307 (substitute* "tests/TESTS"
2308 (("module/basic\n") ""))
2309 (substitute* "tests/TESTS"
2310 (("pam-util/vector\n") ""))
2311 #t)))))
2312 (inputs
2313 `(("linux-pam" ,linux-pam)
2314 ("mit-krb5" ,mit-krb5)))
2315 (native-inputs
2316 `(("perl" ,perl)
2317 ("perl-test-pod" ,perl-test-pod))) ; required for tests
2318 (synopsis "Kerberos PAM module")
2319 (description
2320 "Pam-krb5 is a Kerberos PAM module for either MIT Kerberos or Heimdal.
2321It supports ticket refreshing by screen savers, configurable
2322authorization handling, authentication of non-local accounts for network
2323services, password changing, and password expiration, as well as all the
2324standard expected PAM features. It works correctly with OpenSSH, even
45298300
TGR
2325with @code{ChallengeResponseAuthentication} and @code{PrivilegeSeparation}
2326enabled, and supports extensive configuration either by PAM options or in
94c5dc8c
JD
2327krb5.conf or both. PKINIT is supported with recent versions of both MIT
2328Kerberos and Heimdal and FAST is supported with recent MIT Kerberos.")
eeb8b0e6 2329 (home-page "https://www.eyrie.org/~eagle/software/pam-krb5")
94c5dc8c
JD
2330 ;; Dual licenced under a homebrew non-copyleft OR GPL (any version)
2331 ;; However, the tarball does not contain a copy of the GPL, so unless
2332 ;; we put one in, we cannot distribute it under GPL without violating
2333 ;; clause requiring us to give all recipients a copy.
2334 (license license:gpl1+)))
2335
b04ca7a1
DM
2336(define-public sunxi-tools
2337 (package
2338 (name "sunxi-tools")
0c6fc4b7 2339 (version "1.4.2")
b04ca7a1
DM
2340 (source
2341 (origin
43eb601f
TGR
2342 (method git-fetch)
2343 (uri (git-reference
2344 (url "https://github.com/linux-sunxi/sunxi-tools.git")
2345 (commit (string-append "v" version))))
b04ca7a1 2346 (sha256
43eb601f 2347 (base32 "04f3jqg8ww4jxsf9c6ddcdgy2xbhkyp0b3l5f1hvvbv94p81rjxd"))
b04ca7a1
DM
2348 (modules '((guix build utils)))
2349 (snippet
2350 ;; Remove binaries contained in the tarball which are only for the
2351 ;; target and can be regenerated anyway.
6cbee49d
MW
2352 '(begin
2353 (delete-file-recursively "bin")
2354 #t))
43eb601f 2355 (file-name (git-file-name name version))))
b04ca7a1 2356 (native-inputs
faa6bdf8
DM
2357 `(("pkg-config" ,pkg-config)
2358 ("cross-gcc" ,(cross-gcc "arm-linux-gnueabihf"
2359 #:xbinutils (cross-binutils "arm-linux-gnueabihf")
2360 #:libc (cross-libc "arm-linux-gnueabihf")))
e2d0cf03
DM
2361 ("cross-libc" ,(cross-libc "arm-linux-gnueabihf")) ; header files
2362 ("cross-libc-static" ,(cross-libc "arm-linux-gnueabihf") "static")))
b04ca7a1
DM
2363 (inputs
2364 `(("libusb" ,libusb)))
2365 (build-system gnu-build-system)
2366 (arguments
faa6bdf8 2367 `(#:tests? #f ; no tests exist
b04ca7a1
DM
2368 #:make-flags (list (string-append "PREFIX="
2369 (assoc-ref %outputs "out"))
faa6bdf8
DM
2370 (string-append "CROSS_COMPILE="
2371 "arm-linux-gnueabihf-")
2372 "CC=gcc")
b04ca7a1
DM
2373 #:phases
2374 (modify-phases %standard-phases
b054b26a 2375 (delete 'configure)
faa6bdf8
DM
2376 (add-before 'build 'set-environment-up
2377 (lambda* (#:key make-flags #:allow-other-keys)
2378 (define (cross? x)
2379 (string-contains x "cross-arm-linux"))
e7988175
DM
2380 (define (filter-environment! filter-predicate
2381 environment-variable-names)
2382 (for-each
2383 (lambda (env-name)
2384 (let* ((env-value (getenv env-name))
2385 (search-path (search-path-as-string->list env-value))
2386 (new-search-path (filter filter-predicate
2387 search-path))
2388 (new-env-value (list->search-path-as-string
2389 new-search-path ":")))
2390 (setenv env-name new-env-value)))
2391 environment-variable-names))
faa6bdf8
DM
2392 (setenv "CROSS_C_INCLUDE_PATH" (getenv "C_INCLUDE_PATH"))
2393 (setenv "CROSS_CPLUS_INCLUDE_PATH" (getenv "CPLUS_INCLUDE_PATH"))
2394 (setenv "CROSS_LIBRARY_PATH" (getenv "LIBRARY_PATH"))
e7988175
DM
2395 (filter-environment! cross?
2396 '("CROSS_C_INCLUDE_PATH" "CROSS_CPLUS_INCLUDE_PATH"
2397 "CROSS_LIBRARY_PATH"))
2398 (filter-environment! (lambda (e) (not (cross? e)))
2399 '("C_INCLUDE_PATH" "CPLUS_INCLUDE_PATH"
2400 "LIBRARY_PATH"))
faa6bdf8
DM
2401 #t))
2402 (replace 'build
2403 (lambda* (#:key make-flags #:allow-other-keys)
cb8ba848 2404 (apply invoke "make" "tools" "misc" make-flags)))
faa6bdf8
DM
2405 (add-after 'build 'build-armhf
2406 (lambda* (#:key make-flags #:allow-other-keys)
e7988175 2407 (setenv "LIBRARY_PATH" #f)
cb8ba848 2408 (apply invoke "make" "target-tools" make-flags)))
b054b26a
DM
2409 (replace 'install
2410 (lambda* (#:key make-flags #:allow-other-keys)
cb8ba848
MW
2411 (apply invoke "make" "install-all" "install-misc"
2412 make-flags))))))
b04ca7a1
DM
2413 (home-page "https://github.com/linux-sunxi/sunxi-tools")
2414 (synopsis "Hardware management tools for Allwinner computers")
2415 (description "This package contains tools for Allwinner devices:
2416@enumerate
2417@item @command{sunxi-fexc}, @command{bin2fex}, @command{fex2bin}: Compile
2418a textual description of a board (.fex) to a binary representation (.bin).
2419@item @command{sunxi-fel}: Puts an Allwinner device into FEL mode which
2420makes it register as a special USB device (rather than USB host).
2421You can then connect it to another computer and flash it from there.
2422@item @command{sunxi-nand-part}: Partitions NAND flash.
2423@item @command{sunxi-bootinfo}: Reads out boot0 and boot1 (Allwinner
2424bootloader) parameters.
2425@item @command{sunxi-pio}: Sets GPIO parameters and oscillates a GPIO
2426in order to be able to find it.
2427@item @command{sunxi-meminfo}: Prints memory bus settings.
b054b26a 2428@item @command{sunxi-nand-image-builder}: Prepares raw NAND images.
b04ca7a1
DM
2429@end enumerate")
2430 (license license:gpl2+)))
a054777e 2431
2432(define-public sedsed
2433 (package
2434 (name "sedsed")
2435 (version "1.0")
2436 (source
2437 (origin
7d6e8fda
TGR
2438 (method git-fetch)
2439 (uri (git-reference
2440 (url "https://github.com/aureliojargas/sedsed.git")
2441 (commit (string-append "v" version))))
2442 (file-name (git-file-name name version))
a054777e 2443 (sha256
7d6e8fda 2444 (base32 "0009lsjsxhqmgaklpwq15hhd94hpiy7r4va69yy0ig3mxi6zbg2z"))))
a054777e 2445 (build-system python-build-system)
2446 (arguments
7d6e8fda 2447 `(#:tests? #f ; no tests
a054777e 2448 #:python ,python-2
2449 #:phases
2450 (modify-phases %standard-phases
2451 (add-after 'unpack 'patch-sed-in
2452 (lambda _
2453 (substitute* "sedsed.py"
2454 (("sedbin = 'sed'")
2455 (string-append "sedbin = '" (which "sed") "'")))
2456 #t))
2457 (delete 'build)
2458 (replace 'install
2459 (lambda* (#:key outputs #:allow-other-keys)
2460 (let* ((out (assoc-ref outputs "out"))
2461 (bin (string-append out "/bin")))
2462 ;; Just one file to copy around
2463 (install-file "sedsed.py" bin)
2464 #t)))
2465 (add-after 'install 'symlink
2466 ;; Create 'sedsed' symlink to "sedsed.py".
2467 (lambda* (#:key outputs #:allow-other-keys)
2468 (let* ((out (assoc-ref outputs "out"))
2469 (bin (string-append out "/bin"))
2470 (sed (string-append bin "/sedsed"))
2471 (sedpy (string-append bin "/sedsed.py")))
2472 (symlink sedpy sed)
2473 #t))))))
2474 (home-page "http://aurelio.net/projects/sedsed")
2475 (synopsis "Sed sed scripts")
2476 (description
2477 "@code{sedsed} can debug, indent, tokenize and HTMLize your sed(1) script.
2478
2479In debug mode it reads your script and add extra commands to it. When
2480executed you can see the data flow between the commands, revealing all the
2481magic sed does on its internal buffers.
2482
2483In indent mode your script is reformatted with standard spacing.
2484
2485In tokenize mode you can see the elements of every command you use.
2486
2487In HTMLize mode your script is converted to a beautiful colored HTML file,
2488with all the commands and parameters identified for your viewing pleasure.
2489
2490With sedsed you can master any sed script. No more secrets, no more hidden
2491buffers.")
2492 (license license:expat)))
d10fa5c7 2493
dca48d3c 2494(define-public igt-gpu-tools
d10fa5c7 2495 (package
dca48d3c
TGR
2496 (name "igt-gpu-tools")
2497 (version "1.23")
d10fa5c7
RW
2498 (source (origin
2499 (method url-fetch)
2500 (uri (string-append "https://cgit.freedesktop.org/xorg/app/"
2501 "intel-gpu-tools/snapshot/"
ecb58922 2502 "igt-gpu-tools-" version ".tar.gz"))
d10fa5c7
RW
2503 (sha256
2504 (base32
dca48d3c 2505 "0vzv2i4jfv2pkbqby5k3ap9pzidkmajwqmg3s7wnv8i1h33775iq"))))
d10fa5c7
RW
2506 (build-system gnu-build-system)
2507 (arguments
dca48d3c 2508 `(#:tests? #f ; many of the tests try to load kernel modules
d10fa5c7
RW
2509 #:phases
2510 (modify-phases %standard-phases
2511 (add-after 'unpack 'autogen
2512 (lambda _
8e7e6170 2513 ;; Don't run configure in this phase.
d10fa5c7 2514 (setenv "NOCONFIGURE" "1")
8e7e6170 2515 (invoke "sh" "autogen.sh"))))))
d10fa5c7 2516 (inputs
10082d30
TGR
2517 `(("cairo" ,cairo)
2518 ("eudev" ,eudev)
2519 ("glib" ,glib)
2520 ("kmod" ,kmod)
d10fa5c7
RW
2521 ("libdrm" ,libdrm)
2522 ("libpciaccess" ,libpciaccess)
d10fa5c7
RW
2523 ("libunwind" ,libunwind)
2524 ("libxrandr" ,libxrandr)
10082d30
TGR
2525 ("openssl" ,openssl)
2526 ("procps" ,procps)
2527 ("util-macros" ,util-macros)))
d10fa5c7
RW
2528 (native-inputs
2529 `(("autoconf" ,autoconf)
2530 ("automake" ,automake)
2531 ("libtool" ,libtool)
2532 ("pkg-config" ,pkg-config)))
2533 (home-page "https://cgit.freedesktop.org/xorg/app/intel-gpu-tools/")
2534 (synopsis "Tools for development and testing of the Intel DRM driver")
dca48d3c 2535 (description "IGT GPU Tools is a collection of tools for development and
d10fa5c7
RW
2536testing of the Intel DRM driver. There are many macro-level test suites that
2537get used against the driver, including xtest, rendercheck, piglit, and
2538oglconform, but failures from those can be difficult to track down to kernel
2539changes, and many require complicated build procedures or specific testing
dca48d3c 2540environments to get useful results. Therefore, IGT GPU Tools includes
d10fa5c7
RW
2541low-level tools and tests specifically for development and testing of the
2542Intel DRM Driver.")
9f375a4c 2543 (supported-systems '("i686-linux" "x86_64-linux"))
d10fa5c7 2544 (license license:expat)))
c1aba1a7 2545
dca48d3c
TGR
2546(define-public intel-gpu-tools
2547 (deprecated-package "intel-gpu-tools" igt-gpu-tools))
2548
b611f9c2
BS
2549(define-public fabric
2550 (package
2551 (name "fabric")
a62d455d 2552 (version "1.14.0")
b611f9c2
BS
2553 (source
2554 (origin
2555 (method url-fetch)
2556 (uri (pypi-uri "Fabric" version))
2557 (sha256
2558 (base32
a62d455d 2559 "13r0b0hllgf8j9rh6x1knmbgvingbdmx046aazv6vck2ll120mw1"))))
b611f9c2
BS
2560 (build-system python-build-system)
2561 (arguments
e68e4a90
BS
2562 `(#:python ,python-2 ; Python 2 only
2563 #:phases
2564 (modify-phases %standard-phases
2565 (replace 'check
2566 (lambda _
2567 (invoke
2568 "nosetests" "-v" "tests/"
2569 ;; This test hangs indefinitely when run on a single core VM
2570 ;; (see GNU bug #26647 and Debian bug #850230).
2571 "--exclude=test_nested_execution_with_explicit_ports"
2572 ;; This test randomly fails in certain environments causing too
2573 ;; much noise to be useful (see Debian bug #854686).
2574 "--exclude=test_should_use_sentinel_for_tasks_that_errored"))))))
1b5b24c9 2575 (native-inputs
e68e4a90
BS
2576 `(("python2-fudge" ,python2-fudge) ; Requires < 1.0
2577 ("python2-jinja2" ,python2-jinja2) ; Requires < 3.0
2578 ("python2-nose" ,python2-nose) ; Requires < 2.0
a62d455d
RJ
2579 ("python2-pynacl" ,python2-pynacl)
2580 ("python2-bcrypt" ,python2-bcrypt)))
b611f9c2 2581 (propagated-inputs
b611f9c2
BS
2582 `(("python2-paramiko" ,python2-paramiko)))
2583 (home-page "http://fabfile.org")
2584 (synopsis "Simple Pythonic remote execution and deployment tool")
2585 (description
2586 "Fabric is designed to upload files and run shell commands on a number of
2587servers in parallel or serially. These commands are grouped in tasks (which
2588are regular Python functions) and specified in a @dfn{fabfile}.
2589
2590It is similar to Capistrano, except it's implemented in Python and doesn't
2591expect you to be deploying Rails applications. Fabric is a simple, Pythonic
2592tool for remote execution and deployment.")
2593 (license license:bsd-2)))
6e75ea48
EJ
2594
2595(define-public neofetch
2596 (package
2597 (name "neofetch")
07f3387a 2598 (version "6.0.0")
6e75ea48 2599 (source (origin
7e04f210
TGR
2600 (method git-fetch)
2601 (uri (git-reference
2602 (url "https://github.com/dylanaraps/neofetch")
2603 (commit version)))
6e75ea48
EJ
2604 (sha256
2605 (base32
07f3387a 2606 "0j0r40llyry1sgc6p9wd7jrpydps2lnj4rwajjp37697g2bik89i"))))
6e75ea48
EJ
2607 (build-system gnu-build-system)
2608 (arguments
378140e5 2609 `(#:tests? #f ; there are no tests
6e75ea48
EJ
2610 #:make-flags
2611 (list (string-append "PREFIX=" %output))
2612 #:phases
2613 (modify-phases %standard-phases
acb1c72c 2614 (delete 'configure)))) ; no configure script
6e75ea48 2615 (home-page "https://github.com/dylanaraps/neofetch")
2cd8e6e0
TGR
2616 (synopsis "System information script")
2617 (description "Neofetch is a command-line system information tool written in
2618Bash. Neofetch displays information about your system next to an image, your OS
6e75ea48
EJ
2619logo, or any ASCII file of your choice. The main purpose of Neofetch is to be
2620used in screenshots to show other users what operating system or distribution
2621you are running, what theme or icon set you are using, etc.")
2622 (license license:expat)))
a76ca052
EJ
2623
2624(define-public nnn
2625 (package
2626 (name "nnn")
eb5a6643
TGR
2627 (version "1.9")
2628 (source
2629 (origin
2630 (method url-fetch)
2631 (uri (string-append "https://github.com/jarun/nnn/releases/download/v"
16572d0e 2632 version "/nnn-v" version ".tar.gz"))
eb5a6643
TGR
2633 (sha256
2634 (base32 "1d6z12y4rlg4dzhpm30irpq2ak8hjh5zykkp2n7vxnz5m4ki89zp"))))
a76ca052 2635 (build-system gnu-build-system)
eb5a6643
TGR
2636 (inputs
2637 `(("ncurses" ,ncurses)
2638 ("readline" ,readline)))
2639 (native-inputs
2640 `(("pkg-config" ,pkg-config)))
a76ca052 2641 (arguments
eb5a6643 2642 '(#:tests? #f ; no tests
a76ca052 2643 #:phases
a76ca052 2644 (modify-phases %standard-phases
eb5a6643 2645 (delete 'configure)) ; no configure script
a76ca052
EJ
2646 #:make-flags
2647 (list
2648 (string-append "PREFIX="
2649 (assoc-ref %outputs "out"))
a76ca052
EJ
2650 "CC=gcc")))
2651 (home-page "https://github.com/jarun/nnn")
2652 (synopsis "Terminal file browser")
2653 (description "@command{nnn} is a fork of @command{noice}, a blazing-fast
2654lightweight terminal file browser with easy keyboard shortcuts for
2655navigation, opening files and running tasks. There is no config file and
2656mime associations are hard-coded. The incredible user-friendliness and speed
2657make it a perfect utility on modern distros.")
2658 (license license:bsd-2)))
58989684
CAW
2659
2660(define-public thermald
2661 (package
2662 (name "thermald")
ad257ec8 2663 (version "1.8")
58989684
CAW
2664 (source
2665 (origin
d09e84c2
EF
2666 (method git-fetch)
2667 (uri (git-reference
2668 (url "https://github.com/01org/thermal_daemon")
2669 (commit (string-append "v" version))))
2670 (file-name (git-file-name name version))
2671 (sha256
ad257ec8
TGR
2672 (base32 "1g1l7k8yxj8bl1ysdx8v6anv1s7xk9j072y44gwki70dy48n7j92"))
2673 (patches
2674 (search-patches "thermald-make-int-max32-visible.patch"))))
58989684
CAW
2675 (build-system gnu-build-system)
2676 (arguments
12007839 2677 `(#:configure-flags
58989684
CAW
2678 (let ((out (assoc-ref %outputs "out")))
2679 (list (string-append "--sysconfdir="
2680 out "/etc")
58989684
CAW
2681 (string-append "--with-dbus-sys-dir="
2682 out "/etc/dbus-1/system.d")
2683 "--localstatedir=/var"))))
2684 (native-inputs
2685 `(("autoconf" ,autoconf)
2686 ("automake" ,automake)
2687 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2688 ("pkg-config" ,pkg-config)))
2689 (inputs
2690 `(("dbus-glib" ,dbus-glib)
2691 ("libxml2" ,libxml2)))
2692 (home-page "https://01.org/linux-thermal-daemon/")
2693 (synopsis "CPU scaling for thermal management")
2694 (description "The Linux Thermal Daemon helps monitor and control temperature
2695on systems running the Linux kernel.")
b6315bc0 2696 ;; arm and aarch64 don't have cpuid.h.
86ee7625 2697 (supported-systems '("i686-linux" "x86_64-linux"))
58989684 2698 (license license:gpl2+)))
d7c64ad5
LF
2699
2700(define-public masscan
2701 (package
2702 (name "masscan")
b4bf9516 2703 (version "1.0.5")
e956d76d
TGR
2704 (source
2705 (origin
2706 (method git-fetch)
2707 (uri (git-reference
2708 (url "https://github.com/robertdavidgraham/masscan.git")
2709 (commit version)))
2710 (file-name (git-file-name name version))
2711 (sha256
2712 (base32 "0q0c7bsf0pbl8napry1qyg0gl4pd8wn872h4mz9b56dx4rx90vqg"))))
d7c64ad5
LF
2713 (build-system gnu-build-system)
2714 (inputs
2715 `(("libpcap" ,libpcap)))
2716 (arguments
2717 '(#:test-target "regress"
b4bf9516
TGR
2718 #:make-flags
2719 (list "CC=gcc"
2720 (string-append "PREFIX=" (assoc-ref %outputs "out")))
d7c64ad5
LF
2721 #:phases
2722 (modify-phases %standard-phases
b4bf9516 2723 (delete 'configure) ; no ./configure script
d7c64ad5
LF
2724 (add-after 'unpack 'patch-path
2725 (lambda* (#:key outputs inputs #:allow-other-keys)
2726 (let* ((out (assoc-ref outputs "out"))
2727 (pcap (assoc-ref inputs "libpcap")))
2728 (substitute* "src/rawsock-pcap.c"
2729 (("libpcap.so") (string-append pcap "/lib/libpcap.so")))
2730 #t))))))
2731 (synopsis "TCP port scanner")
2732 (description "MASSCAN is an asynchronous TCP port scanner. It can detect
2733open ports, and also complete the TCP connection and interact with the remote
2734application, collecting the information received.")
2735 (home-page "https://github.com/robertdavidgraham/masscan")
b4bf9516
TGR
2736 ;; 'src/siphash24.c' is the SipHash reference implementation, which
2737 ;; bears a CC0 Public Domain Dedication.
d7c64ad5 2738 (license license:agpl3+)))
82d57f12
TGR
2739
2740(define-public hungrycat
2741 (package
2742 (name "hungrycat")
2743 (version "0.4.1")
2744 (source (origin
2745 (method url-fetch)
2746 (uri (string-append "https://github.com/jwilk/hungrycat/"
2747 "releases/download/" version "/"
e20796dc 2748 "hungrycat-" version ".tar.gz"))
82d57f12
TGR
2749 (sha256
2750 (base32
2751 "03fc1zsrf99lvxa7b4ps6pbi43304wbxh1f6ci4q0vkal370yfwh"))))
2752 (build-system gnu-build-system)
2753 (native-inputs
2754 ;; For tests.
2755 `(("python" ,python-wrapper)
2756 ("python-nose" ,python-nose)))
2757 (arguments
2758 `(#:test-target "test"))
2759 (synopsis "A single tool that combines @command{cat} & @command{rm}")
2760 (description
2761 "hungrycat prints the contents of a file to standard output, while
2762simultaneously freeing the disk space it occupied. It is useful if you need
2763to process a large file, don't have enough space to store both the input and
2764output files, and don't need the input file afterwards.
2765While similar in principle to running @command{cat} immediately followed by
2766@command{rm}, @command{hungrycat} actually frees blocks as soon as they are
2767printed instead of after the entire file has been read, which is often too
2768late.")
2769 (home-page "https://jwilk.net/software/hungrycat")
2770 (license license:expat)))
3ebf2c29
PAR
2771
2772(define-public launchmon
2773 (package
2774 (name "launchmon")
2775 (version "1.0.2")
2776 (source (origin
2777 (method url-fetch)
2778 (uri (string-append
2779 "https://github.com/LLNL/LaunchMON/releases/download/v"
f44eca94 2780 version "/launchmon-v" version ".tar.gz"))
3ebf2c29
PAR
2781 (sha256
2782 (base32
2783 "0fm3nd9mydm9v2bf7bh01dbgrfnpwkapxa3dsvy3x1z0rz61qc0x"))))
2784 (build-system gnu-build-system)
2785 (inputs
2786 `(("mpi" ,openmpi)
2787 ("munge" ,munge)
2788 ("boost" ,boost)
2789 ("libelf" ,libelf)
2790 ("libgcrypt" ,libgcrypt)
2791 ("libgpg-error" ,libgpg-error)))
2792 (synopsis "Infrastructue for large scale tool daemon launching")
2793 (description
2794 "LaunchMON is a software infrastructure that enables HPC run-time
2795tools to co-locate tool daemons with a parallel job. Its API allows a
2796tool to identify all the remote processes of a job and to scalably
2797launch daemons into the relevant nodes.")
2798 (home-page "https://github.com/LLNL/LaunchMON")
2799 (supported-systems '("i686-linux" "x86_64-linux"))
2800 (license license:lgpl2.1)))
541dac8a
PAR
2801
2802(define-public spindle
2803 (package
2804 (name "spindle")
2805 (version "0.10")
2806 (source (origin
2807 ;; We use git checkout to avoid github auto-generated tarballs
2808 (method git-fetch)
2809 (uri (git-reference
2810 (url "https://github.com/hpc/Spindle.git")
2811 (commit (string-append "v" version))))
2812 (file-name (git-file-name name version))
2813 (sha256
2814 (base32
2815 "15n3ay0qq81r5v7fif61q1vdjcq44pp2nynkh3fvbzc9fj3c39wd"))))
2816 (build-system gnu-build-system)
2817 (arguments '(#:configure-flags '("--enable-sec-launchmon"
2818 "--enable-sec-munge"
2819 "--enable-sec-none")))
2820 (inputs
2821 `(("mpi" ,openmpi)
2822 ("munge" ,munge)
2823 ("launchmon" ,launchmon)
2824 ("libgcrypt" ,libgcrypt)))
2825 (synopsis "Scalable library loading in HPC environments")
2826 (description
2827 "Spindle is a tool for improving the performance of dynamic library and
2828Python loading in HPC environments.")
2829 (home-page "https://github.com/hpc/Spindle")
785f40df
EF
2830 ;; This package supports x86_64 and PowerPC64
2831 (supported-systems '("x86_64-linux"))
541dac8a 2832 (license license:lgpl2.1)))
bbc94ed0
PN
2833
2834(define-public inxi-minimal
2835 (let ((real-name "inxi"))
2836 (package
2837 (name "inxi-minimal")
b990f986 2838 (version "3.0.33-1")
bbc94ed0
PN
2839 (source
2840 (origin
b740a305
TGR
2841 (method git-fetch)
2842 (uri (git-reference
2843 (url "https://github.com/smxi/inxi")
2844 (commit version)))
7458ceac 2845 (file-name (git-file-name real-name version))
bbc94ed0 2846 (sha256
b990f986 2847 (base32 "19bfdid4zp39irsdq3m6yyqf2336c30da35qgslrzcr2vh815g8c"))))
bbc94ed0
PN
2848 (build-system trivial-build-system)
2849 (inputs
a49bbaa6
EF
2850 `(("bash" ,bash-minimal)
2851 ("perl" ,perl)
2852 ("procps" ,procps)))
bbc94ed0 2853 (native-inputs
b740a305 2854 `(("gzip" ,gzip)))
bbc94ed0
PN
2855 (arguments
2856 `(#:modules
2857 ((guix build utils)
2858 (ice-9 match)
2859 (srfi srfi-26))
2860 #:builder
2861 (begin
2862 (use-modules (guix build utils)
2863 (ice-9 match)
2864 (srfi srfi-26))
2865 (setenv "PATH" (string-append
2866 (assoc-ref %build-inputs "bash") "/bin" ":"
2867 (assoc-ref %build-inputs "gzip") "/bin" ":"
b740a305
TGR
2868 (assoc-ref %build-inputs "perl") "/bin" ":"))
2869 (copy-recursively (assoc-ref %build-inputs "source")
2870 ,(string-append real-name "-" version))
bbc94ed0
PN
2871 (with-directory-excursion ,(string-append real-name "-" version)
2872 (with-fluids ((%default-port-encoding #f))
2873 (substitute* "inxi" (("/usr/bin/env perl") (which "perl"))))
2874 (let ((bin (string-append %output "/bin")))
2875 (install-file "inxi" bin)
2876 (wrap-program (string-append bin "/inxi")
2877 `("PATH" ":" =
2878 ("$PATH"
2879 ,@(map (lambda (input)
2880 (match input
2881 ((name . store)
2882 (let ((store-append
2883 (cut string-append store <>)))
2884 (cond
2885 ((member name '("util-linux"))
2886 (string-append (store-append "/bin") ":"
2887 (store-append "/sbin")))
2888 ((member name '("dmidecode" "iproute2"))
2889 (store-append "/sbin"))
2890 (else (store-append "/bin")))))))
2891 %build-inputs)))
2892 `("PERL5LIB" ":" =
2893 ,(delete
2894 ""
2895 (map (match-lambda
2896 (((? (cut string-prefix? "perl-" <>) name) . dir)
2897 (string-append dir "/lib/perl5/site_perl"))
2898 (_ ""))
2899 %build-inputs)))))
2900 (invoke "gzip" "inxi.1")
2901 (install-file "inxi.1.gz"
55f5556e 2902 (string-append %output "/share/man/man1")))
bbc94ed0
PN
2903 #t)))
2904 (home-page "https://smxi.org/docs/inxi.htm")
4ee41a6a 2905 (synopsis "Full-featured system information script")
bbc94ed0
PN
2906 (description "Inxi is a system information script that can display
2907various things about your hardware and software to users in an IRC chatroom or
4ee41a6a 2908support forum. It runs with the @code{/exec} command in most IRC clients.")
bbc94ed0
PN
2909 (license license:gpl3+))))
2910
2911(define-public inxi
2912 (package
2913 (inherit inxi-minimal)
2914 (name "inxi")
2915 (inputs
2916 `(("dmidecode" ,dmidecode)
2917 ("file" ,file)
2918 ("bind:utils" ,isc-bind "utils") ; dig
2919 ("gzip" ,gzip)
2920 ("iproute2" ,iproute) ; ip
2921 ("kmod" ,kmod) ; modinfo
2922 ("lm-sensors" ,lm-sensors)
2923 ("mesa-utils" ,mesa-utils)
2924 ("pciutils" ,pciutils)
bbc94ed0
PN
2925 ("tar" ,tar)
2926 ("tree" ,tree)
2927 ("util-linux" ,util-linux) ; lsblk
2928 ("usbutils" ,usbutils) ; lsusb
2929 ("wmctrl" ,wmctrl)
2930 ("xdpyinfo" ,xdpyinfo)
2931 ("xprop" ,xprop)
2932 ("xrandr" ,xrandr)
2933 ("coreutils" ,coreutils) ; uptime
2934 ("inetutils" ,inetutils) ; ifconfig
2935 ("perl-cpanel-json-xs" ,perl-cpanel-json-xs)
2936 ("perl-http-tiny" ,perl-http-tiny)
2937 ("perl-io-socket-ssl" ,perl-io-socket-ssl)
2938 ("perl-json-xs" ,perl-json-xs)
2939 ("perl-time-hires" ,perl-time-hires)
2940 ;; TODO: Add more inputs:
2941 ;; ipmi-sensors
2942 ;; hddtemp
2943 ;; perl-xml-dumper
2944 ;; ipmitool
2945 ,@(package-inputs inxi-minimal)))))
b19f3337
OP
2946
2947(define-public pscircle
2948 (package
2949 (name "pscircle")
50f28ac4 2950 (version "1.3.0")
b19f3337
OP
2951 (source
2952 (origin
494b702a
TGR
2953 (method git-fetch)
2954 (uri (git-reference
2955 (url "https://gitlab.com/mildlyparallel/pscircle.git")
2956 (commit (string-append "v" version))))
2957 (file-name (git-file-name name version))
b19f3337
OP
2958 (sha256
2959 (base32
50f28ac4 2960 "0qsif00dkqa8ky3vl2ycx5anx2yk62nrv47f5lrlqzclz91f00fx"))))
b19f3337
OP
2961 (build-system meson-build-system)
2962 (native-inputs
2963 `(("pkg-config" ,pkg-config)))
2964 (inputs
2965 `(("cairo" ,cairo)
2966 ("libpng" ,libpng)
2967 ("libx11" ,libx11)))
2968 (home-page "https://gitlab.com/mildlyparallel/pscircle")
2969 (synopsis "Visualize Linux processes in a form of radial tree")
2970 (description
2971 "@code{pscircle} visualizes Linux processes in the form of a radial tree.")
2972 (license license:gpl2+)))
ac94ccb9
DM
2973
2974(define-public python-pyudev
2975 (package
2976 (name "python-pyudev")
2977 (version "0.21.0")
2978 (source
2979 (origin
2980 (method url-fetch)
2981 (uri (pypi-uri "pyudev" version))
2982 (sha256
2983 (base32
2984 "0arz0dqp75sszsmgm6vhg92n1lsx91ihddx3m944f4ah0487ljq9"))))
2985 (build-system python-build-system)
2986 (arguments
2987 `(#:tests? #f ; Tests require /sys
2988 #:phases
2989 (modify-phases %standard-phases
2990 (add-after 'unpack 'patch-ctypes-udev
2991 (lambda* (#:key inputs outputs #:allow-other-keys)
2992 (let ((eudev (assoc-ref inputs "eudev")))
2993 (substitute* "src/pyudev/core.py"
2994 (("'udev'")
2995 (string-append "'" eudev "/lib/libudev.so'")))
2996 (substitute* "src/pyudev/_ctypeslib/utils.py"
2997 ;; Use absolute paths instead of keys.
2998 (("= find_library") "= "))
2999 #t))))))
3000 (inputs
3001 `(("eudev" ,eudev)))
cbb1b168
RJ
3002 (propagated-inputs
3003 `(("python-six" ,python-six)))
ac94ccb9
DM
3004 (native-inputs
3005 `(("python-docutils" ,python-docutils)
3006 ("python-hypothesis" ,python-hypothesis)
3007 ("python-mock" ,python-mock)
3008 ("python-pytest" ,python-pytest)
3009 ("python-sphinx" ,python-sphinx)))
3010 (home-page "http://pyudev.readthedocs.org/")
3011 (synopsis "Python udev binding")
3012 (description "This package provides @code{udev} bindings for Python.")
3013 (license license:lgpl2.1)))
15c56e82
DM
3014
3015(define-public solaar
3016 (package
3017 (name "solaar")
3018 (version "0.9.2")
3019 (source (origin
3020 (method git-fetch)
3021 (uri (git-reference
3022 (url "https://github.com/pwr/Solaar.git")
3023 (commit version)))
3024 (file-name (git-file-name name version))
3025 (sha256
3026 (base32
3027 "085mfa13dap3wqik1dqlad0d7kff4rv7j4ljh99c7l8nhczkqgwm"))))
3028 (build-system python-build-system)
3029 (arguments
3030 `(#:phases
3031 (modify-phases %standard-phases
3032 (add-after 'unpack 'fix-prefix-detection
3033 (lambda _
3034 (substitute* "setup.py"
3035 (("'--prefix' in sys\\.argv")
3036 "len([x.startswith('--prefix=') for x in sys.argv]) > 0"))
3037 #t))
3038 (replace 'build
3039 (lambda _
3040 (invoke "python" "setup.py" "build")))
3041 (add-before 'check 'setenv-PATH
3042 (lambda _
3043 (setenv "PYTHONPATH" (string-append "lib:" (getenv "PYTHONPATH")))
3044 #t)))))
3045 (propagated-inputs
3046 `(("python-pygobject" ,python-pygobject)
3047 ("python-pyudev" ,python-pyudev)))
3048 (home-page "https://smxi.org/docs/inxi.htm")
3049 (synopsis "Linux devices manager for the Logitech Unifying Receiver")
3050 (description "This package provides tools to manage clients of the
3051Logitech Unifying Receiver.")
3052 (license license:gpl2)))
4d26987d
AI
3053
3054(define-public lynis
3055 (package
3056 (name "lynis")
112dc8eb 3057 ;; Also update the ‘lynis-sdk’ input to the commit matching this release.
ef93b55e 3058 (version "2.7.4")
4d26987d
AI
3059 (source
3060 (origin
3061 (method git-fetch)
3062 (uri (git-reference
3063 (url "https://github.com/CISOfy/lynis")
3064 (commit version)))
3065 (file-name (git-file-name name version))
3066 (sha256
ef93b55e 3067 (base32 "1jjk5hcxmp4f4ppsljiq95l2ln6b03azydap3b35lsvxkjybv88k"))
4d26987d
AI
3068 (modules '((guix build utils)))
3069 (snippet
3070 '(begin
3071 ;; Remove proprietary plugins. As of now, all plugins supplied with
3072 ;; lynis are proprietary. In the future, if free plugins are
3073 ;; provided, whitelist them from deletion.
3074 (for-each delete-file (find-files "plugins"))
3075 #t))))
3076 (build-system gnu-build-system)
3077 (native-inputs
3078 `(;; For tests
3079 ("lynis-sdk"
3080 ,(origin
3081 (method git-fetch)
3082 (uri (git-reference
3083 (url "https://github.com/CISOfy/lynis-sdk")
ef93b55e 3084 (commit "90f301e21c204792cf372f1cf05890a562f2e31b")))
4d26987d
AI
3085 (file-name (git-file-name "lynis-sdk" version))
3086 (sha256
ef93b55e 3087 (base32 "1d0smr1fxrvbc3hl8lzy33im9ahzr0hgs3kk09r8g8xccjkcm52l"))))))
4d26987d
AI
3088 (arguments
3089 `(#:phases
3090 (modify-phases %standard-phases
3091 (replace 'configure
3092 (lambda* (#:key inputs outputs #:allow-other-keys)
3093 (substitute* "lynis"
3094 (("/usr/share/lynis")
3095 (string-append (assoc-ref outputs "out") "/share/lynis")))
3096 (substitute* "include/functions"
3097 (("/usr/local/etc/lynis")
3098 (string-append (assoc-ref outputs "out") "/etc/lynis")))
3099 #t))
3100 (delete 'build)
3101 (replace 'install
3102 (lambda* (#:key outputs #:allow-other-keys)
3103 (let ((out (assoc-ref outputs "out")))
3104 (install-file "lynis" (string-append out "/bin/"))
3105 (install-file "default.prf" (string-append out "/etc/lynis"))
3106 (for-each
3107 (lambda (dir)
3108 (copy-recursively dir (string-append out "/share/lynis/" dir)))
3109 (list "db" "include" "plugins"))
3110 (install-file "lynis.8" (string-append out "/share/man/man8"))
3111 #t)))
3112 (replace 'check
3113 (lambda* (#:key inputs #:allow-other-keys)
3114 (copy-recursively (assoc-ref inputs "lynis-sdk") "../lynis-sdk")
3115 (setenv "LANG" "en_US.UTF-8")
3116 (let ((lynis-dir (getcwd)))
3117 (with-directory-excursion "../lynis-sdk"
3118 (substitute* "config"
3119 (("\\.\\./lynis") lynis-dir))
3120 (substitute* "unit-tests/tests-language-translations.sh"
3121 (("\\.\\./lynis") lynis-dir))
3122 (invoke "sh" "lynis-devkit" "run" "unit-tests"))))))))
3123 (home-page "https://cisofy.com/lynis/")
3124 (synopsis "Security auditing tool")
3125 (description "Lynis is a security auditing tool. It performs an in-depth
3126security scan and runs on the system itself. The primary goal is to test
3127security defenses and provide tips for further system hardening. It will also
3128scan for general system information, vulnerable software packages, and
3129possible configuration issues.")
3130 (license license:gpl3+)))
2eddeeba
PN
3131
3132(define-public ngrep
3133 (package
3134 (name "ngrep")
3135 (version "1.47")
3136 (source
3137 (origin
3138 (method git-fetch)
3139 (uri (git-reference
3140 (url "https://github.com/jpr5/ngrep/")
3141 (commit (string-append "V" (string-replace-substring version "." "_")))))
3142 (file-name (git-file-name name version))
3143 (sha256
3144 (base32
3145 "1x2fyd7wdqlj1r76ilal06cl2wmbz0ws6i3ys204sbjh1cj6dcl7"))))
3146 (build-system gnu-build-system)
3147 (inputs
3148 `(("libpcap" ,libpcap)))
3149 (arguments
3150 `(#:tests? #f ;; No tests.
3151 #:configure-flags (list (string-append "--with-pcap-includes="
3152 (assoc-ref %build-inputs "libpcap")
3153 "/include/pcap"))))
3154 (home-page "https://github.com/jpr5/ngrep/")
3155 (synopsis "Grep-like utility to search for network packets on an interface")
3156 (description "@command{ngrep} is like GNU grep applied to the network
3157layer. It's a PCAP-based tool that allows you to specify an extended regular
3158or hexadecimal expression to match against data payloads of packets. It
3159understands many kinds of protocols, including IPv4/6, TCP, UDP, ICMPv4/6,
3160IGMP and Raw, across a wide variety of interface types, and understands BPF
3161filter logic in the same fashion as more common packet sniffing tools, such as
3162tcpdump and snoop.")
3163 (license license:bsd-3)))