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