gnu: htop: Update to 2.0.2.
[jackhill/guix/guix.git] / gnu / packages / admin.scm
CommitLineData
233e7676 1;;; GNU Guix --- Functional package management for GNU
7b78f359 2;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
340c7033 3;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
75418ae0 4;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
2328b47c 5;;; Copyright © 2014, 2015, 2016 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>
765973cd 9;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
f1957fc1 10;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl>
3d7a157c 11;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
2f9862ff 12;;; Copyright © 2016 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>
1df895b0 15;;;
233e7676 16;;; This file is part of GNU Guix.
1df895b0 17;;;
233e7676 18;;; GNU Guix is free software; you can redistribute it and/or modify it
1df895b0
LC
19;;; under the terms of the GNU General Public License as published by
20;;; the Free Software Foundation; either version 3 of the License, or (at
21;;; your option) any later version.
22;;;
233e7676 23;;; GNU Guix is distributed in the hope that it will be useful, but
1df895b0
LC
24;;; WITHOUT ANY WARRANTY; without even the implied warranty of
25;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26;;; GNU General Public License for more details.
27;;;
28;;; You should have received a copy of the GNU General Public License
233e7676 29;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
1df895b0 30
4aeea896 31(define-module (gnu packages admin)
f61e0e79 32 #:use-module ((guix licenses) #:prefix license:)
1df895b0 33 #:use-module (guix packages)
4fb7e0de 34 #:use-module (guix utils)
1df895b0 35 #:use-module (guix download)
aaff68ee 36 #:use-module (guix git-download)
fbc1a58f 37 #:use-module (guix build-system cmake)
1df895b0 38 #:use-module (guix build-system gnu)
4ecfbda7 39 #:use-module (guix build-system python)
c773aba8 40 #:use-module (guix build-system trivial)
59a43334 41 #:use-module (gnu packages)
c73d4c92 42 #:use-module (gnu packages base)
3d7a157c 43 #:use-module (gnu packages cyrus-sasl)
9a9e72d5 44 #:use-module (gnu packages ncurses)
9927622f 45 #:use-module (gnu packages readline)
f15164e7 46 #:use-module (gnu packages linux)
d0457553 47 #:use-module (gnu packages lua)
f15164e7 48 #:use-module (gnu packages guile)
1dba6407 49 #:use-module (gnu packages gettext)
d0457553 50 #:use-module (gnu packages pcre)
c73d4c92 51 #:use-module (gnu packages perl)
87216303 52 #:use-module (gnu packages tcl)
f61e0e79 53 #:use-module (gnu packages compression)
a7fd7b68 54 #:use-module (gnu packages tls)
61bdd0d8 55 #:use-module (gnu packages gnupg)
02c86a5e
LC
56 #:use-module (gnu packages bison)
57 #:use-module (gnu packages flex)
58 #:use-module (gnu packages glib)
3d7a157c 59 #:use-module (gnu packages openldap)
c1f73569 60 #:use-module (gnu packages mcrypt)
87216303 61 #:use-module (gnu packages pkg-config)
b36fcf95 62 #:use-module (gnu packages popt)
1a0346f0 63 #:use-module (gnu packages python)
fccf2fe0 64 #:use-module (gnu packages texinfo)
e1485c7b 65 #:use-module (gnu packages groff)
42dc3af5
MW
66 #:use-module (gnu packages pciutils)
67 #:use-module (gnu packages libusb)
68 #:use-module (gnu packages libftdi)
c4492a16 69 #:use-module (gnu packages image)
da6c3749 70 #:use-module (gnu packages xorg)
d525da85 71 #:use-module (gnu packages python)
e932d371
LC
72 #:use-module (gnu packages man)
73 #:use-module (gnu packages autotools))
f15164e7 74
c1f73569
RW
75(define-public aide
76 (package
77 (name "aide")
78 (version "0.15.1")
79 (source (origin
80 (method url-fetch)
81 (uri (string-append "mirror://sourceforge/aide/aide/"
82 version "/aide-" version ".tar.gz"))
83 (sha256
84 (base32
85 "1vsrc0s62kv1i84skm6k6zy868gayjck268qwj38rpspc8c5qgih"))))
86 (build-system gnu-build-system)
87 (native-inputs
88 `(("bison" ,bison)
89 ("flex" ,flex)))
90 (inputs
91 `(("libgcrypt" ,libgcrypt)
92 ("libgpg-error" ,libgpg-error)
93 ("libmhash" ,libmhash)
94 ("zlib" ,zlib)))
95 (synopsis "File and directory integrity checker")
96 (description
97 "AIDE (Advanced Intrusion Detection Environment) is a file and directory
98integrity checker. It creates a database from the regular expression rules
99that it finds from its configuration files. Once this database is initialized
100it can be used to verify the integrity of the files. It has several message
101digest algorithms that are used to check the integrity of files. All of the
102usual file attributes can be checked for inconsistencies.")
103 (home-page "http://aide.sourceforge.net/")
104 (license license:gpl2+)))
105
4971d5d0
RJ
106(define-public progress
107 (package
108 (name "progress")
109 (version "0.13")
110 (source (origin
111 (method url-fetch)
112 (uri (string-append "https://github.com/Xfennec/"
113 name "/archive/v" version ".tar.gz"))
114 (sha256
115 (base32 "133iar4vq5vlklydb4cyazjy6slmpbndrws474mg738bd8avc30n"))
116 (file-name (string-append name "-" version ".tar.gz"))))
117 (build-system gnu-build-system)
118 (inputs
119 `(("ncurses" ,ncurses)))
120 (arguments
121 `(#:tests? #f ; There is no test suite.
122 #:make-flags (list "CC=gcc" "LDFLAGS+=-lncurses"
123 (string-append "PREFIX=" (assoc-ref %outputs "out")))
124 #:phases
125 (modify-phases %standard-phases
126 (delete 'configure)))) ; There's no configure phase.
127 (home-page "https://github.com/Xfennec/progress")
128 (synopsis "Program to view the progress of the coreutils commands")
129 (description "A program that looks for coreutils basic commands (cp, mv,
130dd, tar, gzip/gunzip, cat, etc.) currently running on your system and displays
131the percentage of copied data. It can also show estimated time and throughput,
132and provides a \"top-like\" mode (monitoring).")
133 (license license:gpl3+)))
134
e932d371 135(define-public shepherd
133056bd
LC
136 (package
137 (name "shepherd")
ee37e1e5 138 (version "0.3.1")
133056bd
LC
139 (source (origin
140 (method url-fetch)
141 (uri (string-append "ftp://alpha.gnu.org/gnu/dmd/shepherd-"
142 version ".tar.gz"))
143 (sha256
144 (base32
ee37e1e5 145 "0f3yi3n4sl9myiay95yhv2a9an338qddfjrbv7da753ip66dkfz6"))))
133056bd
LC
146 (build-system gnu-build-system)
147 (arguments
148 '(#:configure-flags '("--localstatedir=/var")))
149 (native-inputs `(("pkg-config" ,pkg-config)))
150 (inputs `(("guile" ,guile-2.0)))
151 (synopsis "System service manager")
152 (description
153 "The GNU Shepherd is a daemon-managing daemon, meaning that it supervises
154the execution of system services, replacing similar functionality found in
155typical init systems. It provides dependency-handling through a convenient
156interface and is based on GNU Guile.")
157 (license license:gpl3+)
158 (home-page "http://www.gnu.org/software/shepherd/")))
e932d371 159
fbc1a58f
CR
160(define-public dfc
161 (package
162 (name "dfc")
180d7ac1 163 (version "3.0.4")
fbc1a58f
CR
164 (source
165 (origin
166 (method url-fetch)
167 (uri (string-append
180d7ac1 168 "http://projects.gw-computing.net/attachments/download/79/dfc-"
fbc1a58f
CR
169 version ".tar.gz"))
170 (sha256
171 (base32
180d7ac1 172 "0zk1ppx93ijimf4sbgqilxxikpsa2gmpbynknyh41xy7jbdjxp0b"))))
fbc1a58f
CR
173 (build-system cmake-build-system)
174 (arguments '(#:tests? #f)) ; There are no tests.
1dba6407 175 (native-inputs `(("gettext" ,gnu-gettext)))
fbc1a58f
CR
176 (home-page "http://projects.gw-computing.net/projects/dfc")
177 (synopsis "Display file system space usage using graphs and colors")
178 (description
179 "dfc (df color) is a modern version of df. It uses colors, draws pretty
180graphs and can export its output to different formats.")
f61e0e79 181 (license license:bsd-3)))
fbc1a58f 182
340c7033
CR
183(define-public htop
184 (package
185 (name "htop")
621954ba 186 (version "2.0.2")
340c7033
CR
187 (source (origin
188 (method url-fetch)
20e6c852 189 (uri (string-append "http://hisham.hm/htop/releases/"
340c7033
CR
190 version "/htop-" version ".tar.gz"))
191 (sha256
192 (base32
621954ba 193 "11zlwadm6dpkrlfvf3z3xll26yyffa7qrxd1w72y1kl0rgffk6qp"))))
340c7033
CR
194 (build-system gnu-build-system)
195 (inputs
196 `(("ncurses" ,ncurses)))
197 (home-page "http://htop.sourceforge.net/")
198 (synopsis "Interactive process viewer")
199 (description
200 "This is htop, an interactive process viewer. It is a text-mode
201application (for console or X terminals) and requires ncurses.")
f61e0e79 202 (license license:gpl2)))
340c7033 203
1df895b0
LC
204(define-public pies
205 (package
206 (name "pies")
207 (version "1.2")
208 (source
209 (origin
210 (method url-fetch)
211 (uri (string-append "mirror://gnu/pies/pies-"
212 version ".tar.bz2"))
213 (sha256
214 (base32
215 "18w0dbg77i56cx1bwa789w0qi3l4xkkbascxcv2b6gbm0zmjg1g6"))))
216 (build-system gnu-build-system)
217 (home-page "http://www.gnu.org/software/pies/")
f50d2669 218 (synopsis "Program invocation and execution supervisor")
1df895b0 219 (description
79c311b8 220 "GNU pies is a program that supervises the invocation and execution of
a22dc0c4
LC
221other programs. It reads the list of programs to be started from its
222configuration file, executes them, and then monitors their status,
223re-executing them as necessary.")
f61e0e79 224 (license license:gpl3+)))
1df895b0
LC
225
226(define-public inetutils
227 (package
228 (name "inetutils")
8b1c8e4e 229 (version "1.9.4")
01eafd38
LC
230 (source (origin
231 (method url-fetch)
232 (uri (string-append "mirror://gnu/inetutils/inetutils-"
233 version ".tar.gz"))
234 (sha256
235 (base32
8b1c8e4e 236 "05n65k4ixl85dc6rxc51b1b732gnmm8xnqi424dy9f1nz7ppb3xy"))))
1df895b0 237 (build-system gnu-build-system)
01eafd38 238 (arguments `(;; FIXME: `tftp.sh' relies on `netstat' from utils-linux,
1df895b0
LC
239 ;; which is currently missing.
240 #:tests? #f))
9927622f
LC
241 (inputs `(("ncurses" ,ncurses)
242 ("readline" ,readline))) ; for 'ftp'
1df895b0 243 (home-page "http://www.gnu.org/software/inetutils/")
f50d2669 244 (synopsis "Basic networking utilities")
1df895b0 245 (description
a22dc0c4
LC
246 "Inetutils is a collection of common network programs, such as an ftp
247client and server, a telnet client and server, and an rsh client and server.")
f61e0e79 248 (license license:gpl3+)))
9a9e72d5
LC
249
250(define-public shadow
251 (package
252 (name "shadow")
ca2a55d4 253 (version "4.2.1")
9a9e72d5 254 (source (origin
ca2a55d4
SB
255 (method url-fetch)
256 (uri (string-append
257 "http://pkg-shadow.alioth.debian.org/releases/"
258 name "-" version ".tar.xz"))
259 (sha256
260 (base32
261 "0h9x1zdbq0pqmygmc1x459jraiqw4gqz8849v268crk78z8r621v"))))
9a9e72d5
LC
262 (build-system gnu-build-system)
263 (arguments
264 '(;; Assume System V `setpgrp (void)', which is the default on GNU
265 ;; variants (`AC_FUNC_SETPGRP' is not cross-compilation capable.)
266 #:configure-flags '("--with-libpam" "ac_cv_func_setpgrp_void=yes")
267
268 #:phases (alist-cons-before
269 'build 'set-nscd-file-name
270 (lambda* (#:key inputs #:allow-other-keys)
271 ;; Use the right file name for nscd.
272 (let ((libc (assoc-ref inputs "libc")))
273 (substitute* "lib/nscd.c"
274 (("/usr/sbin/nscd")
275 (string-append libc "/sbin/nscd")))))
276 (alist-cons-after
277 'install 'remove-groups
278 (lambda* (#:key outputs #:allow-other-keys)
279 ;; Remove `groups', which is already provided by Coreutils.
280 (let* ((out (assoc-ref outputs "out"))
281 (bin (string-append out "/bin"))
ca2a55d4 282 (man (string-append out "/share/man")))
9a9e72d5
LC
283 (delete-file (string-append bin "/groups"))
284 (for-each delete-file (find-files man "^groups\\."))
285 #t))
8d846470 286 %standard-phases))))
9a9e72d5
LC
287
288 (inputs (if (string-suffix? "-linux"
289 (or (%current-target-system)
290 (%current-system)))
291 `(("linux-pam" ,linux-pam))
292 '()))
293 (home-page "http://pkg-shadow.alioth.debian.org/")
294 (synopsis "Authentication-related tools such as passwd, su, and login")
295 (description
296 "Shadow provides a number of authentication-related tools, including:
297login, passwd, su, groupadd, and useradd.")
298
299 ;; The `vipw' program is GPLv2+.
300 ;; libmisc/salt.c is public domain.
f61e0e79 301 (license license:bsd-3)))
1e151896
LC
302
303(define-public mingetty
304 (package
305 (name "mingetty")
306 (version "1.08")
307 (source (origin
308 (method url-fetch)
de67e922
LF
309 (uri (string-append "mirror://sourceforge/mingetty/mingetty/"
310 version "/mingetty-" version ".tar.gz"))
1e151896
LC
311 (sha256
312 (base32
313 "05yxrp44ky2kg6qknk1ih0kvwkgbn9fbz77r3vci7agslh5wjm8g"))))
314 (build-system gnu-build-system)
315 (arguments
316 `(#:phases (alist-replace 'configure
317 (lambda* (#:key inputs outputs
318 #:allow-other-keys)
319 (let* ((out (assoc-ref outputs "out"))
320 (man8 (string-append
321 out "/share/man/man8"))
322 (sbin (string-append out "/sbin"))
323 (shadow (assoc-ref inputs "shadow"))
324 (login (string-append shadow
325 "/bin/login")))
326 (substitute* "Makefile"
327 (("^SBINDIR.*")
328 (string-append "SBINDIR = " out
329 "/sbin\n"))
330 (("^MANDIR.*")
331 (string-append "MANDIR = " out
332 "/share/man/man8\n")))
333
334 ;; Pick the right 'login' by default.
335 (substitute* "mingetty.c"
336 (("\"/bin/login\"")
337 (string-append "\"" login "\"")))
338
339 (mkdir-p sbin)
340 (mkdir-p man8)))
341 %standard-phases)
342 #:tests? #f)) ; no tests
343 (inputs `(("shadow" ,shadow)))
344
345 (home-page "http://sourceforge.net/projects/mingetty")
346 (synopsis "Getty for the text console")
347 (description
348 "Small console getty that is started on the Linux text console,
349asks for a login name and then transfers over to 'login'. It is extended to
350allow automatic login and starting any app.")
f61e0e79 351 (license license:gpl2+)))
c773aba8
LC
352
353(define-public net-base
354 (package
355 (name "net-base")
db719df7 356 (version "5.3")
c773aba8
LC
357 (source (origin
358 (method url-fetch)
359 (uri (string-append
34af3684 360 "mirror://debian/pool/main/n/netbase/netbase_"
db719df7 361 version ".tar.xz"))
c773aba8
LC
362 (sha256
363 (base32
db719df7 364 "12xqjwg3p4rzmmh2iib6sigm9l29y3dgk74mmnw64k84jnbwdxl1"))))
c773aba8
LC
365 (build-system trivial-build-system)
366 (arguments
367 `(#:modules ((guix build utils))
368 #:builder (begin
369 (use-modules (guix build utils)
370 (srfi srfi-26))
371
372 (let* ((source (assoc-ref %build-inputs "source"))
373 (tar (assoc-ref %build-inputs "tar"))
db719df7 374 (xz (assoc-ref %build-inputs "xz"))
c773aba8
LC
375 (output (assoc-ref %outputs "out"))
376 (etc (string-append output "/etc")))
db719df7 377 (setenv "PATH" (string-append xz "/bin"))
c773aba8
LC
378 (system* (string-append tar "/bin/tar") "xvf"
379 source)
380 (chdir ,(string-append "netbase-" version))
381 (mkdir-p etc)
382 (for-each copy-file
383 '("etc-services" "etc-protocols" "etc-rpc")
384 (map (cut string-append etc "/" <>)
385 '("services" "protocols" "rpc")))
386 #t))))
387 (native-inputs `(("tar" ,tar)
f61e0e79 388 ("xz" ,xz)))
c773aba8
LC
389 (synopsis "IANA protocol, port, and RPC number assignments")
390 (description
391 "This package provides the /etc/services, /etc/protocols, and /etc/rpc
392files, which contain information about the IANA-assigned port, protocol, and
e881752c 393ONC RPC numbers.")
c773aba8 394 (home-page "http://packages.debian.org/sid/netbase")
f61e0e79 395 (license license:gpl2)))
94c4a58a
LC
396
397(define-public netcat
398 (package
399 (name "netcat")
400 (version "0.7.1")
401 (source (origin
402 (method url-fetch)
de67e922
LF
403 (uri (string-append "mirror://sourceforge/netcat/netcat/" version
404 "/netcat-" version ".tar.bz2"))
94c4a58a
LC
405 (sha256
406 (base32
407 "1frjcdkhkpzk0f84hx6hmw5l0ynpmji8vcbaxg8h5k2svyxz0nmm"))))
408 (build-system gnu-build-system)
0e4e89c2
MW
409 (arguments
410 `(#:configure-flags
411 ;; By default, man and info pages are put in PREFIX/{man,info},
412 ;; but we want them in PREFIX/share/{man,info}.
413 (let ((out (assoc-ref %outputs "out")))
414 (list (string-append "--mandir=" out "/share/man")
415 (string-append "--infodir=" out "/share/info")))))
94c4a58a
LC
416 (home-page "http://netcat.sourceforge.net")
417 (synopsis "Read and write data over TCP/IP")
418 (description
419 "Netcat is a featured networking utility which reads and writes data
420across network connections, using the TCP/IP protocol. It is designed to be a
421reliable \"back-end\" tool that can be used directly or easily driven by other
35b9e423 422programs and scripts. At the same time, it is a feature-rich network debugging
94c4a58a
LC
423and exploration tool, since it can create almost any kind of connection you
424would need and has several interesting built-in capabilities.")
f61e0e79 425 (license license:gpl2+)))
d038cac1
LC
426
427(define-public alive
428 (package
429 (name "alive")
430 (version "2.0.2")
431 (source (origin
432 (method url-fetch)
433 (uri (string-append "mirror://gnu/alive/alive-"
434 version ".tar.xz"))
435 (sha256
436 (base32
437 "1vrzg51ai68x9yld7vbgl58sxaw5qpx8rbakwcxn4cqq6vpxj38j"))))
438 (build-system gnu-build-system)
439 (arguments '(#:configure-flags '("alive_cv_nice_ping=yes")))
440 (inputs `(("guile" ,guile-2.0)
441 ("inetutils" ,inetutils)))
442 (home-page "http://www.gnu.org/software/alive/")
443 (synopsis "Autologin and keep-alive daemon")
444 (description
445 "GNU Alive sends periodic pings to a server, generally to keep a
446connection alive.")
f61e0e79 447 (license license:gpl3+)))
c73d4c92
LC
448
449(define-public isc-dhcp
6548b1e1
MW
450 (let* ((bind-major-version "9")
451 (bind-minor-version "9")
ef3b9047
MW
452 (bind-patch-version "9")
453 (bind-release-type "") ; for patch release, use "-P"
454 (bind-release-version "") ; for patch release, e.g. "4"
6548b1e1
MW
455 (bind-version (string-append bind-major-version
456 "."
457 bind-minor-version
458 "."
459 bind-patch-version
460 bind-release-type
461 bind-release-version)))
462 (package
463 (name "isc-dhcp")
ef3b9047 464 (version "4.3.4")
6548b1e1
MW
465 (source (origin
466 (method url-fetch)
467 (uri (string-append "http://ftp.isc.org/isc/dhcp/"
468 version "/dhcp-" version ".tar.gz"))
469 (sha256
470 (base32
ef3b9047 471 "0zk0imll6bfyp9p4ndn8h6s4ifijnw5bhixswifr5rnk7pp5l4gm"))))
6548b1e1
MW
472 (build-system gnu-build-system)
473 (arguments
e54465ff
MW
474 `(#:parallel-build? #f
475 #:phases
6548b1e1
MW
476 (modify-phases %standard-phases
477 (add-after 'unpack 'replace-bundled-bind
478 (lambda* (#:key inputs #:allow-other-keys)
479 (delete-file "bind/bind.tar.gz")
480 (copy-file (assoc-ref inputs "bind-source-tarball")
481 "bind/bind.tar.gz")
482 (chmod "bind/bind.tar.gz" #o644)
483 (substitute* "bind/version.tmp"
484 (("^MAJORVER=.*")
485 (format #f "MAJORVER=~a\n" ,bind-major-version))
486 (("^MINORVER=.*")
487 (format #f "MINORVER=~a\n" ,bind-minor-version))
488 (("^PATCHVER=.*")
489 (format #f "PATCHVER=~a\n" ,bind-patch-version))
490 (("^RELEASETYPE=.*")
491 (format #f "RELEASETYPE=~a\n" ,bind-release-type))
492 (("^RELEASEVER=.*")
493 (format #f "RELEASEVER=~a\n" ,bind-release-version)))
494 #t))
495 (add-after 'configure 'post-configure
496 (lambda* (#:key outputs #:allow-other-keys)
497 ;; Point to the right client script, which will be
498 ;; installed in a later phase.
499 (substitute* "includes/dhcpd.h"
500 (("#define[[:blank:]]+_PATH_DHCLIENT_SCRIPT.*")
501 (let ((out (assoc-ref outputs "out")))
502 (string-append "#define _PATH_DHCLIENT_SCRIPT \""
503 out "/libexec/dhclient-script"
504 "\"\n"))))
c73d4c92 505
6548b1e1
MW
506 ;; During the 'build' phase, 'bind.tar.gz' is extracted, so
507 ;; we must patch shebangs in there and make sure the right
508 ;; shell is used.
509 (with-directory-excursion "bind"
510 (substitute* "Makefile"
511 (("\\./configure")
512 (let ((sh (which "sh")))
513 (string-append "./configure CONFIG_SHELL="
514 sh " SHELL=" sh))))
c73d4c92 515
6548b1e1
MW
516 (let ((bind-directory (string-append "bind-" ,bind-version)))
517 (system* "tar" "xf" "bind.tar.gz")
518 (for-each patch-shebang
519 (find-files bind-directory ".*"))
520 (zero? (system* "tar" "cf" "bind.tar.gz"
521 bind-directory
522 ;; avoid non-determinism in the archive
523 "--sort=name"
524 "--mtime=@0"
525 "--owner=root:0"
526 "--group=root:0"))))))
527 (add-after 'install 'post-install
528 (lambda* (#:key inputs outputs #:allow-other-keys)
529 ;; Install the dhclient script for GNU/Linux and make sure
530 ;; if finds all the programs it needs.
531 (let* ((out (assoc-ref outputs "out"))
532 (libexec (string-append out "/libexec"))
533 (coreutils (assoc-ref inputs "coreutils"))
534 (inetutils (assoc-ref inputs "inetutils"))
535 (net-tools (assoc-ref inputs "net-tools"))
536 (sed (assoc-ref inputs "sed")))
537 (substitute* "client/scripts/linux"
538 (("/sbin/ip")
539 (string-append (assoc-ref inputs "iproute")
540 "/sbin/ip")))
c73d4c92 541
6548b1e1
MW
542 (mkdir-p libexec)
543 (copy-file "client/scripts/linux"
544 (string-append libexec "/dhclient-script"))
c73d4c92 545
6548b1e1
MW
546 (wrap-program
547 (string-append libexec "/dhclient-script")
548 `("PATH" ":" prefix
549 ,(map (lambda (dir)
550 (string-append dir "/bin:"
551 dir "/sbin"))
552 (list inetutils net-tools coreutils sed))))))))))
c73d4c92 553
6548b1e1 554 (native-inputs `(("perl" ,perl)))
c73d4c92 555
6548b1e1
MW
556 (inputs `(("inetutils" ,inetutils)
557 ("net-tools" ,net-tools)
558 ("iproute" ,iproute)
dc343935 559
6548b1e1
MW
560 ;; XXX isc-dhcp bundles a copy of bind that has security
561 ;; flaws, so we use a newer version.
562 ("bind-source-tarball"
563 ,(origin
564 (method url-fetch)
565 (uri (string-append "http://ftp.isc.org/isc/bind9/"
566 bind-version
567 "/bind-" bind-version ".tar.gz"))
568 (sha256
569 (base32
ef3b9047 570 "0w8qqm6p2y6x57j2l0a3278g173wd84dsr4py9z00191f3wra74q"))))
c73d4c92 571
6548b1e1
MW
572 ;; When cross-compiling, we need the cross Coreutils and sed.
573 ;; Otherwise just use those from %FINAL-INPUTS.
574 ,@(if (%current-target-system)
575 `(("coreutils" ,coreutils)
576 ("sed" ,sed))
577 '())))
578
579 (home-page "http://www.isc.org/products/DHCP/")
580 (synopsis "Dynamic Host Configuration Protocol (DHCP) tools")
581 (description
582 "ISC's Dynamic Host Configuration Protocol (DHCP) distribution provides a
c73d4c92
LC
583reference implementation of all aspects of DHCP, through a suite of DHCP
584tools: server, client, and relay agent.")
159a5e01
LC
585 (license license:isc)
586 (properties '((cpe-name . "dhcp"))))))
02c86a5e
LC
587
588(define-public libpcap
589 (package
590 (name "libpcap")
42e8f734 591 (version "1.7.4")
02c86a5e
LC
592 (source (origin
593 (method url-fetch)
594 (uri (string-append "http://www.tcpdump.org/release/libpcap-"
595 version ".tar.gz"))
596 (sha256
597 (base32
42e8f734 598 "1c28ykkizd7jqgzrfkg7ivqjlqs9p6lygp26bsw2i0z8hwhi3lvs"))))
02c86a5e
LC
599 (build-system gnu-build-system)
600 (native-inputs `(("bison" ,bison) ("flex" ,flex)))
e03f6d5e
RW
601 (arguments '(#:configure-flags '("--with-pcap=linux")
602 #:tests? #f)) ; no 'check' target
02c86a5e
LC
603 (home-page "http://www.tcpdump.org")
604 (synopsis "Network packet capture library")
605 (description
606 "libpcap is an interface for user-level packet capture. It provides a
607portable framework for low-level network monitoring. Applications include
608network statistics collection, security monitoring, network debugging, etc.")
609
610 ;; fad-*.c and a couple other files are BSD-4, but the rest is BSD-3.
f61e0e79 611 (license license:bsd-3)))
02c86a5e 612
1da34f5a
LC
613(define-public tcpdump
614 (package
615 (name "tcpdump")
6e32aa56 616 (version "4.7.4")
1da34f5a
LC
617 (source (origin
618 (method url-fetch)
619 (uri (string-append "http://www.tcpdump.org/release/tcpdump-"
620 version ".tar.gz"))
621 (sha256
622 (base32
6e32aa56 623 "1byr8w6grk08fsq0444jmcz9ar89lq9nf4mjq2cny0w9k8k21rbb"))))
1da34f5a 624 (build-system gnu-build-system)
10db1e6c 625 (inputs `(("libpcap" ,libpcap)
cc2b77df 626 ("openssl" ,openssl)))
1da34f5a 627 (native-inputs `(("perl" ,perl))) ; for tests
1da34f5a
LC
628 (home-page "http://www.tcpdump.org/")
629 (synopsis "Network packet analyzer")
630 (description
631 "Tcpdump is a command-line tool to analyze network traffic passing
632through the network interface controller.")
f61e0e79 633 (license license:bsd-3)))
1da34f5a 634
02c86a5e
LC
635(define-public jnettop
636 (package
637 (name "jnettop")
638 (version "0.13.0")
639 (source (origin
640 (method url-fetch)
641 (uri (string-append "http://jnettop.kubs.info/dist/jnettop-"
642 version ".tar.gz"))
643 (sha256
644 (base32
645 "1855np7c4b0bqzhf1l1dyzxb90fpnvrirdisajhci5am6als31z9"))))
646 (build-system gnu-build-system)
647 (native-inputs
648 `(("pkg-config" ,pkg-config)))
649 (inputs
650 `(("glib" ,glib)
651 ("ncurses" ,ncurses)
652 ("libpcap" ,libpcap)))
653 (home-page "http://jnettop.kubs.info/")
654 (synopsis "Visualize network traffic by bandwidth use")
655 (description
656 "Jnettop is a traffic visualiser, which captures traffic going
657through the host it is running from and displays streams sorted
658by bandwidth they use.")
f61e0e79 659 (license license:gpl2+)))
87216303
EB
660
661(define-public clusterssh
662 (package
663 (name "clusterssh")
664 (version "3.28")
665 (source (origin
666 (method url-fetch)
667 (uri (string-append "mirror://sourceforge/clusterssh/"
de67e922
LF
668 "1.%20ClusterSSH%20Series%203/" version
669 "/clusterssh-" version ".tar.gz"))
87216303
EB
670 (sha256
671 (base32
672 "1bwggpvaj2al5blg1ynapviv2kpydffpzq2zkhi81najnvzc1rr7"))))
673 (build-system gnu-build-system)
674 (inputs `(("perl" ,perl)))
675 (propagated-inputs `(("xterm" ,xterm)
676 ("perl-tk" ,perl-tk)
677 ("perl-x11-protocol" ,perl-x11-protocol)))
678 (arguments
679 `(#:phases
680 (alist-cons-after
681 'install 'set-load-paths
682 (lambda* (#:key inputs outputs #:allow-other-keys)
683 ;; Put the perl-tk and perl-x11-protocol modules in the perl inc
684 ;; path for PROG
685 (let* ((out (assoc-ref outputs "out"))
686 (prog (string-append out "/bin/cssh"))
687 (perl-ver ,(package-version perl))
688 (x11-inc (string-append
689 (assoc-ref inputs "perl-x11-protocol")
690 "/lib/perl5/site_perl/" perl-ver))
691 (tk-inc (string-append
692 (assoc-ref inputs "perl-tk")
693 "/lib/perl5/site_perl/" perl-ver
694 "/x86_64-linux")))
695 (wrap-program
696 prog
697 `("PERL5LIB" ":" prefix (,x11-inc ,tk-inc)))))
698 %standard-phases)))
699 ;; The clusterssh.sourceforge.net address requires login to view
700 (home-page "http://sourceforge.net/projects/clusterssh/")
701 (synopsis "Secure concurrent multi-server terminal control")
702 (description
703 "ClusterSSH controls a number of xterm windows via a single graphical
704console window to allow commands to be interactively run on multiple servers
705over ssh connections.")
f61e0e79 706 (license license:gpl2+)))
fccf2fe0
LC
707
708(define-public rottlog
709 (package
710 (name "rottlog")
711 (version "0.72.2")
712 (source (origin
713 (method url-fetch)
714 (uri (string-append "mirror://gnu/rottlog/rottlog-"
715 version ".tar.gz"))
716 (sha256
717 (base32
718 "0751mb9l2f0jrk3vj6q8ilanifd121dliwk0c34g8k0dlzsv3kd7"))
719 (modules '((guix build utils)))
720 (snippet
721 '(substitute* "Makefile.in"
722 (("-o \\$\\{LOG_OWN\\} -g \\$\\{LOG_GROUP\\}")
723 ;; Don't try to chown root.
724 "")
725 (("mkdir -p \\$\\(ROTT_STATDIR\\)")
726 ;; Don't attempt to create /var/lib/rottlog.
727 "true")))))
728 (build-system gnu-build-system)
729 (arguments
730 '(#:configure-flags (list (string-append "ROTT_ETCDIR="
731 (assoc-ref %outputs "out")
732 "/etc")
733 "--localstatedir=/var")
734 #:phases (alist-cons-after
735 'install 'install-info
736 (lambda _
737 (zero? (system* "make" "install-info")))
738 %standard-phases)))
739 (native-inputs `(("texinfo" ,texinfo)
740 ("util-linux" ,util-linux))) ; for 'cal'
741 (home-page "http://www.gnu.org/software/rottlog/")
742 (synopsis "Log rotation and management")
743 (description
744 "GNU Rot[t]log is a program for managing log files. It is used to
745automatically rotate out log files when they have reached a given size or
746according to a given schedule. It can also be used to automatically compress
747and archive such logs. Rot[t]log will mail reports of its activity to the
748system administrator.")
f61e0e79 749 (license license:gpl3+)))
e1485c7b
LC
750
751(define-public sudo
752 (package
753 (name "sudo")
6baa83d2 754 (version "1.8.17p1")
e1485c7b
LC
755 (source (origin
756 (method url-fetch)
757 (uri
6baa83d2 758 (list (string-append "https://www.sudo.ws/sudo/dist/sudo-"
e1485c7b
LC
759 version ".tar.gz")
760 (string-append "ftp://ftp.sudo.ws/pub/sudo/OLD/sudo-"
761 version ".tar.gz")))
762 (sha256
763 (base32
6baa83d2 764 "1k2mn65l1kmsxm8wh0gjxy496xhbpiimbpm6yv6kw6snzc3xg466"))))
e1485c7b
LC
765 (build-system gnu-build-system)
766 (arguments
0086ec73
LC
767 `(#:configure-flags
768 (list "--with-logpath=/var/log/sudo.log"
7b78f359 769 "--with-rundir=/var/run/sudo" ;must be cleaned up at boot time
0086ec73
LC
770 "--with-vardir=/var/db/sudo"
771 "--with-iologdir=/var/log/sudo-io"
772
773 ;; 'visudo.c' expects _PATH_MV to be defined, but glibc doesn't
774 ;; provide it.
775 (string-append "CPPFLAGS=-D_PATH_MV='\""
776 (assoc-ref %build-inputs "coreutils")
777 "/bin/mv\"'"))
511495fb
LC
778
779 ;; Avoid non-determinism; see <http://bugs.gnu.org/21918>.
780 #:parallel-build? #f
781
e1485c7b
LC
782 #:phases (alist-cons-before
783 'configure 'pre-configure
784 (lambda _
0086ec73
LC
785 (substitute* "src/sudo_usage.h.in"
786 ;; Do not capture 'configure' arguments since we would
787 ;; unduly retain references, and also because the
788 ;; CPPFLAGS above would close the string literal
789 ;; prematurely.
790 (("@CONFIGURE_ARGS@") "\"\""))
e1485c7b 791 (substitute* (find-files "." "Makefile\\.in")
0086ec73 792 (("-o [[:graph:]]+ -g [[:graph:]]+")
e1485c7b
LC
793 ;; Allow installation as non-root.
794 "")
795 (("^install: (.*)install-sudoers(.*)" _ before after)
796 ;; Don't try to create /etc/sudoers.
e1626e3b
SB
797 (string-append "install: " before after "\n"))
798 (("\\$\\(DESTDIR\\)\\$\\(rundir\\)")
799 ;; Don't try to create /run/sudo.
800 "$(TMPDIR)/dummy")
801 (("\\$\\(DESTDIR\\)\\$\\(vardir\\)")
802 ;; Don't try to create /var/db/sudo.
803 "$(TMPDIR)/dummy")))
e1485c7b
LC
804 %standard-phases)
805
806 ;; XXX: The 'testsudoers' test series expects user 'root' to exist, but
807 ;; the chroot's /etc/passwd doesn't have it. Turn off the tests.
808 #:tests? #f))
809 (inputs
810 `(("groff" ,groff)
811 ("linux-pam" ,linux-pam)
812 ("coreutils" ,coreutils)))
6baa83d2 813 (home-page "https://www.sudo.ws/")
e1485c7b
LC
814 (synopsis "Run commands as root")
815 (description
816 "Sudo (su \"do\") allows a system administrator to delegate authority to
817give certain users (or groups of users) the ability to run some (or all)
818commands as root or another user while providing an audit trail of the
819commands and their arguments.")
820
821 ;; See <http://www.sudo.ws/sudo/license.html>.
f61e0e79 822 (license license:x11)))
952298d7 823
1ce6f43a 824(define-public wpa-supplicant-minimal
952298d7 825 (package
1ce6f43a 826 (name "wpa-supplicant-minimal")
e91e28d6 827 (version "2.5")
952298d7
LC
828 (source (origin
829 (method url-fetch)
830 (uri (string-append
9a727700 831 "http://w1.fi/releases/wpa_supplicant-"
952298d7
LC
832 version
833 ".tar.gz"))
834 (sha256
835 (base32
419630e0
MW
836 "05mkp5bx1c3z7h5biddsv0p49gkrq9ksany3anp4wdiv92p5prfc"))
837 (patches
fc1adab1
AK
838 (search-patches "wpa-supplicant-CVE-2015-5310.patch"
839 "wpa-supplicant-CVE-2015-5314.patch"
840 "wpa-supplicant-CVE-2015-5315.patch"
0a17fd7c
MW
841 "wpa-supplicant-CVE-2015-5316.patch"
842 "wpa-supplicant-CVE-2016-4476.patch"
843 "wpa-supplicant-CVE-2016-4477-pt1.patch"
844 "wpa-supplicant-CVE-2016-4477-pt2.patch"
845 "wpa-supplicant-CVE-2016-4477-pt3.patch"
846 "wpa-supplicant-CVE-2016-4477-pt4.patch"))))
952298d7
LC
847 (build-system gnu-build-system)
848 (arguments
849 '(#:phases (alist-replace
850 'configure
851 (lambda* (#:key outputs #:allow-other-keys)
852 (chdir "wpa_supplicant")
853 (copy-file "defconfig" ".config")
854 (let ((port (open-file ".config" "al")))
855 (display "
856 CONFIG_DEBUG_SYSLOG=y
40b4c6d6 857
61bdd0d8
LC
858 # Choose GnuTLS (the default is OpenSSL.)
859 CONFIG_TLS=gnutls
860
952298d7
LC
861 CONFIG_DRIVER_NL80211=y
862 CFLAGS += $(shell pkg-config libnl-3.0 --cflags)
863 CONFIG_LIBNL32=y
864 CONFIG_READLINE=y\n" port)
865 (close-port port)))
ffd74de0
LC
866
867 (alist-cons-after
868 'install 'install-man-pages
869 (lambda* (#:key outputs #:allow-other-keys)
870 (let* ((out (assoc-ref outputs "out"))
871 (man (string-append out "/share/man"))
872 (man5 (string-append man "/man5"))
873 (man8 (string-append man "/man8")))
874 (define (copy-man-page target)
875 (lambda (file)
876 (copy-file file
877 (string-append target "/"
878 (basename file)))))
879
880 (mkdir-p man5) (mkdir man8)
881 (for-each (copy-man-page man5)
882 (find-files "doc/docbook" "\\.5"))
883 (for-each (copy-man-page man8)
884 (find-files "doc/docbook" "\\.8"))
885 #t))
886 %standard-phases))
952298d7
LC
887
888 #:make-flags (list "CC=gcc"
889 (string-append "BINDIR=" (assoc-ref %outputs "out")
890 "/sbin")
891 (string-append "LIBDIR=" (assoc-ref %outputs "out")
892 "/lib"))
893 #:tests? #f))
894 (inputs
895 `(("readline" ,readline)
896 ("libnl" ,libnl)
61bdd0d8
LC
897 ("gnutls" ,gnutls)
898 ("libgcrypt" ,libgcrypt))) ;needed by crypto_gnutls.c
952298d7
LC
899 (native-inputs
900 `(("pkg-config" ,pkg-config)))
9a727700 901 (home-page "http://w1.fi/wpa_supplicant/")
952298d7
LC
902 (synopsis "Connecting to WPA and WPA2-protected wireless networks")
903 (description
904 "wpa_supplicant is a WPA Supplicant with support for WPA and WPA2 (IEEE
905802.11i / RSN). Supplicant is the IEEE 802.1X/WPA component that is used in
906the client stations. It implements key negotiation with a WPA Authenticator
907and it controls the roaming and IEEE 802.11 authentication/association of the
908WLAN driver.
909
910This package provides the 'wpa_supplicant' daemon and the 'wpa_cli' command.")
911
912 ;; In practice, this is linked against Readline, which makes it GPLv3+.
f61e0e79 913 (license license:bsd-3)))
c6b76405 914
4fb7e0de 915(define-public wpa-supplicant
1ce6f43a 916 (package (inherit wpa-supplicant-minimal)
4fb7e0de
MW
917 (name "wpa-supplicant")
918 (inputs `(("dbus" ,dbus)
1ce6f43a 919 ,@(package-inputs wpa-supplicant-minimal)))
4fb7e0de 920 (arguments
1ce6f43a 921 (substitute-keyword-arguments (package-arguments wpa-supplicant-minimal)
4fb7e0de 922 ((#:phases phases)
6744aba8
MW
923 `(alist-cons-after
924 'configure 'configure-for-dbus
925 (lambda _
926 (let ((port (open-file ".config" "al")))
927 (display "
4fb7e0de
MW
928 CONFIG_CTRL_IFACE_DBUS=y
929 CONFIG_CTRL_IFACE_DBUS_NEW=y
930 CONFIG_CTRL_IFACE_DBUS_INTRO=y\n" port)
6744aba8
MW
931 (close-port port))
932 #t)
933 (alist-cons-after
934 'install-man-pages 'install-dbus-conf
935 (lambda* (#:key outputs #:allow-other-keys)
936 (let* ((out (assoc-ref outputs "out"))
937 (dir (string-append out "/etc/dbus-1/system.d")))
938 (mkdir-p dir)
939 (copy-file "dbus/dbus-wpa_supplicant.conf"
940 (string-append dir "/wpa_supplicant.conf"))))
941 ,phases)))))))
4fb7e0de 942
c6b76405
LC
943(define-public wakelan
944 (package
945 (name "wakelan")
946 (version "1.1")
947 (source (origin
948 (method url-fetch)
949 (uri (string-append
950 "ftp://ftp.gwdg.de/pub/linux/metalab/system/network/misc/wakelan-"
951 version ".tar.gz"))
952 (sha256
953 (base32
954 "0vydqpf44146ir6k87gmqaq6xy66xhc1gkr3nsd7jj3nhy7ypx9x"))))
955 (build-system gnu-build-system)
956 (arguments
957 '(#:phases (alist-replace
958 'configure
959 (lambda* (#:key outputs #:allow-other-keys)
960 (let ((out (assoc-ref outputs "out")))
961 (mkdir-p (string-append out "/bin"))
962 (mkdir-p (string-append out "/share/man/man1"))
963
964 ;; It's an old configure script that doesn't understand
965 ;; the extra options we pass.
966 (setenv "CONFIG_SHELL" (which "bash"))
967 (zero?
968 (system* "./configure"
969 (string-append "--prefix=" out)
970 (string-append "--mandir=" out
971 "/share/man")))))
972 %standard-phases)
973 #:tests? #f))
974 (home-page "http://kernel.org") ; really, no home page
975 (synopsis "Send a wake-on-LAN packet")
976 (description
977 "WakeLan broadcasts a properly formatted UDP packet across the local area
978network, which causes enabled computers to power on.")
f61e0e79 979 (license license:gpl2+)))
d43f4296
LC
980
981(define-public dmidecode
982 (package
983 (name "dmidecode")
06438b07 984 (version "3.0")
d43f4296
LC
985 (source (origin
986 (method url-fetch)
987 (uri (string-append
988 "mirror://savannah/dmidecode/dmidecode-"
06438b07 989 version ".tar.xz"))
d43f4296
LC
990 (sha256
991 (base32
06438b07 992 "0iby0xfk5x3cdr0x0gxj5888jjyjhafvaq0l79civ73jjfqmphvy"))))
d43f4296
LC
993 (build-system gnu-build-system)
994 (arguments
06438b07 995 '(#:phases (modify-phases %standard-phases (delete 'configure))
d43f4296
LC
996 #:tests? #f ; no 'check' target
997 #:make-flags (list (string-append "prefix="
998 (assoc-ref %outputs "out")))))
999 (home-page "http://www.nongnu.org/dmidecode/")
1000 (synopsis "Read hardware information from the BIOS")
1001 (description
1002 "Dmidecode reports information about your system's hardware as described
1003in your system BIOS according to the SMBIOS/DMI standard. This typically
1004includes system manufacturer, model name, serial number, BIOS version, asset
1005tag as well as a lot of other details of varying level of interest and
1006reliability depending on the manufacturer. This will often include usage
1007status for the CPU sockets, expansion slots (e.g. AGP, PCI, ISA) and memory
1008module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
f61e0e79 1009 (license license:gpl2+)))
42dc3af5 1010
13c8c2bf
MW
1011(define-public acpica
1012 (package
1013 (name "acpica")
2036a648 1014 (version "20150410")
13c8c2bf
MW
1015 (source (origin
1016 (method url-fetch)
1017 (uri (string-append
1018 "https://acpica.org/sites/acpica/files/acpica-unix2-"
1019 version ".tar.gz"))
1020 (sha256
1021 (base32
2036a648 1022 "0q1fjwkyw9x6gsva6fd0zbn7ly4fx0ha4853f416np9kf2irillw"))))
13c8c2bf
MW
1023 (build-system gnu-build-system)
1024 (native-inputs `(("flex" ,flex)
1025 ("bison" ,bison)))
1026 (arguments
1027 '(#:make-flags (list (string-append "PREFIX=" %output)
1028 "HOST=_LINUX"
1029 "OPT_CFLAGS=-Wall -fno-strict-aliasing")
1030 #:tests? #f ; no 'check' target.
1031 #:phases (alist-delete 'configure %standard-phases)))
1032 (home-page "http://acpica.org/")
35b9e423 1033 (synopsis "Tools for the development and debug of ACPI tables")
13c8c2bf
MW
1034 (description
1035 "The ACPI Component Architecture (ACPICA) project provides an
1036OS-independent reference implementation of the Advanced Configuration and
1037Power Interface Specification (ACPI). ACPICA code contains those portions of
1038ACPI meant to be directly integrated into the host OS as a kernel-resident
1039subsystem, and a small set of tools to assist in developing and debugging ACPI
1040tables. This package contains only the user-space tools needed for ACPI table
1041development, not the kernel implementation of ACPI.")
f61e0e79 1042 (license license:gpl2))) ; Dual GPLv2/ACPICA Licence
4cf7bd2b
MW
1043
1044(define-public stress
1045 (package
1046 (name "stress")
1047 (version "1.0.1")
1048 (source (origin
1049 (method url-fetch)
1050 (uri (string-append "mirror://debian/pool/main/s/stress/stress_"
1051 version ".orig.tar.gz"))
1052 (sha256
1053 (base32
1054 "1v9vnzlihqfjsxa93hdbrq72pqqk00dkylmlg8jpxhm7s1w9qfl1"))))
1055 (build-system gnu-build-system)
1056 (home-page "http://packages.debian.org/wheezy/stress")
9e771e3b 1057 (synopsis "Impose load on and stress test a computer system")
4cf7bd2b 1058 (description
35b9e423 1059 "Stress is a tool that imposes a configurable amount of CPU, memory, I/O,
4cf7bd2b
MW
1060or disk stress on a POSIX-compliant operating system and reports any errors it
1061detects.
1062
35b9e423 1063Stress is not a benchmark. It is a tool used by system administrators to
4cf7bd2b
MW
1064evaluate how well their systems will scale, by kernel programmers to evaluate
1065perceived performance characteristics, and by systems programmers to expose
1066the classes of bugs which only or more frequently manifest themselves when the
1067system is under heavy load.")
f61e0e79 1068 (license license:gpl2+)))
b36fcf95
EB
1069
1070(define-public detox
1071 (package
1072 (name "detox")
1073 (version "1.2.0")
1074 (source (origin
1075 (method url-fetch)
de67e922
LF
1076 (uri (string-append "mirror://sourceforge/detox/detox/" version
1077 "/detox-" version ".tar.bz2"))
b36fcf95
EB
1078 (sha256
1079 (base32
1080 "1y6vvjqsg54kl49cry73jbfhr04s7wjs779vrr9zrq6kww7dkymb"))))
1081 (build-system gnu-build-system)
1082 ;; Both flex and popt are used in this case for their runtime libraries
1083 ;; (libfl and libpopt).
1084 (inputs
1085 `(("flex" ,flex)
1086 ("popt" ,popt)))
1087 (arguments
1088 `(#:configure-flags `(,(string-append "--with-popt="
1089 (assoc-ref %build-inputs "popt")))
1090 #:tests? #f)) ;no 'check' target
1091 (home-page "http://detox.sourceforge.net")
e881752c 1092 (synopsis "Clean up file names")
b36fcf95
EB
1093 (description
1094 "Detox is a program that renames files to make them easier to work with
1095under Unix and related operating systems. Spaces and various other unsafe
1096characters (such as \"$\") get replaced with \"_\". ISO 8859-1 (Latin-1)
1097characters can be replaced as well, as can UTF-8 characters.")
f61e0e79 1098 (license license:bsd-3)))
c4492a16
LC
1099
1100(define-public testdisk
1101 (package
1102 (name "testdisk")
cf91cfc0 1103 (version "7.0")
c4492a16
LC
1104 (source (origin
1105 (method url-fetch)
1106 (uri (string-append "http://www.cgsecurity.org/testdisk-"
1107 version ".tar.bz2"))
1108 (sha256
1109 (base32
cf91cfc0 1110 "0ba4wfz2qrf60vwvb1qsq9l6j0pgg81qgf7fh22siaz649mkpfq0"))))
c4492a16
LC
1111 (build-system gnu-build-system)
1112 (inputs
d6a08ec0 1113 `(("ntfs-3g" ,ntfs-3g)
c4492a16 1114 ("util-linux" ,util-linux)
cc2b77df 1115 ("openssl" ,openssl)
d6a08ec0 1116 ;; FIXME: add reiserfs
f61e0e79 1117 ("zlib" ,zlib)
c4492a16
LC
1118 ("e2fsprogs" ,e2fsprogs)
1119 ("libjpeg" ,libjpeg)
1120 ("ncurses" ,ncurses)))
1121 (home-page "http://www.cgsecurity.org/wiki/TestDisk")
1122 (synopsis "Data recovery tool")
1123 (description
1124 "TestDisk is a program for data recovery, primarily designed to help
1125recover lost partitions and/or make non-booting disks bootable again.")
f61e0e79 1126 (license license:gpl2+)))
c4492a16 1127
15926aec
AS
1128(define-public tree
1129 (package
1130 (name "tree")
1131 (version "1.7.0")
1132 (source (origin
1133 (method url-fetch)
1134 (uri (string-append
1135 "http://mama.indstate.edu/users/ice/tree/src/tree-"
1136 version ".tgz"))
1137 (sha256
1138 (base32 "04kviw799qxly08zb8n5mgxfd96gyis6x69q2qiw86jnh87c4mv9"))))
1139 (build-system gnu-build-system)
1140 (arguments
1141 '(#:phases (alist-delete 'configure %standard-phases)
1142 #:tests? #f ; no check target
1143 #:make-flags (let ((out (assoc-ref %outputs "out")))
1144 (list (string-append "prefix=" out)))))
1145 (synopsis "Recursively list the contents of a directory")
1146 (description
1147 "Tree is a recursive directory listing command that produces a depth
1148indented listing of files, which is colorized ala dircolors if the LS_COLORS
1149environment variable is set and output is to tty.")
1150 (home-page "http://mama.indstate.edu/users/ice/tree/")
1151 (license license:gpl2+)))
1152
c2619e10
LC
1153(define-public direvent
1154 (package
1155 (name "direvent")
1156 (version "5.0")
1157 (source (origin
1158 (method url-fetch)
1159 (uri (string-append "mirror://gnu/direvent/direvent-"
1160 version ".tar.gz"))
1161 (sha256
1162 (base32
1163 "1i14131y6m8wvirz6piw4zxz2q1kbpl0lniv5kl55rx4k372dg8z"))
1164 (modules '((guix build utils)))
1165 (snippet '(substitute* "tests/testsuite"
1166 (("#![[:blank:]]?/bin/sh")
1167 "#!$SHELL")))))
1168 (build-system gnu-build-system)
1169 (arguments
1170 '(#:phases (alist-cons-before
1171 'build 'patch-/bin/sh
1172 (lambda* (#:key inputs #:allow-other-keys)
1173 ;; Use the right shell when executing the watcher.
1174 (let ((bash (assoc-ref inputs "bash")))
1175 (substitute* "src/direvent.c"
1176 (("\"/bin/sh\"")
1177 (string-append "\"" bash "/bin/sh\"")))))
1178 %standard-phases)))
1179 (home-page "http://www.gnu.org/software/direvent/")
1180 (synopsis "Daemon to monitor directories for events such as file removal")
1181 (description
1182 "A daemon that monitors directories for events, such as creating,
35b9e423 1183deleting or modifying files. It can monitor different sets of directories for
c2619e10
LC
1184different events. When an event is detected, direvent calls a specified
1185external program with information about the event, such as the location
c5779c93
LC
1186within the file system where it occurred. Thus, \"direvent\" provides an
1187easy way to react immediately if given files undergo changes, for example, to
c2619e10 1188track changes in important system configuration files.")
f61e0e79 1189 (license license:gpl3+)))
da6c3749
TUBK
1190
1191(define-public libcap-ng
1192 (package
1193 (name "libcap-ng")
1194 (version "0.7.4")
1195 (source (origin
1196 (method url-fetch)
1197 (uri (string-append
1198 "http://people.redhat.com/sgrubb/libcap-ng/libcap-ng-"
1199 version ".tar.gz"))
1200 (sha256
1201 (base32
1202 "0ssvnh4cvhya0c1j6k6192zvqcq7nc0x01fb5nwhr0prfqr0i8j8"))))
1203 (build-system gnu-build-system)
1204 (inputs `(("python" ,python)))
1205 (home-page "http://people.redhat.com/sgrubb/libcap-ng/")
1206 (synopsis "Library for more easily working with POSIX capabilities")
1207 (description
1208 "The libcap-ng library is intended to make programming with POSIX
1209capabilities easier than the traditional libcap library. It includes
1210utilities that can analyse all currently running applications and print out
1211any capabilities and whether or not it has an open ended bounding set. The
1212included utilities are designed to let admins and developers spot apps from
1213various ways that may be running with too much privilege.")
1214 ;; The library is lgpl2.1+, but also ships some utils which are gpl2+.
f61e0e79 1215 (license (list license:lgpl2.1+ license:gpl2+))))
d02f2cc4
TUBK
1216
1217(define-public smartmontools
1218 (package
1219 (name "smartmontools")
85de4365 1220 (version "6.5")
d02f2cc4
TUBK
1221 (source (origin
1222 (method url-fetch)
1223 (uri (string-append
1224 "mirror://sourceforge/smartmontools/smartmontools/"
1225 version "/smartmontools-" version ".tar.gz"))
1226 (sha256
1227 (base32
85de4365 1228 "1g25r6sx85b5lay5n6sbnqv05qxzj6xsafsp93hnrg1h044bps49"))))
d02f2cc4
TUBK
1229 (build-system gnu-build-system)
1230 (inputs `(("libcap-ng" ,libcap-ng)))
1231 (home-page "http://www.smartmontools.org/")
1232 (synopsis "S.M.A.R.T. harddisk control and monitoring tools")
1233 (description
1234 "The smartmontools package contains utility programs to control and
1235monitor storage systems using the Self-Monitoring, Analysis and Reporting
1236Technology System (S.M.A.R.T.) built into most modern ATA and SCSI harddisks.
1237In many cases, these utilities will provide advanced warning of disk
1238degradation and failure.")
f61e0e79 1239 (license license:gpl2+)))
6efd0823
RW
1240
1241(define-public fdupes
1242 (package
1243 (name "fdupes")
1244 (version "1.51")
1245 (source
1246 (origin
1247 (method url-fetch)
1248 (uri (string-append
1249 "https://github.com/adrianlopezroche/fdupes/archive/fdupes-"
1250 version ".tar.gz"))
1251 (sha256
1252 (base32
1253 "11j96vxl9vg3jsnxqxskrv3gad6dh7hz2zpyc8n31xzyxka1c7kn"))))
1254 (build-system gnu-build-system)
1255 (arguments
1256 '(#:phases (alist-delete 'configure %standard-phases)
1257 #:tests? #f ; no 'check' target
1258 #:make-flags (list (string-append "PREFIX="
1259 (assoc-ref %outputs "out")))))
1260 (home-page "https://github.com/adrianlopezroche/fdupes")
1261 (synopsis "Identify duplicate files")
1262 (description
1263 "fdupes is a program for identifying duplicate files residing within
1264specified directories.")
1265 (license license:expat)))
4ecfbda7
DT
1266
1267(define-public graphios
1268 (package
1269 (name "graphios")
1270 (version "2.0.3")
1271 (source
1272 (origin
1273 (method url-fetch)
1274 (uri (string-append
1275 "https://pypi.python.org/packages/source/g/graphios/graphios-"
1276 version ".tar.gz"))
1277 (sha256
1278 (base32
1279 "1h87hvc315wg6lklbf4l7csd3n5pgljwrfli1p3nasdi0izgn66i"))))
1280 (build-system python-build-system)
1281 (arguments
1282 ;; Be warned: Building with Python 3 succeeds, but the build process
1283 ;; throws a syntax error that is ignored.
1284 `(#:python ,python-2
1285 #:phases
1286 (modify-phases %standard-phases
1287 (add-before 'build 'fix-setup.py
1288 (lambda* (#:key outputs #:allow-other-keys)
1289 ;; Fix hardcoded, unprefixed file names.
1290 (let ((out (assoc-ref outputs "out")))
1291 (substitute* '("setup.py")
1292 (("/etc") (string-append out "/etc"))
1293 (("/usr") out)
1294 (("distro_ver = .*") "distro_ver = ''"))
1295 #t))))))
1296 (inputs
1297 `(("python-setuptools" ,python2-setuptools)))
1298 (home-page "https://github.com/shawn-sterling/graphios")
1299 (synopsis "Emit Nagios metrics to Graphite, Statsd, and Librato")
1300 (description
1301 "Graphios is a script to emit nagios perfdata to various upstream metrics
1302processing and time-series systems. It's currently compatible with Graphite,
1303Statsd, Librato and InfluxDB. Graphios can emit Nagios metrics to any number
1304of supported upstream metrics systems simultaneously.")
1305 (license license:gpl2+)))
8d801045
ED
1306
1307(define-public ansible
1308 (package
1309 (name "ansible")
697e86dd 1310 (version "2.1.0.0")
8d801045
ED
1311 (source
1312 (origin
1313 (method url-fetch)
697e86dd 1314 (uri (pypi-uri "ansible" version))
8d801045
ED
1315 (sha256
1316 (base32
697e86dd 1317 "1bfc2xiplpad6f2nwi48y0kps7xqnsll85dlz63cy8k5bysl6d20"))))
8d801045
ED
1318 (build-system python-build-system)
1319 (native-inputs
1320 `(("python2-setuptools" ,python2-setuptools)
1321 ("python2-pycrypto" ,python2-pycrypto)
1322 ("python2-httplib2" ,python2-httplib2)
1323 ("python2-passlib" ,python2-passlib)
1324 ("python2-nose" ,python2-nose)
1325 ("python2-mock" ,python2-mock)
1326 ("python2-jinja2" ,python2-jinja2)
1327 ("python2-pyyaml" ,python2-pyyaml)
1328 ("python2-paramiko" ,python2-paramiko)))
1329 (inputs
1330 `(("python2-pycrypto" ,python2-pycrypto)
1331 ("python2-jinja2" ,python2-jinja2)
1332 ("python2-pyyaml" ,python2-pyyaml)
1333 ("python2-paramiko" ,python2-paramiko)))
1334 (arguments
1335 `(#:python ,python-2)) ; incompatible with Python 3
1336 (home-page "http://ansible.com/")
1337 (synopsis "Radically simple IT automation")
1338 (description "Ansible is a radically simple IT automation system. It
1339handles configuration-management, application deployment, cloud provisioning,
1340ad-hoc task-execution, and multinode orchestration - including trivializing
1341things like zero downtime rolling updates with load balancers.")
1342 (license license:gpl3+)))
44157e9f
EB
1343
1344(define-public cpulimit
1345 (package
1346 (name "cpulimit")
1347 (version "0.2")
1348 (source
1349 (origin
1350 (method url-fetch)
1351 (uri (string-append "https://github.com/opsengine/cpulimit/archive/v"
1352 version ".tar.gz"))
1353 (file-name (string-append name "-" version ".tar.gz"))
1354 (sha256
1355 (base32
1356 "1nn2w849xd5bw4y5sqnll29nxdwl5h0cv4smc7dwmpb9qnd2ycb4"))))
1357 (build-system gnu-build-system)
1358 (arguments
1359 `(#:phases (modify-phases %standard-phases
1360 (delete 'configure)
1361 (replace
1362 'build
1363 (lambda _
1364 (zero? (system* "make" "CC=gcc" "-Csrc"))))
1365 (replace
1366 'check
1367 (lambda _
1368 (zero? (system* "make" "CC=gcc" "-Ctests"))))
1369 (replace
1370 'install
1371 (lambda* (#:key outputs #:allow-other-keys)
1372 (let* ((out (assoc-ref outputs "out"))
1373 (bin (string-append out "/bin")))
1374 (install-file "src/cpulimit" bin)))))))
1375 (home-page "https://github.com/opsengine/cpulimit")
1376 (synopsis "Limit CPU usage")
1377 (description
1378 "Cpulimit limits the CPU usage of a process. It does not change the nice
1379value or other scheduling priority settings, but the real CPU usage, and is
1380able to adapt itself dynamically to the overall system load. Children
1381processes and threads of the specified process may optionally share the same
1382limits.")
1383 (license license:gpl2+)))
2328b47c
EB
1384
1385(define-public autojump
1386 (package
1387 (name "autojump")
1388 (version "22.2.4")
1389 (source
1390 (origin
1391 (method url-fetch)
1392 (uri (string-append "https://github.com/wting/autojump/archive/"
1393 "release-v" version ".tar.gz"))
1394 (file-name (string-append name "-" version ".tar.gz"))
1395 (sha256
1396 (base32
1397 "0xglj7nb8xczaqy2dhn78drqdwqj64rqpymxhqmmwwqzfaqassw1"))))
1398 (build-system gnu-build-system)
1399 (native-inputs ;for tests
1400 `(("python-mock" ,python-mock)
1401 ("python-pytest" ,python-pytest)))
1402 (inputs
1403 `(("python" ,python-wrapper)))
1404 (arguments
1405 `(#:phases (modify-phases %standard-phases
1406 (delete 'configure)
1407 (delete 'build)
1408 (replace 'check
1409 (lambda _
1410 (zero?
1411 (system* "python" "tests/autojump_utils_test.py"))))
1412 (replace 'install
1413 ;; The install.py script doesn't allow system installation
1414 ;; into an arbitrary prefix, so do our own install.
1415 (lambda* (#:key outputs #:allow-other-keys)
1416 (let* ((out (assoc-ref outputs "out"))
1417 (bin (string-append out "/bin"))
1418 (share (string-append out "/share/autojump"))
1419 (py (string-append out "/lib/python"
1420 ,(version-major+minor
1421 (package-version python-wrapper))
1422 "/site-packages"))
1423 (man (string-append out "/share/man/man1")))
1424 (install-file "bin/autojump" bin)
1425 (for-each (λ (f) (install-file f py))
1426 (find-files "bin" "\\.py$"))
1427 (for-each (λ (f) (install-file f share))
1428 (find-files "bin" "autojump\\..*$"))
1429 (substitute* (string-append share "/autojump.sh")
1430 (("/usr/local") out))
1431 (install-file "docs/autojump.1" man)
1432 (wrap-program (string-append bin "/autojump")
1433 `("PYTHONPATH" ":" prefix (,py)))
1434 #t))))))
1435 (home-page "https://github.com/wting/autojump")
1436 (synopsis "Shell extension for filesystem navigation")
1437 (description
1438 "Autojump provides a faster way to navigate your filesystem, with a \"cd
1439command that learns\". It works by maintaining a database of the directories
1440you use the most from the command line and allows you to \"jump\" to
1441frequently used directories by typing only a small pattern.")
1442 (license license:gpl3+)))
765973cd
LF
1443
1444(define-public iftop
1445 (package
1446 (name "iftop")
1447 (version "1.0pre4")
1448 (source (origin
1449 (method url-fetch)
1450 (uri (string-append "http://www.ex-parrot.com/~pdw/iftop/download"
1451 "/iftop-" version ".tar.gz"))
1452 (sha256
1453 (base32
1454 "15sgkdyijb7vbxpxjavh5qm5nvyii3fqcg9mzvw7fx8s6zmfwczp"))))
1455 (build-system gnu-build-system)
1456 (inputs
1457 `(("libpcap" ,libpcap)
1458 ("ncurses" ,ncurses)))
1459 (synopsis "Monitor network usage")
1460 (description "Iftop does for network usage what @command{top} does
1461for CPU usage. It listens to network traffic on a named interface and
1462displays a table of current bandwidth usage by pairs of hosts.")
1463 (home-page "http://www.ex-parrot.com/~pdw/iftop/")
d4e21fbb 1464 (license license:gpl2+)))
f1957fc1
PP
1465
1466(define-public munge
1467 (package
1468 (name "munge")
b52ae4de 1469 (version "0.5.12")
f1957fc1
PP
1470 (source (origin
1471 (method url-fetch)
b52ae4de
EF
1472 (uri (string-append "https://github.com/dun/munge/releases/"
1473 "download/munge-" version "/munge-"
1474 version ".tar.xz"))
f1957fc1
PP
1475 (sha256
1476 (base32
b52ae4de 1477 "1s0vlwgm3hcx75vcmjf2y3icy5nv8y07bx93w2cmm6a7x71y6wp9"))))
f1957fc1
PP
1478 (inputs
1479 `(("openssl" ,openssl)
1480 ("libgcrypt" ,libgcrypt)))
1481 (build-system gnu-build-system)
b52ae4de 1482 (home-page "https://dun.github.io/munge/")
f1957fc1
PP
1483 (synopsis "Cluster computing authentication service")
1484 (description
1485 "Munge is an authentication service for creating and validating
1486credentials. It allows a process to authenticate the UID and GID of another
1487local or remote process within a group of hosts having common users and
1488groups. These hosts form a security realm that is defined by a shared
1489cryptographic key. Clients within this security realm can create and validate
1490credentials without the use of root privileges, reserved ports, or
1491platform-specific methods.")
1492 (license license:gpl3+)))
3d7a157c
RW
1493
1494(define-public audit
1495 (package
1496 (name "audit")
1497 (version "2.4.5")
1498 (source (origin
1499 (method url-fetch)
1500 (uri (string-append "http://people.redhat.com/sgrubb/audit/"
1501 "audit-" version ".tar.gz"))
1502 (sha256
1503 (base32
1504 "1q1q51dvxscbi4kbakmd4bn0xrvwwaiwvaya79925cbrqwzxsg77"))))
1505 (build-system gnu-build-system)
1506 (home-page "http://people.redhat.com/sgrubb/audit/")
1507 (arguments
1508 `(#:configure-flags (list "--with-python=no")
1509 #:phases
1510 (modify-phases %standard-phases
1511 (add-after 'unpack 'fix-tests
1512 (lambda _
1513 ;; In the build environmnte /etc/passwd does not contain an entry
1514 ;; for root/0, so we have to patch the expected value.
1515 (substitute* "auparse/test/auparse_test.ref"
1516 (("=0 \\(root\\)") "=0 (unknown(0))"))
1517 #t)))))
1518 (inputs
1519 `(("openldap" ,openldap)
1520 ("openssl" ,openssl)
1521 ("sasl" ,cyrus-sasl)))
1522 (synopsis "User-space component to the Linux auditing system")
1523 (description
1524 "auditd is the user-space component to the Linux auditing system, which
1525allows logging of system calls made by user-land processes. It's responsible
1526for writing audit records to the disk. Viewing the logs is done with the
1527@code{ausearch} or @code{aureport} utilities. Configuring the audit rules is
1528done with the @code{auditctl} utility.")
1529 (license license:gpl2+)))
d0457553
TUBK
1530
1531(define-public nmap
1532 (package
1533 (name "nmap")
dbffd7d7 1534 (version "7.12")
d0457553
TUBK
1535 (source (origin
1536 (method url-fetch)
1537 (uri (string-append "https://nmap.org/dist/nmap-" version
1538 ".tar.bz2"))
1539 (sha256
1540 (base32
dbffd7d7 1541 "014vagh9ak10hidwzp9s6g30y5h5fhsh8wykcnc1hnn9hwm0ipv3"))
d0457553
TUBK
1542 (modules '((guix build utils)))
1543 (snippet
1544 '(map delete-file-recursively
1545 ;; Remove bundled lua, pcap, and pcre libraries.
1546 ;; FIXME: Remove bundled liblinear once packaged.
1547 '("liblua"
1548 "libpcap"
1549 "libpcre"
1550 ;; Remove pre-compiled binares.
1551 "mswin32")))))
1552 (build-system gnu-build-system)
1553 (inputs
1554 `(("openssl" ,openssl)
1555 ("libpcap" ,libpcap)
1556 ("pcre" ,pcre)
1557 ("lua" ,lua)
1558 ;; For 'ndiff'.
1559 ("python" ,python-2)))
1560
1561 ;; TODO Add zenmap output.
1562 (outputs '("out" "ndiff"))
1563 (arguments
1564 '(#:configure-flags '("--without-zenmap")
1565 #:phases
1566 (modify-phases %standard-phases
1567 (replace 'install
1568 (lambda* (#:key outputs #:allow-other-keys)
1569 (define (make out . args)
1570 (unless (zero? (apply system* "make"
1571 (string-append "prefix=" out)
1572 args))
1573 (error "make failed")))
1574 (define (python-path dir)
1575 (string-append dir "/lib/python2.7/site-packages"))
1576 (let ((out (assoc-ref outputs "out"))
1577 (ndiff (assoc-ref outputs "ndiff")))
1578 (for-each mkdir-p (list out ndiff))
1579 (make out
1580 "install-nmap"
1581 "install-nse"
1582 "install-ncat"
1583 "install-nping")
1584 (make ndiff "install-ndiff")
1585 (wrap-program (string-append ndiff "/bin/ndiff")
1586 `("PYTHONPATH" prefix
1587 (,(python-path ndiff)))))))
1588 ;; These are the tests that do not require network access.
1589 (replace 'check
1590 (lambda _ (zero? (system* "make"
1591 "check-nse"
1592 "check-ndiff"
1593 "check-dns")))))
1594 ;; Nmap can't cope with out-of-source building.
1595 #:out-of-source? #f))
1596 (home-page "https://nmap.org/")
1597 (synopsis "Network discovery and security auditing tool")
1598 (description
1599 "Nmap (\"Network Mapper\") is a network discovery and security auditing
1600tool. It is also useful for tasks such as network inventory, managing service
1601upgrade schedules, and monitoring host or service uptime. It also provides an
1602advanced netcat implementation (ncat), a utility for comparing scan
1603results (ndiff), and a packet generation and response analysis tool (nping).")
1604 ;; This package uses nmap's bundled versions of libdnet and liblinear, which
1605 ;; both use a 3-clause BSD license.
1606 (license (list license:nmap license:bsd-3))))
1a0346f0
P
1607
1608(define-public dstat
1609 (package
1610 (name "dstat")
1611 (version "0.7.3")
1612 (source (origin
1613 (method url-fetch)
1614 (uri (string-append
1615 "https://github.com/dagwieers/dstat/archive/"
1616 version ".tar.gz"))
1617 (file-name (string-append "dstat-" version ".tar.gz"))
1618 (sha256
1619 (base32
1620 "16286z3y2lc9nsq8njzjkv6k2vyxrj9xiixj1k3gnsbvhlhkirj6"))))
1621 (build-system gnu-build-system)
1622 (arguments
1623 `(#:tests? #f ;; no make check
1624 #:make-flags (let ((out (assoc-ref %outputs "out")))
1625 (list (string-append "DESTDIR=" out)
1626 "prefix=/"))
1627 ;; no configure script
1628 #:phases (alist-delete 'configure %standard-phases)))
1629 (inputs `(("python-2" ,python-2)))
1630 (synopsis "Versatile resource statistics tool")
1631 (description "Dstat is a versatile replacement for @command{vmstat},
1632@command{iostat}, @command{netstat}, and @command{ifstat}. Dstat overcomes
1633some of their limitations and adds some extra features, more counters and
1634flexibility. Dstat is handy for monitoring systems during performance tuning
1635tests, benchmarks or troubleshooting.
1636
1637Dstat allows you to view all of your system resources in real-time, you can,
1638e.g., compare disk utilization in combination with interrupts from your IDE
1639controller, or compare the network bandwidth numbers directly with the disk
1640throughput (in the same interval).")
1641 (home-page "http://dag.wiee.rs/home-made/dstat/")
c59f62e9 1642 (license license:gpl2+)))
0405e5f4
EB
1643
1644(define-public thefuck
1645 (package
1646 (name "thefuck")
1647 (version "3.9")
1648 (source (origin
1649 (method url-fetch)
1650 (uri (string-append "https://github.com/nvbn/thefuck/archive/"
1651 version ".tar.gz"))
1652 (file-name (string-append name "-" version ".tar.gz"))
1653 (sha256
1654 (base32
1655 "0g4s2vkpl0mqhkdkbzib07qr4xf0cq25fvhdhna52290qgd69pwf"))))
1656 (build-system python-build-system)
1657 (native-inputs
1658 `(("python-setuptools" ,python-setuptools)))
1659 (inputs
1660 `(("python-colorama" ,python-colorama)
1661 ("python-decorator" ,python-decorator)
1662 ("python-psutil" ,python-psutil)
1663 ("python-six" ,python-six)))
1664 (home-page "https://github.com/nvbn/thefuck")
1665 (synopsis "Correct mistyped console command")
1666 (description
1667 "The Fuck tries to match a rule for a previous, mistyped command, creates
1668a new command using the matched rule, and runs it.")
1669 (license license:x11)))
61402398
JF
1670
1671(define-public di
1672 (package
1673 (name "di")
1674 (version "4.42")
1675 (source
1676 (origin
1677 (method url-fetch)
1678 (uri (string-append "https://gentoo.com/di/di-" version ".tar.gz"))
1679 (sha256
1680 (base32 "1i6m9zdnidn8268q1lz9fd8payk7s4pgwh5zlam9rr4dy6h6a67n"))))
1681 (build-system gnu-build-system)
1682 (arguments
1683 `(#:tests? #f ; Obscure test failures.
1684 #:phases
1685 (modify-phases %standard-phases
1686 (delete 'configure)
1687 (add-before 'build 'setup-environment
1688 (lambda* (#:key outputs #:allow-other-keys)
1689 (setenv "CC" "gcc")
1690 (setenv "prefix" (assoc-ref outputs "out"))
1691 #t)))
1692 #:make-flags (list "--environment-overrides")))
1693 (home-page "https://www.gentoo.com/di/")
1694 (synopsis "Advanced df like disk information utility")
1695 (description
1696 "'di' is a disk information utility, displaying everything
1697(and more) that your @code{df} command does. It features the ability to
1698display your disk usage in whatever format you prefer. It is designed to be
1699highly portable. Great for heterogenous networks.")
1700 (license license:zlib)))