licenses: Add the nmap license.
[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>
da6c3749 6;;; Copyright © 2015 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>
1df895b0 13;;;
233e7676 14;;; This file is part of GNU Guix.
1df895b0 15;;;
233e7676 16;;; GNU Guix is free software; you can redistribute it and/or modify it
1df895b0
LC
17;;; under the terms of the GNU General Public License as published by
18;;; the Free Software Foundation; either version 3 of the License, or (at
19;;; your option) any later version.
20;;;
233e7676 21;;; GNU Guix is distributed in the hope that it will be useful, but
1df895b0
LC
22;;; WITHOUT ANY WARRANTY; without even the implied warranty of
23;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24;;; GNU General Public License for more details.
25;;;
26;;; You should have received a copy of the GNU General Public License
233e7676 27;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
1df895b0 28
4aeea896 29(define-module (gnu packages admin)
f61e0e79 30 #:use-module ((guix licenses) #:prefix license:)
1df895b0 31 #:use-module (guix packages)
4fb7e0de 32 #:use-module (guix utils)
1df895b0 33 #:use-module (guix download)
aaff68ee 34 #:use-module (guix git-download)
fbc1a58f 35 #:use-module (guix build-system cmake)
1df895b0 36 #:use-module (guix build-system gnu)
4ecfbda7 37 #:use-module (guix build-system python)
c773aba8 38 #:use-module (guix build-system trivial)
59a43334 39 #:use-module (gnu packages)
c73d4c92 40 #:use-module (gnu packages base)
3d7a157c 41 #:use-module (gnu packages cyrus-sasl)
9a9e72d5 42 #:use-module (gnu packages ncurses)
9927622f 43 #:use-module (gnu packages readline)
f15164e7
LC
44 #:use-module (gnu packages linux)
45 #:use-module (gnu packages guile)
1dba6407 46 #:use-module (gnu packages gettext)
c73d4c92 47 #:use-module (gnu packages perl)
87216303 48 #:use-module (gnu packages tcl)
f61e0e79 49 #:use-module (gnu packages compression)
a7fd7b68 50 #:use-module (gnu packages tls)
61bdd0d8 51 #:use-module (gnu packages gnupg)
02c86a5e
LC
52 #:use-module (gnu packages bison)
53 #:use-module (gnu packages flex)
54 #:use-module (gnu packages glib)
3d7a157c 55 #:use-module (gnu packages openldap)
c1f73569 56 #:use-module (gnu packages mcrypt)
87216303 57 #:use-module (gnu packages pkg-config)
b36fcf95 58 #:use-module (gnu packages popt)
fccf2fe0 59 #:use-module (gnu packages texinfo)
e1485c7b 60 #:use-module (gnu packages groff)
42dc3af5
MW
61 #:use-module (gnu packages pciutils)
62 #:use-module (gnu packages libusb)
63 #:use-module (gnu packages libftdi)
c4492a16 64 #:use-module (gnu packages image)
da6c3749 65 #:use-module (gnu packages xorg)
d525da85 66 #:use-module (gnu packages python)
e932d371
LC
67 #:use-module (gnu packages man)
68 #:use-module (gnu packages autotools))
f15164e7 69
c1f73569
RW
70(define-public aide
71 (package
72 (name "aide")
73 (version "0.15.1")
74 (source (origin
75 (method url-fetch)
76 (uri (string-append "mirror://sourceforge/aide/aide/"
77 version "/aide-" version ".tar.gz"))
78 (sha256
79 (base32
80 "1vsrc0s62kv1i84skm6k6zy868gayjck268qwj38rpspc8c5qgih"))))
81 (build-system gnu-build-system)
82 (native-inputs
83 `(("bison" ,bison)
84 ("flex" ,flex)))
85 (inputs
86 `(("libgcrypt" ,libgcrypt)
87 ("libgpg-error" ,libgpg-error)
88 ("libmhash" ,libmhash)
89 ("zlib" ,zlib)))
90 (synopsis "File and directory integrity checker")
91 (description
92 "AIDE (Advanced Intrusion Detection Environment) is a file and directory
93integrity checker. It creates a database from the regular expression rules
94that it finds from its configuration files. Once this database is initialized
95it can be used to verify the integrity of the files. It has several message
96digest algorithms that are used to check the integrity of files. All of the
97usual file attributes can be checked for inconsistencies.")
98 (home-page "http://aide.sourceforge.net/")
99 (license license:gpl2+)))
100
f15164e7 101(define-public dmd
133056bd 102 ;; Deprecated. Kept around "just in case."
4006fd87
LC
103 (let ((base-version "0.2")
104 (patch-level "01"))
105 (package
106 (name "dmd")
107 (version (string-append base-version "." patch-level))
108 (source (origin
109 (method url-fetch)
110 (uri (string-append "ftp://alpha.gnu.org/gnu/dmd/dmd-"
111 base-version ".tar.gz"))
112 (sha256
113 (base32
114 "10fl4k96f17gqx2fv8iw9c61ld26gsk4bbrlfqckdmiimz1k175z"))
115 (patches
116 (list (origin
117 ;; This patch augments 'make-fork+exec-constructor' and
118 ;; is used by a bunch of services.
119 (method url-fetch)
120 (uri (string-append
1f7309a6
MW
121 "http://git.savannah.gnu.org/cgit/shepherd.git/"
122 "patch?id=d1d0ff30b3ed2b86b0a3c9bc048d2a855f8e31e6"))
4006fd87
LC
123 (sha256
124 (base32
125 "1lqymypixfiyb72d6bn24m06ry2q1ljnnv0qrc89pbb4z9azaa4d"))
126 (file-name "dmd-user-group.patch"))))))
127 (build-system gnu-build-system)
128 (arguments
129 '(#:configure-flags '("--localstatedir=/var")))
130 (native-inputs `(("pkg-config" ,pkg-config)))
131 (inputs `(("guile" ,guile-2.0)))
132 (synopsis "Daemon managing daemons")
133 (description
134 "GNU DMD is a daemon-managing daemon, meaning that it manages the
79c311b8
LC
135execution of system services, replacing similar functionality found in
136typical init systems. It provides dependency-handling through a convenient
137interface and is based on GNU Guile.")
4006fd87
LC
138 (license license:gpl3+)
139 (home-page "http://www.gnu.org/software/dmd/"))))
1df895b0 140
e932d371 141(define-public shepherd
133056bd
LC
142 (package
143 (name "shepherd")
ee37e1e5 144 (version "0.3.1")
133056bd
LC
145 (source (origin
146 (method url-fetch)
147 (uri (string-append "ftp://alpha.gnu.org/gnu/dmd/shepherd-"
148 version ".tar.gz"))
149 (sha256
150 (base32
ee37e1e5 151 "0f3yi3n4sl9myiay95yhv2a9an338qddfjrbv7da753ip66dkfz6"))))
133056bd
LC
152 (build-system gnu-build-system)
153 (arguments
154 '(#:configure-flags '("--localstatedir=/var")))
155 (native-inputs `(("pkg-config" ,pkg-config)))
156 (inputs `(("guile" ,guile-2.0)))
157 (synopsis "System service manager")
158 (description
159 "The GNU Shepherd is a daemon-managing daemon, meaning that it supervises
160the execution of system services, replacing similar functionality found in
161typical init systems. It provides dependency-handling through a convenient
162interface and is based on GNU Guile.")
163 (license license:gpl3+)
164 (home-page "http://www.gnu.org/software/shepherd/")))
e932d371 165
fbc1a58f
CR
166(define-public dfc
167 (package
168 (name "dfc")
180d7ac1 169 (version "3.0.4")
fbc1a58f
CR
170 (source
171 (origin
172 (method url-fetch)
173 (uri (string-append
180d7ac1 174 "http://projects.gw-computing.net/attachments/download/79/dfc-"
fbc1a58f
CR
175 version ".tar.gz"))
176 (sha256
177 (base32
180d7ac1 178 "0zk1ppx93ijimf4sbgqilxxikpsa2gmpbynknyh41xy7jbdjxp0b"))))
fbc1a58f
CR
179 (build-system cmake-build-system)
180 (arguments '(#:tests? #f)) ; There are no tests.
1dba6407 181 (native-inputs `(("gettext" ,gnu-gettext)))
fbc1a58f
CR
182 (home-page "http://projects.gw-computing.net/projects/dfc")
183 (synopsis "Display file system space usage using graphs and colors")
184 (description
185 "dfc (df color) is a modern version of df. It uses colors, draws pretty
186graphs and can export its output to different formats.")
f61e0e79 187 (license license:bsd-3)))
fbc1a58f 188
340c7033
CR
189(define-public htop
190 (package
191 (name "htop")
43a58615 192 (version "2.0.1")
340c7033
CR
193 (source (origin
194 (method url-fetch)
20e6c852 195 (uri (string-append "http://hisham.hm/htop/releases/"
340c7033
CR
196 version "/htop-" version ".tar.gz"))
197 (sha256
198 (base32
43a58615 199 "0rjn9ybqx5sav7z4gn18f1q6k23nmqyb6yydfgghzdznz9nn447l"))))
340c7033
CR
200 (build-system gnu-build-system)
201 (inputs
202 `(("ncurses" ,ncurses)))
203 (home-page "http://htop.sourceforge.net/")
204 (synopsis "Interactive process viewer")
205 (description
206 "This is htop, an interactive process viewer. It is a text-mode
207application (for console or X terminals) and requires ncurses.")
f61e0e79 208 (license license:gpl2)))
340c7033 209
1df895b0
LC
210(define-public pies
211 (package
212 (name "pies")
213 (version "1.2")
214 (source
215 (origin
216 (method url-fetch)
217 (uri (string-append "mirror://gnu/pies/pies-"
218 version ".tar.bz2"))
219 (sha256
220 (base32
221 "18w0dbg77i56cx1bwa789w0qi3l4xkkbascxcv2b6gbm0zmjg1g6"))))
222 (build-system gnu-build-system)
223 (home-page "http://www.gnu.org/software/pies/")
f50d2669 224 (synopsis "Program invocation and execution supervisor")
1df895b0 225 (description
79c311b8 226 "GNU pies is a program that supervises the invocation and execution of
a22dc0c4
LC
227other programs. It reads the list of programs to be started from its
228configuration file, executes them, and then monitors their status,
229re-executing them as necessary.")
f61e0e79 230 (license license:gpl3+)))
1df895b0
LC
231
232(define-public inetutils
233 (package
234 (name "inetutils")
8b1c8e4e 235 (version "1.9.4")
01eafd38
LC
236 (source (origin
237 (method url-fetch)
238 (uri (string-append "mirror://gnu/inetutils/inetutils-"
239 version ".tar.gz"))
240 (sha256
241 (base32
8b1c8e4e 242 "05n65k4ixl85dc6rxc51b1b732gnmm8xnqi424dy9f1nz7ppb3xy"))))
1df895b0 243 (build-system gnu-build-system)
01eafd38 244 (arguments `(;; FIXME: `tftp.sh' relies on `netstat' from utils-linux,
1df895b0
LC
245 ;; which is currently missing.
246 #:tests? #f))
9927622f
LC
247 (inputs `(("ncurses" ,ncurses)
248 ("readline" ,readline))) ; for 'ftp'
1df895b0 249 (home-page "http://www.gnu.org/software/inetutils/")
f50d2669 250 (synopsis "Basic networking utilities")
1df895b0 251 (description
a22dc0c4
LC
252 "Inetutils is a collection of common network programs, such as an ftp
253client and server, a telnet client and server, and an rsh client and server.")
f61e0e79 254 (license license:gpl3+)))
9a9e72d5
LC
255
256(define-public shadow
257 (package
258 (name "shadow")
ca2a55d4 259 (version "4.2.1")
9a9e72d5 260 (source (origin
ca2a55d4
SB
261 (method url-fetch)
262 (uri (string-append
263 "http://pkg-shadow.alioth.debian.org/releases/"
264 name "-" version ".tar.xz"))
265 (sha256
266 (base32
267 "0h9x1zdbq0pqmygmc1x459jraiqw4gqz8849v268crk78z8r621v"))))
9a9e72d5
LC
268 (build-system gnu-build-system)
269 (arguments
270 '(;; Assume System V `setpgrp (void)', which is the default on GNU
271 ;; variants (`AC_FUNC_SETPGRP' is not cross-compilation capable.)
272 #:configure-flags '("--with-libpam" "ac_cv_func_setpgrp_void=yes")
273
274 #:phases (alist-cons-before
275 'build 'set-nscd-file-name
276 (lambda* (#:key inputs #:allow-other-keys)
277 ;; Use the right file name for nscd.
278 (let ((libc (assoc-ref inputs "libc")))
279 (substitute* "lib/nscd.c"
280 (("/usr/sbin/nscd")
281 (string-append libc "/sbin/nscd")))))
282 (alist-cons-after
283 'install 'remove-groups
284 (lambda* (#:key outputs #:allow-other-keys)
285 ;; Remove `groups', which is already provided by Coreutils.
286 (let* ((out (assoc-ref outputs "out"))
287 (bin (string-append out "/bin"))
ca2a55d4 288 (man (string-append out "/share/man")))
9a9e72d5
LC
289 (delete-file (string-append bin "/groups"))
290 (for-each delete-file (find-files man "^groups\\."))
291 #t))
8d846470 292 %standard-phases))))
9a9e72d5
LC
293
294 (inputs (if (string-suffix? "-linux"
295 (or (%current-target-system)
296 (%current-system)))
297 `(("linux-pam" ,linux-pam))
298 '()))
299 (home-page "http://pkg-shadow.alioth.debian.org/")
300 (synopsis "Authentication-related tools such as passwd, su, and login")
301 (description
302 "Shadow provides a number of authentication-related tools, including:
303login, passwd, su, groupadd, and useradd.")
304
305 ;; The `vipw' program is GPLv2+.
306 ;; libmisc/salt.c is public domain.
f61e0e79 307 (license license:bsd-3)))
1e151896
LC
308
309(define-public mingetty
310 (package
311 (name "mingetty")
312 (version "1.08")
313 (source (origin
314 (method url-fetch)
315 (uri (string-append "mirror://sourceforge/mingetty/mingetty-"
316 version ".tar.gz"))
317 (sha256
318 (base32
319 "05yxrp44ky2kg6qknk1ih0kvwkgbn9fbz77r3vci7agslh5wjm8g"))))
320 (build-system gnu-build-system)
321 (arguments
322 `(#:phases (alist-replace 'configure
323 (lambda* (#:key inputs outputs
324 #:allow-other-keys)
325 (let* ((out (assoc-ref outputs "out"))
326 (man8 (string-append
327 out "/share/man/man8"))
328 (sbin (string-append out "/sbin"))
329 (shadow (assoc-ref inputs "shadow"))
330 (login (string-append shadow
331 "/bin/login")))
332 (substitute* "Makefile"
333 (("^SBINDIR.*")
334 (string-append "SBINDIR = " out
335 "/sbin\n"))
336 (("^MANDIR.*")
337 (string-append "MANDIR = " out
338 "/share/man/man8\n")))
339
340 ;; Pick the right 'login' by default.
341 (substitute* "mingetty.c"
342 (("\"/bin/login\"")
343 (string-append "\"" login "\"")))
344
345 (mkdir-p sbin)
346 (mkdir-p man8)))
347 %standard-phases)
348 #:tests? #f)) ; no tests
349 (inputs `(("shadow" ,shadow)))
350
351 (home-page "http://sourceforge.net/projects/mingetty")
352 (synopsis "Getty for the text console")
353 (description
354 "Small console getty that is started on the Linux text console,
355asks for a login name and then transfers over to 'login'. It is extended to
356allow automatic login and starting any app.")
f61e0e79 357 (license license:gpl2+)))
c773aba8
LC
358
359(define-public net-base
360 (package
361 (name "net-base")
db719df7 362 (version "5.3")
c773aba8
LC
363 (source (origin
364 (method url-fetch)
365 (uri (string-append
34af3684 366 "mirror://debian/pool/main/n/netbase/netbase_"
db719df7 367 version ".tar.xz"))
c773aba8
LC
368 (sha256
369 (base32
db719df7 370 "12xqjwg3p4rzmmh2iib6sigm9l29y3dgk74mmnw64k84jnbwdxl1"))))
c773aba8
LC
371 (build-system trivial-build-system)
372 (arguments
373 `(#:modules ((guix build utils))
374 #:builder (begin
375 (use-modules (guix build utils)
376 (srfi srfi-26))
377
378 (let* ((source (assoc-ref %build-inputs "source"))
379 (tar (assoc-ref %build-inputs "tar"))
db719df7 380 (xz (assoc-ref %build-inputs "xz"))
c773aba8
LC
381 (output (assoc-ref %outputs "out"))
382 (etc (string-append output "/etc")))
db719df7 383 (setenv "PATH" (string-append xz "/bin"))
c773aba8
LC
384 (system* (string-append tar "/bin/tar") "xvf"
385 source)
386 (chdir ,(string-append "netbase-" version))
387 (mkdir-p etc)
388 (for-each copy-file
389 '("etc-services" "etc-protocols" "etc-rpc")
390 (map (cut string-append etc "/" <>)
391 '("services" "protocols" "rpc")))
392 #t))))
393 (native-inputs `(("tar" ,tar)
f61e0e79 394 ("xz" ,xz)))
c773aba8
LC
395 (synopsis "IANA protocol, port, and RPC number assignments")
396 (description
397 "This package provides the /etc/services, /etc/protocols, and /etc/rpc
398files, which contain information about the IANA-assigned port, protocol, and
e881752c 399ONC RPC numbers.")
c773aba8 400 (home-page "http://packages.debian.org/sid/netbase")
f61e0e79 401 (license license:gpl2)))
94c4a58a
LC
402
403(define-public netcat
404 (package
405 (name "netcat")
406 (version "0.7.1")
407 (source (origin
408 (method url-fetch)
409 (uri (string-append "mirror://sourceforge/netcat/netcat-"
410 version ".tar.bz2"))
411 (sha256
412 (base32
413 "1frjcdkhkpzk0f84hx6hmw5l0ynpmji8vcbaxg8h5k2svyxz0nmm"))))
414 (build-system gnu-build-system)
0e4e89c2
MW
415 (arguments
416 `(#:configure-flags
417 ;; By default, man and info pages are put in PREFIX/{man,info},
418 ;; but we want them in PREFIX/share/{man,info}.
419 (let ((out (assoc-ref %outputs "out")))
420 (list (string-append "--mandir=" out "/share/man")
421 (string-append "--infodir=" out "/share/info")))))
94c4a58a
LC
422 (home-page "http://netcat.sourceforge.net")
423 (synopsis "Read and write data over TCP/IP")
424 (description
425 "Netcat is a featured networking utility which reads and writes data
426across network connections, using the TCP/IP protocol. It is designed to be a
427reliable \"back-end\" tool that can be used directly or easily driven by other
35b9e423 428programs and scripts. At the same time, it is a feature-rich network debugging
94c4a58a
LC
429and exploration tool, since it can create almost any kind of connection you
430would need and has several interesting built-in capabilities.")
f61e0e79 431 (license license:gpl2+)))
d038cac1
LC
432
433(define-public alive
434 (package
435 (name "alive")
436 (version "2.0.2")
437 (source (origin
438 (method url-fetch)
439 (uri (string-append "mirror://gnu/alive/alive-"
440 version ".tar.xz"))
441 (sha256
442 (base32
443 "1vrzg51ai68x9yld7vbgl58sxaw5qpx8rbakwcxn4cqq6vpxj38j"))))
444 (build-system gnu-build-system)
445 (arguments '(#:configure-flags '("alive_cv_nice_ping=yes")))
446 (inputs `(("guile" ,guile-2.0)
447 ("inetutils" ,inetutils)))
448 (home-page "http://www.gnu.org/software/alive/")
449 (synopsis "Autologin and keep-alive daemon")
450 (description
451 "GNU Alive sends periodic pings to a server, generally to keep a
452connection alive.")
f61e0e79 453 (license license:gpl3+)))
c73d4c92
LC
454
455(define-public isc-dhcp
6548b1e1
MW
456 (let* ((bind-major-version "9")
457 (bind-minor-version "9")
458 (bind-patch-version "8")
459 (bind-release-type "-P")
2f9862ff 460 (bind-release-version "4")
6548b1e1
MW
461 (bind-version (string-append bind-major-version
462 "."
463 bind-minor-version
464 "."
465 bind-patch-version
466 bind-release-type
467 bind-release-version)))
468 (package
469 (name "isc-dhcp")
75418ae0 470 (version "4.3.3-P1")
6548b1e1
MW
471 (source (origin
472 (method url-fetch)
473 (uri (string-append "http://ftp.isc.org/isc/dhcp/"
474 version "/dhcp-" version ".tar.gz"))
475 (sha256
476 (base32
75418ae0 477 "08crcsmg4dm2v533aq3883ik8mf4vvvd6r998r4vrgx1zxnqj7n1"))))
6548b1e1
MW
478 (build-system gnu-build-system)
479 (arguments
e54465ff
MW
480 `(#:parallel-build? #f
481 #:phases
6548b1e1
MW
482 (modify-phases %standard-phases
483 (add-after 'unpack 'replace-bundled-bind
484 (lambda* (#:key inputs #:allow-other-keys)
485 (delete-file "bind/bind.tar.gz")
486 (copy-file (assoc-ref inputs "bind-source-tarball")
487 "bind/bind.tar.gz")
488 (chmod "bind/bind.tar.gz" #o644)
489 (substitute* "bind/version.tmp"
490 (("^MAJORVER=.*")
491 (format #f "MAJORVER=~a\n" ,bind-major-version))
492 (("^MINORVER=.*")
493 (format #f "MINORVER=~a\n" ,bind-minor-version))
494 (("^PATCHVER=.*")
495 (format #f "PATCHVER=~a\n" ,bind-patch-version))
496 (("^RELEASETYPE=.*")
497 (format #f "RELEASETYPE=~a\n" ,bind-release-type))
498 (("^RELEASEVER=.*")
499 (format #f "RELEASEVER=~a\n" ,bind-release-version)))
500 #t))
501 (add-after 'configure 'post-configure
502 (lambda* (#:key outputs #:allow-other-keys)
503 ;; Point to the right client script, which will be
504 ;; installed in a later phase.
505 (substitute* "includes/dhcpd.h"
506 (("#define[[:blank:]]+_PATH_DHCLIENT_SCRIPT.*")
507 (let ((out (assoc-ref outputs "out")))
508 (string-append "#define _PATH_DHCLIENT_SCRIPT \""
509 out "/libexec/dhclient-script"
510 "\"\n"))))
c73d4c92 511
6548b1e1
MW
512 ;; During the 'build' phase, 'bind.tar.gz' is extracted, so
513 ;; we must patch shebangs in there and make sure the right
514 ;; shell is used.
515 (with-directory-excursion "bind"
516 (substitute* "Makefile"
517 (("\\./configure")
518 (let ((sh (which "sh")))
519 (string-append "./configure CONFIG_SHELL="
520 sh " SHELL=" sh))))
c73d4c92 521
6548b1e1
MW
522 (let ((bind-directory (string-append "bind-" ,bind-version)))
523 (system* "tar" "xf" "bind.tar.gz")
524 (for-each patch-shebang
525 (find-files bind-directory ".*"))
526 (zero? (system* "tar" "cf" "bind.tar.gz"
527 bind-directory
528 ;; avoid non-determinism in the archive
529 "--sort=name"
530 "--mtime=@0"
531 "--owner=root:0"
532 "--group=root:0"))))))
533 (add-after 'install 'post-install
534 (lambda* (#:key inputs outputs #:allow-other-keys)
535 ;; Install the dhclient script for GNU/Linux and make sure
536 ;; if finds all the programs it needs.
537 (let* ((out (assoc-ref outputs "out"))
538 (libexec (string-append out "/libexec"))
539 (coreutils (assoc-ref inputs "coreutils"))
540 (inetutils (assoc-ref inputs "inetutils"))
541 (net-tools (assoc-ref inputs "net-tools"))
542 (sed (assoc-ref inputs "sed")))
543 (substitute* "client/scripts/linux"
544 (("/sbin/ip")
545 (string-append (assoc-ref inputs "iproute")
546 "/sbin/ip")))
c73d4c92 547
6548b1e1
MW
548 (mkdir-p libexec)
549 (copy-file "client/scripts/linux"
550 (string-append libexec "/dhclient-script"))
c73d4c92 551
6548b1e1
MW
552 (wrap-program
553 (string-append libexec "/dhclient-script")
554 `("PATH" ":" prefix
555 ,(map (lambda (dir)
556 (string-append dir "/bin:"
557 dir "/sbin"))
558 (list inetutils net-tools coreutils sed))))))))))
c73d4c92 559
6548b1e1 560 (native-inputs `(("perl" ,perl)))
c73d4c92 561
6548b1e1
MW
562 (inputs `(("inetutils" ,inetutils)
563 ("net-tools" ,net-tools)
564 ("iproute" ,iproute)
dc343935 565
6548b1e1
MW
566 ;; XXX isc-dhcp bundles a copy of bind that has security
567 ;; flaws, so we use a newer version.
568 ("bind-source-tarball"
569 ,(origin
570 (method url-fetch)
571 (uri (string-append "http://ftp.isc.org/isc/bind9/"
572 bind-version
573 "/bind-" bind-version ".tar.gz"))
574 (sha256
575 (base32
2f9862ff 576 "1wl9kl0630dc1qjrf7fnp8cscagfm5qgmisi0zhr1p6iwi9bil2y"))))
c73d4c92 577
6548b1e1
MW
578 ;; When cross-compiling, we need the cross Coreutils and sed.
579 ;; Otherwise just use those from %FINAL-INPUTS.
580 ,@(if (%current-target-system)
581 `(("coreutils" ,coreutils)
582 ("sed" ,sed))
583 '())))
584
585 (home-page "http://www.isc.org/products/DHCP/")
586 (synopsis "Dynamic Host Configuration Protocol (DHCP) tools")
587 (description
588 "ISC's Dynamic Host Configuration Protocol (DHCP) distribution provides a
c73d4c92
LC
589reference implementation of all aspects of DHCP, through a suite of DHCP
590tools: server, client, and relay agent.")
6548b1e1 591 (license license:isc))))
02c86a5e
LC
592
593(define-public libpcap
594 (package
595 (name "libpcap")
42e8f734 596 (version "1.7.4")
02c86a5e
LC
597 (source (origin
598 (method url-fetch)
599 (uri (string-append "http://www.tcpdump.org/release/libpcap-"
600 version ".tar.gz"))
601 (sha256
602 (base32
42e8f734 603 "1c28ykkizd7jqgzrfkg7ivqjlqs9p6lygp26bsw2i0z8hwhi3lvs"))))
02c86a5e
LC
604 (build-system gnu-build-system)
605 (native-inputs `(("bison" ,bison) ("flex" ,flex)))
e03f6d5e
RW
606 (arguments '(#:configure-flags '("--with-pcap=linux")
607 #:tests? #f)) ; no 'check' target
02c86a5e
LC
608 (home-page "http://www.tcpdump.org")
609 (synopsis "Network packet capture library")
610 (description
611 "libpcap is an interface for user-level packet capture. It provides a
612portable framework for low-level network monitoring. Applications include
613network statistics collection, security monitoring, network debugging, etc.")
614
615 ;; fad-*.c and a couple other files are BSD-4, but the rest is BSD-3.
f61e0e79 616 (license license:bsd-3)))
02c86a5e 617
1da34f5a
LC
618(define-public tcpdump
619 (package
620 (name "tcpdump")
6e32aa56 621 (version "4.7.4")
1da34f5a
LC
622 (source (origin
623 (method url-fetch)
624 (uri (string-append "http://www.tcpdump.org/release/tcpdump-"
625 version ".tar.gz"))
626 (sha256
627 (base32
6e32aa56 628 "1byr8w6grk08fsq0444jmcz9ar89lq9nf4mjq2cny0w9k8k21rbb"))))
1da34f5a 629 (build-system gnu-build-system)
10db1e6c 630 (inputs `(("libpcap" ,libpcap)
cc2b77df 631 ("openssl" ,openssl)))
1da34f5a 632 (native-inputs `(("perl" ,perl))) ; for tests
1da34f5a
LC
633 (home-page "http://www.tcpdump.org/")
634 (synopsis "Network packet analyzer")
635 (description
636 "Tcpdump is a command-line tool to analyze network traffic passing
637through the network interface controller.")
f61e0e79 638 (license license:bsd-3)))
1da34f5a 639
02c86a5e
LC
640(define-public jnettop
641 (package
642 (name "jnettop")
643 (version "0.13.0")
644 (source (origin
645 (method url-fetch)
646 (uri (string-append "http://jnettop.kubs.info/dist/jnettop-"
647 version ".tar.gz"))
648 (sha256
649 (base32
650 "1855np7c4b0bqzhf1l1dyzxb90fpnvrirdisajhci5am6als31z9"))))
651 (build-system gnu-build-system)
652 (native-inputs
653 `(("pkg-config" ,pkg-config)))
654 (inputs
655 `(("glib" ,glib)
656 ("ncurses" ,ncurses)
657 ("libpcap" ,libpcap)))
658 (home-page "http://jnettop.kubs.info/")
659 (synopsis "Visualize network traffic by bandwidth use")
660 (description
661 "Jnettop is a traffic visualiser, which captures traffic going
662through the host it is running from and displays streams sorted
663by bandwidth they use.")
f61e0e79 664 (license license:gpl2+)))
87216303
EB
665
666(define-public clusterssh
667 (package
668 (name "clusterssh")
669 (version "3.28")
670 (source (origin
671 (method url-fetch)
672 (uri (string-append "mirror://sourceforge/clusterssh/"
673 "clusterssh-" version ".tar.gz"))
674 (sha256
675 (base32
676 "1bwggpvaj2al5blg1ynapviv2kpydffpzq2zkhi81najnvzc1rr7"))))
677 (build-system gnu-build-system)
678 (inputs `(("perl" ,perl)))
679 (propagated-inputs `(("xterm" ,xterm)
680 ("perl-tk" ,perl-tk)
681 ("perl-x11-protocol" ,perl-x11-protocol)))
682 (arguments
683 `(#:phases
684 (alist-cons-after
685 'install 'set-load-paths
686 (lambda* (#:key inputs outputs #:allow-other-keys)
687 ;; Put the perl-tk and perl-x11-protocol modules in the perl inc
688 ;; path for PROG
689 (let* ((out (assoc-ref outputs "out"))
690 (prog (string-append out "/bin/cssh"))
691 (perl-ver ,(package-version perl))
692 (x11-inc (string-append
693 (assoc-ref inputs "perl-x11-protocol")
694 "/lib/perl5/site_perl/" perl-ver))
695 (tk-inc (string-append
696 (assoc-ref inputs "perl-tk")
697 "/lib/perl5/site_perl/" perl-ver
698 "/x86_64-linux")))
699 (wrap-program
700 prog
701 `("PERL5LIB" ":" prefix (,x11-inc ,tk-inc)))))
702 %standard-phases)))
703 ;; The clusterssh.sourceforge.net address requires login to view
704 (home-page "http://sourceforge.net/projects/clusterssh/")
705 (synopsis "Secure concurrent multi-server terminal control")
706 (description
707 "ClusterSSH controls a number of xterm windows via a single graphical
708console window to allow commands to be interactively run on multiple servers
709over ssh connections.")
f61e0e79 710 (license license:gpl2+)))
fccf2fe0
LC
711
712(define-public rottlog
713 (package
714 (name "rottlog")
715 (version "0.72.2")
716 (source (origin
717 (method url-fetch)
718 (uri (string-append "mirror://gnu/rottlog/rottlog-"
719 version ".tar.gz"))
720 (sha256
721 (base32
722 "0751mb9l2f0jrk3vj6q8ilanifd121dliwk0c34g8k0dlzsv3kd7"))
723 (modules '((guix build utils)))
724 (snippet
725 '(substitute* "Makefile.in"
726 (("-o \\$\\{LOG_OWN\\} -g \\$\\{LOG_GROUP\\}")
727 ;; Don't try to chown root.
728 "")
729 (("mkdir -p \\$\\(ROTT_STATDIR\\)")
730 ;; Don't attempt to create /var/lib/rottlog.
731 "true")))))
732 (build-system gnu-build-system)
733 (arguments
734 '(#:configure-flags (list (string-append "ROTT_ETCDIR="
735 (assoc-ref %outputs "out")
736 "/etc")
737 "--localstatedir=/var")
738 #:phases (alist-cons-after
739 'install 'install-info
740 (lambda _
741 (zero? (system* "make" "install-info")))
742 %standard-phases)))
743 (native-inputs `(("texinfo" ,texinfo)
744 ("util-linux" ,util-linux))) ; for 'cal'
745 (home-page "http://www.gnu.org/software/rottlog/")
746 (synopsis "Log rotation and management")
747 (description
748 "GNU Rot[t]log is a program for managing log files. It is used to
749automatically rotate out log files when they have reached a given size or
750according to a given schedule. It can also be used to automatically compress
751and archive such logs. Rot[t]log will mail reports of its activity to the
752system administrator.")
f61e0e79 753 (license license:gpl3+)))
e1485c7b
LC
754
755(define-public sudo
756 (package
757 (name "sudo")
0086ec73 758 (version "1.8.15")
e1485c7b
LC
759 (source (origin
760 (method url-fetch)
761 (uri
762 (list (string-append "http://www.sudo.ws/sudo/dist/sudo-"
763 version ".tar.gz")
764 (string-append "ftp://ftp.sudo.ws/pub/sudo/OLD/sudo-"
765 version ".tar.gz")))
766 (sha256
767 (base32
16aa6491
MW
768 "0263gi6i19fyzzc488n0qw3m518i39f6a7qmrfvahk9j10bkh5j3"))
769 (patches (list (search-patch "sudo-CVE-2015-5602.patch")))))
e1485c7b
LC
770 (build-system gnu-build-system)
771 (arguments
0086ec73
LC
772 `(#:configure-flags
773 (list "--with-logpath=/var/log/sudo.log"
7b78f359 774 "--with-rundir=/var/run/sudo" ;must be cleaned up at boot time
0086ec73
LC
775 "--with-vardir=/var/db/sudo"
776 "--with-iologdir=/var/log/sudo-io"
777
778 ;; 'visudo.c' expects _PATH_MV to be defined, but glibc doesn't
779 ;; provide it.
780 (string-append "CPPFLAGS=-D_PATH_MV='\""
781 (assoc-ref %build-inputs "coreutils")
782 "/bin/mv\"'"))
511495fb
LC
783
784 ;; Avoid non-determinism; see <http://bugs.gnu.org/21918>.
785 #:parallel-build? #f
786
e1485c7b
LC
787 #:phases (alist-cons-before
788 'configure 'pre-configure
789 (lambda _
0086ec73
LC
790 (substitute* "src/sudo_usage.h.in"
791 ;; Do not capture 'configure' arguments since we would
792 ;; unduly retain references, and also because the
793 ;; CPPFLAGS above would close the string literal
794 ;; prematurely.
795 (("@CONFIGURE_ARGS@") "\"\""))
e1485c7b 796 (substitute* (find-files "." "Makefile\\.in")
0086ec73 797 (("-o [[:graph:]]+ -g [[:graph:]]+")
e1485c7b
LC
798 ;; Allow installation as non-root.
799 "")
800 (("^install: (.*)install-sudoers(.*)" _ before after)
801 ;; Don't try to create /etc/sudoers.
e1626e3b
SB
802 (string-append "install: " before after "\n"))
803 (("\\$\\(DESTDIR\\)\\$\\(rundir\\)")
804 ;; Don't try to create /run/sudo.
805 "$(TMPDIR)/dummy")
806 (("\\$\\(DESTDIR\\)\\$\\(vardir\\)")
807 ;; Don't try to create /var/db/sudo.
808 "$(TMPDIR)/dummy")))
e1485c7b
LC
809 %standard-phases)
810
811 ;; XXX: The 'testsudoers' test series expects user 'root' to exist, but
812 ;; the chroot's /etc/passwd doesn't have it. Turn off the tests.
813 #:tests? #f))
814 (inputs
815 `(("groff" ,groff)
816 ("linux-pam" ,linux-pam)
817 ("coreutils" ,coreutils)))
818 (home-page "http://www.sudo.ws/")
819 (synopsis "Run commands as root")
820 (description
821 "Sudo (su \"do\") allows a system administrator to delegate authority to
822give certain users (or groups of users) the ability to run some (or all)
823commands as root or another user while providing an audit trail of the
824commands and their arguments.")
825
826 ;; See <http://www.sudo.ws/sudo/license.html>.
f61e0e79 827 (license license:x11)))
952298d7 828
1ce6f43a 829(define-public wpa-supplicant-minimal
952298d7 830 (package
1ce6f43a 831 (name "wpa-supplicant-minimal")
e91e28d6 832 (version "2.5")
952298d7
LC
833 (source (origin
834 (method url-fetch)
835 (uri (string-append
9a727700 836 "http://w1.fi/releases/wpa_supplicant-"
952298d7
LC
837 version
838 ".tar.gz"))
839 (sha256
840 (base32
419630e0
MW
841 "05mkp5bx1c3z7h5biddsv0p49gkrq9ksany3anp4wdiv92p5prfc"))
842 (patches
843 (map search-patch '("wpa-supplicant-CVE-2015-5310.patch"
844 "wpa-supplicant-CVE-2015-5314.patch"
845 "wpa-supplicant-CVE-2015-5315.patch"
846 "wpa-supplicant-CVE-2015-5316.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")
984 (version "2.12")
985 (source (origin
986 (method url-fetch)
987 (uri (string-append
988 "mirror://savannah/dmidecode/dmidecode-"
989 version ".tar.bz2"))
990 (sha256
991 (base32
992 "122hgaw8mpqdfra159lfl6pyk3837giqx6vq42j64fjnbl2z6gwi"))))
993 (build-system gnu-build-system)
994 (arguments
995 '(#:phases (alist-delete 'configure %standard-phases)
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)
1076 (uri (string-append "mirror://sourceforge/detox/detox-"
1077 version ".tar.bz2"))
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")
1103 (version "6.14")
1104 (source (origin
1105 (method url-fetch)
1106 (uri (string-append "http://www.cgsecurity.org/testdisk-"
1107 version ".tar.bz2"))
1108 (sha256
1109 (base32
1110 "0v1jap83f5h99zv01v3qmqm160d36n4ysi0gyq7xzb3mqgmw75x5"))))
1111 (build-system gnu-build-system)
1112 (inputs
1113 `(;; ("ntfs" ,ntfs)
1114 ("util-linux" ,util-linux)
cc2b77df 1115 ("openssl" ,openssl)
f61e0e79 1116 ("zlib" ,zlib)
c4492a16
LC
1117 ("e2fsprogs" ,e2fsprogs)
1118 ("libjpeg" ,libjpeg)
1119 ("ncurses" ,ncurses)))
1120 (home-page "http://www.cgsecurity.org/wiki/TestDisk")
1121 (synopsis "Data recovery tool")
1122 (description
1123 "TestDisk is a program for data recovery, primarily designed to help
1124recover lost partitions and/or make non-booting disks bootable again.")
f61e0e79 1125 (license license:gpl2+)))
c4492a16 1126
15926aec
AS
1127(define-public tree
1128 (package
1129 (name "tree")
1130 (version "1.7.0")
1131 (source (origin
1132 (method url-fetch)
1133 (uri (string-append
1134 "http://mama.indstate.edu/users/ice/tree/src/tree-"
1135 version ".tgz"))
1136 (sha256
1137 (base32 "04kviw799qxly08zb8n5mgxfd96gyis6x69q2qiw86jnh87c4mv9"))))
1138 (build-system gnu-build-system)
1139 (arguments
1140 '(#:phases (alist-delete 'configure %standard-phases)
1141 #:tests? #f ; no check target
1142 #:make-flags (let ((out (assoc-ref %outputs "out")))
1143 (list (string-append "prefix=" out)))))
1144 (synopsis "Recursively list the contents of a directory")
1145 (description
1146 "Tree is a recursive directory listing command that produces a depth
1147indented listing of files, which is colorized ala dircolors if the LS_COLORS
1148environment variable is set and output is to tty.")
1149 (home-page "http://mama.indstate.edu/users/ice/tree/")
1150 (license license:gpl2+)))
1151
c2619e10
LC
1152(define-public direvent
1153 (package
1154 (name "direvent")
1155 (version "5.0")
1156 (source (origin
1157 (method url-fetch)
1158 (uri (string-append "mirror://gnu/direvent/direvent-"
1159 version ".tar.gz"))
1160 (sha256
1161 (base32
1162 "1i14131y6m8wvirz6piw4zxz2q1kbpl0lniv5kl55rx4k372dg8z"))
1163 (modules '((guix build utils)))
1164 (snippet '(substitute* "tests/testsuite"
1165 (("#![[:blank:]]?/bin/sh")
1166 "#!$SHELL")))))
1167 (build-system gnu-build-system)
1168 (arguments
1169 '(#:phases (alist-cons-before
1170 'build 'patch-/bin/sh
1171 (lambda* (#:key inputs #:allow-other-keys)
1172 ;; Use the right shell when executing the watcher.
1173 (let ((bash (assoc-ref inputs "bash")))
1174 (substitute* "src/direvent.c"
1175 (("\"/bin/sh\"")
1176 (string-append "\"" bash "/bin/sh\"")))))
1177 %standard-phases)))
1178 (home-page "http://www.gnu.org/software/direvent/")
1179 (synopsis "Daemon to monitor directories for events such as file removal")
1180 (description
1181 "A daemon that monitors directories for events, such as creating,
35b9e423 1182deleting or modifying files. It can monitor different sets of directories for
c2619e10
LC
1183different events. When an event is detected, direvent calls a specified
1184external program with information about the event, such as the location
c5779c93
LC
1185within the file system where it occurred. Thus, \"direvent\" provides an
1186easy way to react immediately if given files undergo changes, for example, to
c2619e10 1187track changes in important system configuration files.")
f61e0e79 1188 (license license:gpl3+)))
da6c3749
TUBK
1189
1190(define-public libcap-ng
1191 (package
1192 (name "libcap-ng")
1193 (version "0.7.4")
1194 (source (origin
1195 (method url-fetch)
1196 (uri (string-append
1197 "http://people.redhat.com/sgrubb/libcap-ng/libcap-ng-"
1198 version ".tar.gz"))
1199 (sha256
1200 (base32
1201 "0ssvnh4cvhya0c1j6k6192zvqcq7nc0x01fb5nwhr0prfqr0i8j8"))))
1202 (build-system gnu-build-system)
1203 (inputs `(("python" ,python)))
1204 (home-page "http://people.redhat.com/sgrubb/libcap-ng/")
1205 (synopsis "Library for more easily working with POSIX capabilities")
1206 (description
1207 "The libcap-ng library is intended to make programming with POSIX
1208capabilities easier than the traditional libcap library. It includes
1209utilities that can analyse all currently running applications and print out
1210any capabilities and whether or not it has an open ended bounding set. The
1211included utilities are designed to let admins and developers spot apps from
1212various ways that may be running with too much privilege.")
1213 ;; The library is lgpl2.1+, but also ships some utils which are gpl2+.
f61e0e79 1214 (license (list license:lgpl2.1+ license:gpl2+))))
d02f2cc4
TUBK
1215
1216(define-public smartmontools
1217 (package
1218 (name "smartmontools")
1219 (version "6.3")
1220 (source (origin
1221 (method url-fetch)
1222 (uri (string-append
1223 "mirror://sourceforge/smartmontools/smartmontools/"
1224 version "/smartmontools-" version ".tar.gz"))
1225 (sha256
1226 (base32
1227 "06gy71jh2d3gcfmlbbrsqw7215knkfq59q3j6qdxfrar39fhcxx7"))))
1228 (build-system gnu-build-system)
1229 (inputs `(("libcap-ng" ,libcap-ng)))
1230 (home-page "http://www.smartmontools.org/")
1231 (synopsis "S.M.A.R.T. harddisk control and monitoring tools")
1232 (description
1233 "The smartmontools package contains utility programs to control and
1234monitor storage systems using the Self-Monitoring, Analysis and Reporting
1235Technology System (S.M.A.R.T.) built into most modern ATA and SCSI harddisks.
1236In many cases, these utilities will provide advanced warning of disk
1237degradation and failure.")
f61e0e79 1238 (license license:gpl2+)))
6efd0823
RW
1239
1240(define-public fdupes
1241 (package
1242 (name "fdupes")
1243 (version "1.51")
1244 (source
1245 (origin
1246 (method url-fetch)
1247 (uri (string-append
1248 "https://github.com/adrianlopezroche/fdupes/archive/fdupes-"
1249 version ".tar.gz"))
1250 (sha256
1251 (base32
1252 "11j96vxl9vg3jsnxqxskrv3gad6dh7hz2zpyc8n31xzyxka1c7kn"))))
1253 (build-system gnu-build-system)
1254 (arguments
1255 '(#:phases (alist-delete 'configure %standard-phases)
1256 #:tests? #f ; no 'check' target
1257 #:make-flags (list (string-append "PREFIX="
1258 (assoc-ref %outputs "out")))))
1259 (home-page "https://github.com/adrianlopezroche/fdupes")
1260 (synopsis "Identify duplicate files")
1261 (description
1262 "fdupes is a program for identifying duplicate files residing within
1263specified directories.")
1264 (license license:expat)))
4ecfbda7
DT
1265
1266(define-public graphios
1267 (package
1268 (name "graphios")
1269 (version "2.0.3")
1270 (source
1271 (origin
1272 (method url-fetch)
1273 (uri (string-append
1274 "https://pypi.python.org/packages/source/g/graphios/graphios-"
1275 version ".tar.gz"))
1276 (sha256
1277 (base32
1278 "1h87hvc315wg6lklbf4l7csd3n5pgljwrfli1p3nasdi0izgn66i"))))
1279 (build-system python-build-system)
1280 (arguments
1281 ;; Be warned: Building with Python 3 succeeds, but the build process
1282 ;; throws a syntax error that is ignored.
1283 `(#:python ,python-2
1284 #:phases
1285 (modify-phases %standard-phases
1286 (add-before 'build 'fix-setup.py
1287 (lambda* (#:key outputs #:allow-other-keys)
1288 ;; Fix hardcoded, unprefixed file names.
1289 (let ((out (assoc-ref outputs "out")))
1290 (substitute* '("setup.py")
1291 (("/etc") (string-append out "/etc"))
1292 (("/usr") out)
1293 (("distro_ver = .*") "distro_ver = ''"))
1294 #t))))))
1295 (inputs
1296 `(("python-setuptools" ,python2-setuptools)))
1297 (home-page "https://github.com/shawn-sterling/graphios")
1298 (synopsis "Emit Nagios metrics to Graphite, Statsd, and Librato")
1299 (description
1300 "Graphios is a script to emit nagios perfdata to various upstream metrics
1301processing and time-series systems. It's currently compatible with Graphite,
1302Statsd, Librato and InfluxDB. Graphios can emit Nagios metrics to any number
1303of supported upstream metrics systems simultaneously.")
1304 (license license:gpl2+)))
8d801045
ED
1305
1306(define-public ansible
1307 (package
1308 (name "ansible")
1309 (version "1.9.2")
1310 (source
1311 (origin
1312 (method url-fetch)
1313 (uri (string-append
1314 "https://pypi.python.org/packages/source/a/ansible/ansible-"
1315 version
1316 ".tar.gz"))
1317 (sha256
1318 (base32
1319 "007fzgsqaahb0y4gjdxxmir9kcni7wph2z14jhqgpz88idrz8pn2"))))
1320 (build-system python-build-system)
1321 (native-inputs
1322 `(("python2-setuptools" ,python2-setuptools)
1323 ("python2-pycrypto" ,python2-pycrypto)
1324 ("python2-httplib2" ,python2-httplib2)
1325 ("python2-passlib" ,python2-passlib)
1326 ("python2-nose" ,python2-nose)
1327 ("python2-mock" ,python2-mock)
1328 ("python2-jinja2" ,python2-jinja2)
1329 ("python2-pyyaml" ,python2-pyyaml)
1330 ("python2-paramiko" ,python2-paramiko)))
1331 (inputs
1332 `(("python2-pycrypto" ,python2-pycrypto)
1333 ("python2-jinja2" ,python2-jinja2)
1334 ("python2-pyyaml" ,python2-pyyaml)
1335 ("python2-paramiko" ,python2-paramiko)))
1336 (arguments
1337 `(#:python ,python-2)) ; incompatible with Python 3
1338 (home-page "http://ansible.com/")
1339 (synopsis "Radically simple IT automation")
1340 (description "Ansible is a radically simple IT automation system. It
1341handles configuration-management, application deployment, cloud provisioning,
1342ad-hoc task-execution, and multinode orchestration - including trivializing
1343things like zero downtime rolling updates with load balancers.")
1344 (license license:gpl3+)))
44157e9f
EB
1345
1346(define-public cpulimit
1347 (package
1348 (name "cpulimit")
1349 (version "0.2")
1350 (source
1351 (origin
1352 (method url-fetch)
1353 (uri (string-append "https://github.com/opsengine/cpulimit/archive/v"
1354 version ".tar.gz"))
1355 (file-name (string-append name "-" version ".tar.gz"))
1356 (sha256
1357 (base32
1358 "1nn2w849xd5bw4y5sqnll29nxdwl5h0cv4smc7dwmpb9qnd2ycb4"))))
1359 (build-system gnu-build-system)
1360 (arguments
1361 `(#:phases (modify-phases %standard-phases
1362 (delete 'configure)
1363 (replace
1364 'build
1365 (lambda _
1366 (zero? (system* "make" "CC=gcc" "-Csrc"))))
1367 (replace
1368 'check
1369 (lambda _
1370 (zero? (system* "make" "CC=gcc" "-Ctests"))))
1371 (replace
1372 'install
1373 (lambda* (#:key outputs #:allow-other-keys)
1374 (let* ((out (assoc-ref outputs "out"))
1375 (bin (string-append out "/bin")))
1376 (install-file "src/cpulimit" bin)))))))
1377 (home-page "https://github.com/opsengine/cpulimit")
1378 (synopsis "Limit CPU usage")
1379 (description
1380 "Cpulimit limits the CPU usage of a process. It does not change the nice
1381value or other scheduling priority settings, but the real CPU usage, and is
1382able to adapt itself dynamically to the overall system load. Children
1383processes and threads of the specified process may optionally share the same
1384limits.")
1385 (license license:gpl2+)))
2328b47c
EB
1386
1387(define-public autojump
1388 (package
1389 (name "autojump")
1390 (version "22.2.4")
1391 (source
1392 (origin
1393 (method url-fetch)
1394 (uri (string-append "https://github.com/wting/autojump/archive/"
1395 "release-v" version ".tar.gz"))
1396 (file-name (string-append name "-" version ".tar.gz"))
1397 (sha256
1398 (base32
1399 "0xglj7nb8xczaqy2dhn78drqdwqj64rqpymxhqmmwwqzfaqassw1"))))
1400 (build-system gnu-build-system)
1401 (native-inputs ;for tests
1402 `(("python-mock" ,python-mock)
1403 ("python-pytest" ,python-pytest)))
1404 (inputs
1405 `(("python" ,python-wrapper)))
1406 (arguments
1407 `(#:phases (modify-phases %standard-phases
1408 (delete 'configure)
1409 (delete 'build)
1410 (replace 'check
1411 (lambda _
1412 (zero?
1413 (system* "python" "tests/autojump_utils_test.py"))))
1414 (replace 'install
1415 ;; The install.py script doesn't allow system installation
1416 ;; into an arbitrary prefix, so do our own install.
1417 (lambda* (#:key outputs #:allow-other-keys)
1418 (let* ((out (assoc-ref outputs "out"))
1419 (bin (string-append out "/bin"))
1420 (share (string-append out "/share/autojump"))
1421 (py (string-append out "/lib/python"
1422 ,(version-major+minor
1423 (package-version python-wrapper))
1424 "/site-packages"))
1425 (man (string-append out "/share/man/man1")))
1426 (install-file "bin/autojump" bin)
1427 (for-each (λ (f) (install-file f py))
1428 (find-files "bin" "\\.py$"))
1429 (for-each (λ (f) (install-file f share))
1430 (find-files "bin" "autojump\\..*$"))
1431 (substitute* (string-append share "/autojump.sh")
1432 (("/usr/local") out))
1433 (install-file "docs/autojump.1" man)
1434 (wrap-program (string-append bin "/autojump")
1435 `("PYTHONPATH" ":" prefix (,py)))
1436 #t))))))
1437 (home-page "https://github.com/wting/autojump")
1438 (synopsis "Shell extension for filesystem navigation")
1439 (description
1440 "Autojump provides a faster way to navigate your filesystem, with a \"cd
1441command that learns\". It works by maintaining a database of the directories
1442you use the most from the command line and allows you to \"jump\" to
1443frequently used directories by typing only a small pattern.")
1444 (license license:gpl3+)))
765973cd
LF
1445
1446(define-public iftop
1447 (package
1448 (name "iftop")
1449 (version "1.0pre4")
1450 (source (origin
1451 (method url-fetch)
1452 (uri (string-append "http://www.ex-parrot.com/~pdw/iftop/download"
1453 "/iftop-" version ".tar.gz"))
1454 (sha256
1455 (base32
1456 "15sgkdyijb7vbxpxjavh5qm5nvyii3fqcg9mzvw7fx8s6zmfwczp"))))
1457 (build-system gnu-build-system)
1458 (inputs
1459 `(("libpcap" ,libpcap)
1460 ("ncurses" ,ncurses)))
1461 (synopsis "Monitor network usage")
1462 (description "Iftop does for network usage what @command{top} does
1463for CPU usage. It listens to network traffic on a named interface and
1464displays a table of current bandwidth usage by pairs of hosts.")
1465 (home-page "http://www.ex-parrot.com/~pdw/iftop/")
d4e21fbb 1466 (license license:gpl2+)))
f1957fc1
PP
1467
1468(define-public munge
1469 (package
1470 (name "munge")
1471 (version "0.5.11")
1472 (source (origin
1473 (method url-fetch)
1474 (uri (string-append "https://github.com/dun/munge/archive/munge-"
1475 version ".tar.gz"))
1476 (file-name (string-append name "-" version ".tar.gz"))
1477 (sha256
1478 (base32
1479 "0njplyalwwqh7xr7xc7klc6x06mq0ak8w2pxh85w8n4hxkmqqnf5"))))
1480 (inputs
1481 `(("openssl" ,openssl)
1482 ("libgcrypt" ,libgcrypt)))
1483 (build-system gnu-build-system)
1484 (home-page "http://dun.github.io/munge/")
1485 (synopsis "Cluster computing authentication service")
1486 (description
1487 "Munge is an authentication service for creating and validating
1488credentials. It allows a process to authenticate the UID and GID of another
1489local or remote process within a group of hosts having common users and
1490groups. These hosts form a security realm that is defined by a shared
1491cryptographic key. Clients within this security realm can create and validate
1492credentials without the use of root privileges, reserved ports, or
1493platform-specific methods.")
1494 (license license:gpl3+)))
3d7a157c
RW
1495
1496(define-public audit
1497 (package
1498 (name "audit")
1499 (version "2.4.5")
1500 (source (origin
1501 (method url-fetch)
1502 (uri (string-append "http://people.redhat.com/sgrubb/audit/"
1503 "audit-" version ".tar.gz"))
1504 (sha256
1505 (base32
1506 "1q1q51dvxscbi4kbakmd4bn0xrvwwaiwvaya79925cbrqwzxsg77"))))
1507 (build-system gnu-build-system)
1508 (home-page "http://people.redhat.com/sgrubb/audit/")
1509 (arguments
1510 `(#:configure-flags (list "--with-python=no")
1511 #:phases
1512 (modify-phases %standard-phases
1513 (add-after 'unpack 'fix-tests
1514 (lambda _
1515 ;; In the build environmnte /etc/passwd does not contain an entry
1516 ;; for root/0, so we have to patch the expected value.
1517 (substitute* "auparse/test/auparse_test.ref"
1518 (("=0 \\(root\\)") "=0 (unknown(0))"))
1519 #t)))))
1520 (inputs
1521 `(("openldap" ,openldap)
1522 ("openssl" ,openssl)
1523 ("sasl" ,cyrus-sasl)))
1524 (synopsis "User-space component to the Linux auditing system")
1525 (description
1526 "auditd is the user-space component to the Linux auditing system, which
1527allows logging of system calls made by user-land processes. It's responsible
1528for writing audit records to the disk. Viewing the logs is done with the
1529@code{ausearch} or @code{aureport} utilities. Configuring the audit rules is
1530done with the @code{auditctl} utility.")
1531 (license license:gpl2+)))