gnu: nss-mdns: Allow the daemon's socket to be found.
[jackhill/guix/guix.git] / gnu / packages / admin.scm
CommitLineData
233e7676 1;;; GNU Guix --- Functional package management for GNU
61bdd0d8 2;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
340c7033 3;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
9a727700 4;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
87216303 5;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
1df895b0 6;;;
233e7676 7;;; This file is part of GNU Guix.
1df895b0 8;;;
233e7676 9;;; GNU Guix is free software; you can redistribute it and/or modify it
1df895b0
LC
10;;; under the terms of the GNU General Public License as published by
11;;; the Free Software Foundation; either version 3 of the License, or (at
12;;; your option) any later version.
13;;;
233e7676 14;;; GNU Guix is distributed in the hope that it will be useful, but
1df895b0
LC
15;;; WITHOUT ANY WARRANTY; without even the implied warranty of
16;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17;;; GNU General Public License for more details.
18;;;
19;;; You should have received a copy of the GNU General Public License
233e7676 20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
1df895b0 21
4aeea896 22(define-module (gnu packages admin)
4a44e743 23 #:use-module (guix licenses)
1df895b0
LC
24 #:use-module (guix packages)
25 #:use-module (guix download)
aaff68ee 26 #:use-module (guix git-download)
fbc1a58f 27 #:use-module (guix build-system cmake)
1df895b0 28 #:use-module (guix build-system gnu)
c773aba8 29 #:use-module (guix build-system trivial)
59a43334 30 #:use-module (gnu packages)
c73d4c92 31 #:use-module (gnu packages base)
9a9e72d5 32 #:use-module (gnu packages ncurses)
9927622f 33 #:use-module (gnu packages readline)
f15164e7
LC
34 #:use-module (gnu packages linux)
35 #:use-module (gnu packages guile)
1dba6407 36 #:use-module (gnu packages gettext)
c73d4c92 37 #:use-module (gnu packages perl)
87216303 38 #:use-module (gnu packages tcl)
b5b73a82
MW
39 #:use-module ((gnu packages compression) #:prefix c:)
40 #:use-module ((gnu packages openssl) #:prefix o:)
61bdd0d8
LC
41 #:use-module (gnu packages gnutls)
42 #:use-module (gnu packages gnupg)
02c86a5e
LC
43 #:use-module (gnu packages bison)
44 #:use-module (gnu packages flex)
45 #:use-module (gnu packages glib)
87216303 46 #:use-module (gnu packages pkg-config)
b36fcf95 47 #:use-module (gnu packages popt)
fccf2fe0 48 #:use-module (gnu packages texinfo)
e1485c7b 49 #:use-module (gnu packages groff)
42dc3af5
MW
50 #:use-module (gnu packages pciutils)
51 #:use-module (gnu packages libusb)
52 #:use-module (gnu packages libftdi)
c4492a16 53 #:use-module (gnu packages image)
87216303 54 #:use-module (gnu packages xorg))
f15164e7
LC
55
56(define-public dmd
57 (package
58 (name "dmd")
b3342b54 59 (version "0.2")
f15164e7
LC
60 (source (origin
61 (method url-fetch)
d0821398
LC
62 (uri (string-append "ftp://alpha.gnu.org/gnu/dmd/dmd-"
63 version ".tar.gz"))
f15164e7
LC
64 (sha256
65 (base32
b3342b54 66 "10fl4k96f17gqx2fv8iw9c61ld26gsk4bbrlfqckdmiimz1k175z"))))
f15164e7
LC
67 (build-system gnu-build-system)
68 (arguments
69 '(#:configure-flags '("--localstatedir=/var")))
2941448e
LC
70 (native-inputs `(("pkg-config" ,pkg-config)))
71 (inputs `(("guile" ,guile-2.0)))
f15164e7 72 (synopsis "Daemon managing daemons")
a22dc0c4 73 (description
79c311b8
LC
74 "GNU DMD is a daemon-managing daemon, meaning that it manages the
75execution of system services, replacing similar functionality found in
76typical init systems. It provides dependency-handling through a convenient
77interface and is based on GNU Guile.")
f15164e7
LC
78 (license gpl3+)
79 (home-page "http://www.gnu.org/software/dmd/")))
1df895b0 80
fbc1a58f
CR
81(define-public dfc
82 (package
83 (name "dfc")
180d7ac1 84 (version "3.0.4")
fbc1a58f
CR
85 (source
86 (origin
87 (method url-fetch)
88 (uri (string-append
180d7ac1 89 "http://projects.gw-computing.net/attachments/download/79/dfc-"
fbc1a58f
CR
90 version ".tar.gz"))
91 (sha256
92 (base32
180d7ac1 93 "0zk1ppx93ijimf4sbgqilxxikpsa2gmpbynknyh41xy7jbdjxp0b"))))
fbc1a58f
CR
94 (build-system cmake-build-system)
95 (arguments '(#:tests? #f)) ; There are no tests.
1dba6407 96 (native-inputs `(("gettext" ,gnu-gettext)))
fbc1a58f
CR
97 (home-page "http://projects.gw-computing.net/projects/dfc")
98 (synopsis "Display file system space usage using graphs and colors")
99 (description
100 "dfc (df color) is a modern version of df. It uses colors, draws pretty
101graphs and can export its output to different formats.")
102 (license bsd-3)))
103
340c7033
CR
104(define-public htop
105 (package
106 (name "htop")
da891830 107 (version "1.0.3")
340c7033
CR
108 (source (origin
109 (method url-fetch)
20e6c852 110 (uri (string-append "http://hisham.hm/htop/releases/"
340c7033
CR
111 version "/htop-" version ".tar.gz"))
112 (sha256
113 (base32
da891830 114 "0a8qbpsifzjwc4f45xfwm48jhm59g6q5hlib4bf7z13mgy95fp05"))))
340c7033
CR
115 (build-system gnu-build-system)
116 (inputs
117 `(("ncurses" ,ncurses)))
118 (home-page "http://htop.sourceforge.net/")
119 (synopsis "Interactive process viewer")
120 (description
121 "This is htop, an interactive process viewer. It is a text-mode
122application (for console or X terminals) and requires ncurses.")
123 (license gpl2)))
124
1df895b0
LC
125(define-public pies
126 (package
127 (name "pies")
128 (version "1.2")
129 (source
130 (origin
131 (method url-fetch)
132 (uri (string-append "mirror://gnu/pies/pies-"
133 version ".tar.bz2"))
134 (sha256
135 (base32
136 "18w0dbg77i56cx1bwa789w0qi3l4xkkbascxcv2b6gbm0zmjg1g6"))))
137 (build-system gnu-build-system)
138 (home-page "http://www.gnu.org/software/pies/")
f50d2669 139 (synopsis "Program invocation and execution supervisor")
1df895b0 140 (description
79c311b8 141 "GNU pies is a program that supervises the invocation and execution of
a22dc0c4
LC
142other programs. It reads the list of programs to be started from its
143configuration file, executes them, and then monitors their status,
144re-executing them as necessary.")
4a44e743 145 (license gpl3+)))
1df895b0
LC
146
147(define-public inetutils
148 (package
149 (name "inetutils")
9927622f 150 (version "1.9.2")
01eafd38
LC
151 (source (origin
152 (method url-fetch)
153 (uri (string-append "mirror://gnu/inetutils/inetutils-"
154 version ".tar.gz"))
155 (sha256
156 (base32
9927622f 157 "04wrm0v7l4890mmbaawd6wjwdv08bkglgqhpz0q4dkb0l50fl8q4"))))
1df895b0 158 (build-system gnu-build-system)
01eafd38 159 (arguments `(;; FIXME: `tftp.sh' relies on `netstat' from utils-linux,
1df895b0
LC
160 ;; which is currently missing.
161 #:tests? #f))
9927622f
LC
162 (inputs `(("ncurses" ,ncurses)
163 ("readline" ,readline))) ; for 'ftp'
1df895b0 164 (home-page "http://www.gnu.org/software/inetutils/")
f50d2669 165 (synopsis "Basic networking utilities")
1df895b0 166 (description
a22dc0c4
LC
167 "Inetutils is a collection of common network programs, such as an ftp
168client and server, a telnet client and server, and an rsh client and server.")
4a44e743 169 (license gpl3+)))
9a9e72d5
LC
170
171(define-public shadow
172 (package
173 (name "shadow")
174 (version "4.1.5.1")
175 (source (origin
aaff68ee
LC
176 ;; Shadow has no real upstream, and not even tarballs.
177 ;; See <https://lists.gnu.org/archive/html/guix-devel/2014-03/msg00233.html>.
178 (method git-fetch)
179 (uri (git-reference
180 (url "git://git.debian.org/git/pkg-shadow/shadow")
181 (commit (string-append "upstream/" version))))
9a9e72d5
LC
182 (sha256
183 (base32
aaff68ee 184 "1xx85d83kmacmjzqbamgydcjkwsqd5fi1s2wgwx6myq5wa39qx0n"))))
9a9e72d5
LC
185 (build-system gnu-build-system)
186 (arguments
187 '(;; Assume System V `setpgrp (void)', which is the default on GNU
188 ;; variants (`AC_FUNC_SETPGRP' is not cross-compilation capable.)
189 #:configure-flags '("--with-libpam" "ac_cv_func_setpgrp_void=yes")
190
191 #:phases (alist-cons-before
192 'build 'set-nscd-file-name
193 (lambda* (#:key inputs #:allow-other-keys)
194 ;; Use the right file name for nscd.
195 (let ((libc (assoc-ref inputs "libc")))
196 (substitute* "lib/nscd.c"
197 (("/usr/sbin/nscd")
198 (string-append libc "/sbin/nscd")))))
199 (alist-cons-after
200 'install 'remove-groups
201 (lambda* (#:key outputs #:allow-other-keys)
202 ;; Remove `groups', which is already provided by Coreutils.
203 (let* ((out (assoc-ref outputs "out"))
204 (bin (string-append out "/bin"))
205 (man (string-append out "/share/man/man1")))
206 (delete-file (string-append bin "/groups"))
207 (for-each delete-file (find-files man "^groups\\."))
208 #t))
8d846470 209 %standard-phases))))
9a9e72d5
LC
210
211 (inputs (if (string-suffix? "-linux"
212 (or (%current-target-system)
213 (%current-system)))
214 `(("linux-pam" ,linux-pam))
215 '()))
216 (home-page "http://pkg-shadow.alioth.debian.org/")
217 (synopsis "Authentication-related tools such as passwd, su, and login")
218 (description
219 "Shadow provides a number of authentication-related tools, including:
220login, passwd, su, groupadd, and useradd.")
221
222 ;; The `vipw' program is GPLv2+.
223 ;; libmisc/salt.c is public domain.
224 (license bsd-3)))
1e151896
LC
225
226(define-public mingetty
227 (package
228 (name "mingetty")
229 (version "1.08")
230 (source (origin
231 (method url-fetch)
232 (uri (string-append "mirror://sourceforge/mingetty/mingetty-"
233 version ".tar.gz"))
234 (sha256
235 (base32
236 "05yxrp44ky2kg6qknk1ih0kvwkgbn9fbz77r3vci7agslh5wjm8g"))))
237 (build-system gnu-build-system)
238 (arguments
239 `(#:phases (alist-replace 'configure
240 (lambda* (#:key inputs outputs
241 #:allow-other-keys)
242 (let* ((out (assoc-ref outputs "out"))
243 (man8 (string-append
244 out "/share/man/man8"))
245 (sbin (string-append out "/sbin"))
246 (shadow (assoc-ref inputs "shadow"))
247 (login (string-append shadow
248 "/bin/login")))
249 (substitute* "Makefile"
250 (("^SBINDIR.*")
251 (string-append "SBINDIR = " out
252 "/sbin\n"))
253 (("^MANDIR.*")
254 (string-append "MANDIR = " out
255 "/share/man/man8\n")))
256
257 ;; Pick the right 'login' by default.
258 (substitute* "mingetty.c"
259 (("\"/bin/login\"")
260 (string-append "\"" login "\"")))
261
262 (mkdir-p sbin)
263 (mkdir-p man8)))
264 %standard-phases)
265 #:tests? #f)) ; no tests
266 (inputs `(("shadow" ,shadow)))
267
268 (home-page "http://sourceforge.net/projects/mingetty")
269 (synopsis "Getty for the text console")
270 (description
271 "Small console getty that is started on the Linux text console,
272asks for a login name and then transfers over to 'login'. It is extended to
273allow automatic login and starting any app.")
274 (license gpl2+)))
c773aba8
LC
275
276(define-public net-base
277 (package
278 (name "net-base")
db719df7 279 (version "5.3")
c773aba8
LC
280 (source (origin
281 (method url-fetch)
282 (uri (string-append
34af3684 283 "mirror://debian/pool/main/n/netbase/netbase_"
db719df7 284 version ".tar.xz"))
c773aba8
LC
285 (sha256
286 (base32
db719df7 287 "12xqjwg3p4rzmmh2iib6sigm9l29y3dgk74mmnw64k84jnbwdxl1"))))
c773aba8
LC
288 (build-system trivial-build-system)
289 (arguments
290 `(#:modules ((guix build utils))
291 #:builder (begin
292 (use-modules (guix build utils)
293 (srfi srfi-26))
294
295 (let* ((source (assoc-ref %build-inputs "source"))
296 (tar (assoc-ref %build-inputs "tar"))
db719df7 297 (xz (assoc-ref %build-inputs "xz"))
c773aba8
LC
298 (output (assoc-ref %outputs "out"))
299 (etc (string-append output "/etc")))
db719df7 300 (setenv "PATH" (string-append xz "/bin"))
c773aba8
LC
301 (system* (string-append tar "/bin/tar") "xvf"
302 source)
303 (chdir ,(string-append "netbase-" version))
304 (mkdir-p etc)
305 (for-each copy-file
306 '("etc-services" "etc-protocols" "etc-rpc")
307 (map (cut string-append etc "/" <>)
308 '("services" "protocols" "rpc")))
309 #t))))
310 (native-inputs `(("tar" ,tar)
db719df7 311 ("xz" ,c:xz)))
c773aba8
LC
312 (synopsis "IANA protocol, port, and RPC number assignments")
313 (description
314 "This package provides the /etc/services, /etc/protocols, and /etc/rpc
315files, which contain information about the IANA-assigned port, protocol, and
316ONC RPC numbers")
317 (home-page "http://packages.debian.org/sid/netbase")
318 (license gpl2)))
94c4a58a
LC
319
320(define-public netcat
321 (package
322 (name "netcat")
323 (version "0.7.1")
324 (source (origin
325 (method url-fetch)
326 (uri (string-append "mirror://sourceforge/netcat/netcat-"
327 version ".tar.bz2"))
328 (sha256
329 (base32
330 "1frjcdkhkpzk0f84hx6hmw5l0ynpmji8vcbaxg8h5k2svyxz0nmm"))))
331 (build-system gnu-build-system)
0e4e89c2
MW
332 (arguments
333 `(#:configure-flags
334 ;; By default, man and info pages are put in PREFIX/{man,info},
335 ;; but we want them in PREFIX/share/{man,info}.
336 (let ((out (assoc-ref %outputs "out")))
337 (list (string-append "--mandir=" out "/share/man")
338 (string-append "--infodir=" out "/share/info")))))
94c4a58a
LC
339 (home-page "http://netcat.sourceforge.net")
340 (synopsis "Read and write data over TCP/IP")
341 (description
342 "Netcat is a featured networking utility which reads and writes data
343across network connections, using the TCP/IP protocol. It is designed to be a
344reliable \"back-end\" tool that can be used directly or easily driven by other
35b9e423 345programs and scripts. At the same time, it is a feature-rich network debugging
94c4a58a
LC
346and exploration tool, since it can create almost any kind of connection you
347would need and has several interesting built-in capabilities.")
348 (license gpl2+)))
d038cac1
LC
349
350(define-public alive
351 (package
352 (name "alive")
353 (version "2.0.2")
354 (source (origin
355 (method url-fetch)
356 (uri (string-append "mirror://gnu/alive/alive-"
357 version ".tar.xz"))
358 (sha256
359 (base32
360 "1vrzg51ai68x9yld7vbgl58sxaw5qpx8rbakwcxn4cqq6vpxj38j"))))
361 (build-system gnu-build-system)
362 (arguments '(#:configure-flags '("alive_cv_nice_ping=yes")))
363 (inputs `(("guile" ,guile-2.0)
364 ("inetutils" ,inetutils)))
365 (home-page "http://www.gnu.org/software/alive/")
366 (synopsis "Autologin and keep-alive daemon")
367 (description
368 "GNU Alive sends periodic pings to a server, generally to keep a
369connection alive.")
370 (license gpl3+)))
c73d4c92
LC
371
372(define-public isc-dhcp
373 (package
374 (name "isc-dhcp")
9e5ace9d 375 (version "4.3.0")
c73d4c92
LC
376 (source (origin
377 (method url-fetch)
378 (uri (string-append "http://ftp.isc.org/isc/dhcp/"
379 version "/dhcp-" version ".tar.gz"))
380 (sha256
381 (base32
9e5ace9d 382 "12mydvj6x3zcl3gla06bywfkkrgg03g66fijs94mwb7kbiym3dm7"))))
c73d4c92
LC
383 (build-system gnu-build-system)
384 (arguments
385 '(#:phases (alist-cons-after
386 'configure 'post-configure
387 (lambda* (#:key outputs #:allow-other-keys)
388 ;; Point to the right client script, which will be
389 ;; installed in a later phase.
390 (substitute* "includes/dhcpd.h"
391 (("#define[[:blank:]]+_PATH_DHCLIENT_SCRIPT.*")
392 (let ((out (assoc-ref outputs "out")))
393 (string-append "#define _PATH_DHCLIENT_SCRIPT \""
394 out "/libexec/dhclient-script"
395 "\"\n"))))
396
397 ;; During the 'build' phase, 'bind.tar.gz' is extracted, so
398 ;; we must patch shebangs in there and make sure the right
399 ;; shell is used.
400 (with-directory-excursion "bind"
401 (substitute* "Makefile"
402 (("\\./configure")
403 (let ((sh (which "sh")))
404 (string-append "./configure CONFIG_SHELL="
405 sh " SHELL=" sh))))
406
407 (system* "tar" "xf" "bind.tar.gz")
408 (for-each patch-shebang
9e5ace9d 409 (find-files "bind-9.9.5" ".*"))
c73d4c92 410 (zero? (system* "tar" "cf" "bind.tar.gz"
9e5ace9d 411 "bind-9.9.5"))))
c73d4c92
LC
412 (alist-cons-after
413 'install 'post-install
414 (lambda* (#:key inputs outputs #:allow-other-keys)
415 ;; Install the dhclient script for GNU/Linux and make sure
416 ;; if finds all the programs it needs.
417 (let* ((out (assoc-ref outputs "out"))
418 (libexec (string-append out "/libexec"))
419 (coreutils (assoc-ref inputs "coreutils"))
420 (net-tools (assoc-ref inputs "net-tools"))
421 (sed (assoc-ref inputs "sed")))
422 (substitute* "client/scripts/linux"
423 (("/sbin/ip")
424 (string-append (assoc-ref inputs "iproute")
425 "/sbin/ip")))
426
427 (mkdir-p libexec)
428 (copy-file "client/scripts/linux"
429 (string-append libexec "/dhclient-script"))
430
431 (wrap-program (string-append libexec "/dhclient-script")
432 `("PATH" ":" prefix
433 ,(map (lambda (dir)
434 (string-append dir "/bin:"
435 dir "/sbin"))
436 (list net-tools coreutils sed))))))
437 %standard-phases))))
438
439 (native-inputs `(("perl" ,perl)))
440
dc343935
LC
441 (inputs `(("net-tools" ,net-tools)
442 ("iproute" ,iproute)
443
444 ;; When cross-compiling, we need the cross Coreutils and sed.
445 ;; Otherwise just use those from %FINAL-INPUTS.
446 ,@(if (%current-target-system)
447 `(("coreutils" ,coreutils)
448 ("sed" ,sed))
449 '())))
c73d4c92
LC
450
451 (home-page "http://www.isc.org/products/DHCP/")
452 (synopsis "Dynamic Host Configuration Protocol (DHCP) tools")
453 (description
454 "ISC's Dynamic Host Configuration Protocol (DHCP) distribution provides a
455reference implementation of all aspects of DHCP, through a suite of DHCP
456tools: server, client, and relay agent.")
463d6dac 457 (license isc)))
02c86a5e
LC
458
459(define-public libpcap
460 (package
461 (name "libpcap")
462 (version "1.5.3")
463 (source (origin
464 (method url-fetch)
465 (uri (string-append "http://www.tcpdump.org/release/libpcap-"
466 version ".tar.gz"))
467 (sha256
468 (base32
469 "14wyjywrdi1ikaj6yc9c72m6m2r64z94lb0gm7k1a3q6q5cj3scs"))))
470 (build-system gnu-build-system)
471 (native-inputs `(("bison" ,bison) ("flex" ,flex)))
472 (arguments '(#:tests? #f)) ; no 'check' target
473 (home-page "http://www.tcpdump.org")
474 (synopsis "Network packet capture library")
475 (description
476 "libpcap is an interface for user-level packet capture. It provides a
477portable framework for low-level network monitoring. Applications include
478network statistics collection, security monitoring, network debugging, etc.")
479
480 ;; fad-*.c and a couple other files are BSD-4, but the rest is BSD-3.
481 (license bsd-3)))
482
1da34f5a
LC
483(define-public tcpdump
484 (package
485 (name "tcpdump")
486 (version "4.5.1")
487 (source (origin
488 (method url-fetch)
489 (uri (string-append "http://www.tcpdump.org/release/tcpdump-"
490 version ".tar.gz"))
491 (sha256
492 (base32
493 "15hb7zkzd66nag102qbv100hcnf7frglbkylmr8adwr8f5jkkaql"))))
494 (build-system gnu-build-system)
10db1e6c
LC
495 (inputs `(("libpcap" ,libpcap)
496 ("openssl" ,o:openssl)))
1da34f5a 497 (native-inputs `(("perl" ,perl))) ; for tests
1da34f5a
LC
498 (home-page "http://www.tcpdump.org/")
499 (synopsis "Network packet analyzer")
500 (description
501 "Tcpdump is a command-line tool to analyze network traffic passing
502through the network interface controller.")
503 (license bsd-3)))
504
02c86a5e
LC
505(define-public jnettop
506 (package
507 (name "jnettop")
508 (version "0.13.0")
509 (source (origin
510 (method url-fetch)
511 (uri (string-append "http://jnettop.kubs.info/dist/jnettop-"
512 version ".tar.gz"))
513 (sha256
514 (base32
515 "1855np7c4b0bqzhf1l1dyzxb90fpnvrirdisajhci5am6als31z9"))))
516 (build-system gnu-build-system)
517 (native-inputs
518 `(("pkg-config" ,pkg-config)))
519 (inputs
520 `(("glib" ,glib)
521 ("ncurses" ,ncurses)
522 ("libpcap" ,libpcap)))
523 (home-page "http://jnettop.kubs.info/")
524 (synopsis "Visualize network traffic by bandwidth use")
525 (description
526 "Jnettop is a traffic visualiser, which captures traffic going
527through the host it is running from and displays streams sorted
528by bandwidth they use.")
529 (license gpl2+)))
87216303
EB
530
531(define-public clusterssh
532 (package
533 (name "clusterssh")
534 (version "3.28")
535 (source (origin
536 (method url-fetch)
537 (uri (string-append "mirror://sourceforge/clusterssh/"
538 "clusterssh-" version ".tar.gz"))
539 (sha256
540 (base32
541 "1bwggpvaj2al5blg1ynapviv2kpydffpzq2zkhi81najnvzc1rr7"))))
542 (build-system gnu-build-system)
543 (inputs `(("perl" ,perl)))
544 (propagated-inputs `(("xterm" ,xterm)
545 ("perl-tk" ,perl-tk)
546 ("perl-x11-protocol" ,perl-x11-protocol)))
547 (arguments
548 `(#:phases
549 (alist-cons-after
550 'install 'set-load-paths
551 (lambda* (#:key inputs outputs #:allow-other-keys)
552 ;; Put the perl-tk and perl-x11-protocol modules in the perl inc
553 ;; path for PROG
554 (let* ((out (assoc-ref outputs "out"))
555 (prog (string-append out "/bin/cssh"))
556 (perl-ver ,(package-version perl))
557 (x11-inc (string-append
558 (assoc-ref inputs "perl-x11-protocol")
559 "/lib/perl5/site_perl/" perl-ver))
560 (tk-inc (string-append
561 (assoc-ref inputs "perl-tk")
562 "/lib/perl5/site_perl/" perl-ver
563 "/x86_64-linux")))
564 (wrap-program
565 prog
566 `("PERL5LIB" ":" prefix (,x11-inc ,tk-inc)))))
567 %standard-phases)))
568 ;; The clusterssh.sourceforge.net address requires login to view
569 (home-page "http://sourceforge.net/projects/clusterssh/")
570 (synopsis "Secure concurrent multi-server terminal control")
571 (description
572 "ClusterSSH controls a number of xterm windows via a single graphical
573console window to allow commands to be interactively run on multiple servers
574over ssh connections.")
575 (license gpl2+)))
fccf2fe0
LC
576
577(define-public rottlog
578 (package
579 (name "rottlog")
580 (version "0.72.2")
581 (source (origin
582 (method url-fetch)
583 (uri (string-append "mirror://gnu/rottlog/rottlog-"
584 version ".tar.gz"))
585 (sha256
586 (base32
587 "0751mb9l2f0jrk3vj6q8ilanifd121dliwk0c34g8k0dlzsv3kd7"))
588 (modules '((guix build utils)))
589 (snippet
590 '(substitute* "Makefile.in"
591 (("-o \\$\\{LOG_OWN\\} -g \\$\\{LOG_GROUP\\}")
592 ;; Don't try to chown root.
593 "")
594 (("mkdir -p \\$\\(ROTT_STATDIR\\)")
595 ;; Don't attempt to create /var/lib/rottlog.
596 "true")))))
597 (build-system gnu-build-system)
598 (arguments
599 '(#:configure-flags (list (string-append "ROTT_ETCDIR="
600 (assoc-ref %outputs "out")
601 "/etc")
602 "--localstatedir=/var")
603 #:phases (alist-cons-after
604 'install 'install-info
605 (lambda _
606 (zero? (system* "make" "install-info")))
607 %standard-phases)))
608 (native-inputs `(("texinfo" ,texinfo)
609 ("util-linux" ,util-linux))) ; for 'cal'
610 (home-page "http://www.gnu.org/software/rottlog/")
611 (synopsis "Log rotation and management")
612 (description
613 "GNU Rot[t]log is a program for managing log files. It is used to
614automatically rotate out log files when they have reached a given size or
615according to a given schedule. It can also be used to automatically compress
616and archive such logs. Rot[t]log will mail reports of its activity to the
617system administrator.")
618 (license gpl3+)))
e1485c7b
LC
619
620(define-public sudo
621 (package
622 (name "sudo")
a915ab6a 623 (version "1.8.10p3")
e1485c7b
LC
624 (source (origin
625 (method url-fetch)
626 (uri
627 (list (string-append "http://www.sudo.ws/sudo/dist/sudo-"
628 version ".tar.gz")
629 (string-append "ftp://ftp.sudo.ws/pub/sudo/OLD/sudo-"
630 version ".tar.gz")))
631 (sha256
632 (base32
a915ab6a 633 "002l6h27pnhb77b65frhazbhknsxvrsnkpi43j7i0qw1lrgi7nkf"))))
e1485c7b
LC
634 (build-system gnu-build-system)
635 (arguments
e1626e3b
SB
636 `(#:configure-flags '("--with-logpath=/var/log/sudo.log"
637 "--with-rundir=/run/sudo"
638 "--with-vardir=/var/db/sudo"
639 "--with-iologdir=/var/log/sudo-io")
e1485c7b
LC
640 #:phases (alist-cons-before
641 'configure 'pre-configure
642 (lambda _
643 (substitute* "configure"
644 ;; Refer to the right executables.
645 (("/usr/bin/mv") (which "mv"))
646 (("/usr/bin/sh") (which "sh")))
647 (substitute* (find-files "." "Makefile\\.in")
648 (("-O [[:graph:]]+ -G [[:graph:]]+")
649 ;; Allow installation as non-root.
650 "")
651 (("^install: (.*)install-sudoers(.*)" _ before after)
652 ;; Don't try to create /etc/sudoers.
e1626e3b
SB
653 (string-append "install: " before after "\n"))
654 (("\\$\\(DESTDIR\\)\\$\\(rundir\\)")
655 ;; Don't try to create /run/sudo.
656 "$(TMPDIR)/dummy")
657 (("\\$\\(DESTDIR\\)\\$\\(vardir\\)")
658 ;; Don't try to create /var/db/sudo.
659 "$(TMPDIR)/dummy")))
e1485c7b
LC
660 %standard-phases)
661
662 ;; XXX: The 'testsudoers' test series expects user 'root' to exist, but
663 ;; the chroot's /etc/passwd doesn't have it. Turn off the tests.
664 #:tests? #f))
665 (inputs
666 `(("groff" ,groff)
667 ("linux-pam" ,linux-pam)
668 ("coreutils" ,coreutils)))
669 (home-page "http://www.sudo.ws/")
670 (synopsis "Run commands as root")
671 (description
672 "Sudo (su \"do\") allows a system administrator to delegate authority to
673give certain users (or groups of users) the ability to run some (or all)
674commands as root or another user while providing an audit trail of the
675commands and their arguments.")
676
677 ;; See <http://www.sudo.ws/sudo/license.html>.
678 (license x11)))
952298d7
LC
679
680(define-public wpa-supplicant
681 (package
682 (name "wpa-supplicant")
9a727700 683 (version "2.3")
952298d7
LC
684 (source (origin
685 (method url-fetch)
686 (uri (string-append
9a727700 687 "http://w1.fi/releases/wpa_supplicant-"
952298d7
LC
688 version
689 ".tar.gz"))
690 (sha256
691 (base32
9a727700 692 "0skvkl6c10ls4s48b2wmf47h9j1y40nlzxnzn8hyaw2j0prmpapa"))))
952298d7
LC
693 (build-system gnu-build-system)
694 (arguments
695 '(#:phases (alist-replace
696 'configure
697 (lambda* (#:key outputs #:allow-other-keys)
698 (chdir "wpa_supplicant")
699 (copy-file "defconfig" ".config")
700 (let ((port (open-file ".config" "al")))
701 (display "
702 CONFIG_DEBUG_SYSLOG=y
40b4c6d6 703
61bdd0d8
LC
704 # Choose GnuTLS (the default is OpenSSL.)
705 CONFIG_TLS=gnutls
706
40b4c6d6
LC
707 # TODO: Add a variant of this package with DBus support.
708 #CONFIG_CTRL_IFACE_DBUS=y
709 #CONFIG_CTRL_IFACE_DBUS_NEW=y
710 #CONFIG_CTRL_IFACE_DBUS_INTRO=y
711
952298d7
LC
712 CONFIG_DRIVER_NL80211=y
713 CFLAGS += $(shell pkg-config libnl-3.0 --cflags)
714 CONFIG_LIBNL32=y
715 CONFIG_READLINE=y\n" port)
716 (close-port port)))
ffd74de0
LC
717
718 (alist-cons-after
719 'install 'install-man-pages
720 (lambda* (#:key outputs #:allow-other-keys)
721 (let* ((out (assoc-ref outputs "out"))
722 (man (string-append out "/share/man"))
723 (man5 (string-append man "/man5"))
724 (man8 (string-append man "/man8")))
725 (define (copy-man-page target)
726 (lambda (file)
727 (copy-file file
728 (string-append target "/"
729 (basename file)))))
730
731 (mkdir-p man5) (mkdir man8)
732 (for-each (copy-man-page man5)
733 (find-files "doc/docbook" "\\.5"))
734 (for-each (copy-man-page man8)
735 (find-files "doc/docbook" "\\.8"))
736 #t))
737 %standard-phases))
952298d7
LC
738
739 #:make-flags (list "CC=gcc"
740 (string-append "BINDIR=" (assoc-ref %outputs "out")
741 "/sbin")
742 (string-append "LIBDIR=" (assoc-ref %outputs "out")
743 "/lib"))
744 #:tests? #f))
745 (inputs
746 `(("readline" ,readline)
747 ("libnl" ,libnl)
40b4c6d6
LC
748 ;; TODO: Add a variant with DBus support. This significantly increases
749 ;; the size of its closure since DBus depends on libx11.
750 ;; ("dbus" ,dbus)
61bdd0d8
LC
751 ("gnutls" ,gnutls)
752 ("libgcrypt" ,libgcrypt))) ;needed by crypto_gnutls.c
952298d7
LC
753 (native-inputs
754 `(("pkg-config" ,pkg-config)))
9a727700 755 (home-page "http://w1.fi/wpa_supplicant/")
952298d7
LC
756 (synopsis "Connecting to WPA and WPA2-protected wireless networks")
757 (description
758 "wpa_supplicant is a WPA Supplicant with support for WPA and WPA2 (IEEE
759802.11i / RSN). Supplicant is the IEEE 802.1X/WPA component that is used in
760the client stations. It implements key negotiation with a WPA Authenticator
761and it controls the roaming and IEEE 802.11 authentication/association of the
762WLAN driver.
763
764This package provides the 'wpa_supplicant' daemon and the 'wpa_cli' command.")
765
766 ;; In practice, this is linked against Readline, which makes it GPLv3+.
767 (license bsd-3)))
c6b76405
LC
768
769(define-public wakelan
770 (package
771 (name "wakelan")
772 (version "1.1")
773 (source (origin
774 (method url-fetch)
775 (uri (string-append
776 "ftp://ftp.gwdg.de/pub/linux/metalab/system/network/misc/wakelan-"
777 version ".tar.gz"))
778 (sha256
779 (base32
780 "0vydqpf44146ir6k87gmqaq6xy66xhc1gkr3nsd7jj3nhy7ypx9x"))))
781 (build-system gnu-build-system)
782 (arguments
783 '(#:phases (alist-replace
784 'configure
785 (lambda* (#:key outputs #:allow-other-keys)
786 (let ((out (assoc-ref outputs "out")))
787 (mkdir-p (string-append out "/bin"))
788 (mkdir-p (string-append out "/share/man/man1"))
789
790 ;; It's an old configure script that doesn't understand
791 ;; the extra options we pass.
792 (setenv "CONFIG_SHELL" (which "bash"))
793 (zero?
794 (system* "./configure"
795 (string-append "--prefix=" out)
796 (string-append "--mandir=" out
797 "/share/man")))))
798 %standard-phases)
799 #:tests? #f))
800 (home-page "http://kernel.org") ; really, no home page
801 (synopsis "Send a wake-on-LAN packet")
802 (description
803 "WakeLan broadcasts a properly formatted UDP packet across the local area
804network, which causes enabled computers to power on.")
805 (license gpl2+)))
d43f4296
LC
806
807(define-public dmidecode
808 (package
809 (name "dmidecode")
810 (version "2.12")
811 (source (origin
812 (method url-fetch)
813 (uri (string-append
814 "mirror://savannah/dmidecode/dmidecode-"
815 version ".tar.bz2"))
816 (sha256
817 (base32
818 "122hgaw8mpqdfra159lfl6pyk3837giqx6vq42j64fjnbl2z6gwi"))))
819 (build-system gnu-build-system)
820 (arguments
821 '(#:phases (alist-delete 'configure %standard-phases)
822 #:tests? #f ; no 'check' target
823 #:make-flags (list (string-append "prefix="
824 (assoc-ref %outputs "out")))))
825 (home-page "http://www.nongnu.org/dmidecode/")
826 (synopsis "Read hardware information from the BIOS")
827 (description
828 "Dmidecode reports information about your system's hardware as described
829in your system BIOS according to the SMBIOS/DMI standard. This typically
830includes system manufacturer, model name, serial number, BIOS version, asset
831tag as well as a lot of other details of varying level of interest and
832reliability depending on the manufacturer. This will often include usage
833status for the CPU sockets, expansion slots (e.g. AGP, PCI, ISA) and memory
834module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
835 (license gpl2+)))
42dc3af5 836
13c8c2bf
MW
837(define-public acpica
838 (package
839 (name "acpica")
840 (version "20140724")
841 (source (origin
842 (method url-fetch)
843 (uri (string-append
844 "https://acpica.org/sites/acpica/files/acpica-unix2-"
845 version ".tar.gz"))
846 (sha256
847 (base32
848 "01vdgrh7dsxrrvg5yd8sxm63cw8210pnsi5qg9g15ac53gn243ac"))))
849 (build-system gnu-build-system)
850 (native-inputs `(("flex" ,flex)
851 ("bison" ,bison)))
852 (arguments
853 '(#:make-flags (list (string-append "PREFIX=" %output)
854 "HOST=_LINUX"
855 "OPT_CFLAGS=-Wall -fno-strict-aliasing")
856 #:tests? #f ; no 'check' target.
857 #:phases (alist-delete 'configure %standard-phases)))
858 (home-page "http://acpica.org/")
35b9e423 859 (synopsis "Tools for the development and debug of ACPI tables")
13c8c2bf
MW
860 (description
861 "The ACPI Component Architecture (ACPICA) project provides an
862OS-independent reference implementation of the Advanced Configuration and
863Power Interface Specification (ACPI). ACPICA code contains those portions of
864ACPI meant to be directly integrated into the host OS as a kernel-resident
865subsystem, and a small set of tools to assist in developing and debugging ACPI
866tables. This package contains only the user-space tools needed for ACPI table
867development, not the kernel implementation of ACPI.")
868 (license gpl2))) ; Dual GPLv2/ACPICA Licence
4cf7bd2b
MW
869
870(define-public stress
871 (package
872 (name "stress")
873 (version "1.0.1")
874 (source (origin
875 (method url-fetch)
876 (uri (string-append "mirror://debian/pool/main/s/stress/stress_"
877 version ".orig.tar.gz"))
878 (sha256
879 (base32
880 "1v9vnzlihqfjsxa93hdbrq72pqqk00dkylmlg8jpxhm7s1w9qfl1"))))
881 (build-system gnu-build-system)
882 (home-page "http://packages.debian.org/wheezy/stress")
9e771e3b 883 (synopsis "Impose load on and stress test a computer system")
4cf7bd2b 884 (description
35b9e423 885 "Stress is a tool that imposes a configurable amount of CPU, memory, I/O,
4cf7bd2b
MW
886or disk stress on a POSIX-compliant operating system and reports any errors it
887detects.
888
35b9e423 889Stress is not a benchmark. It is a tool used by system administrators to
4cf7bd2b
MW
890evaluate how well their systems will scale, by kernel programmers to evaluate
891perceived performance characteristics, and by systems programmers to expose
892the classes of bugs which only or more frequently manifest themselves when the
893system is under heavy load.")
894 (license gpl2+)))
b36fcf95
EB
895
896(define-public detox
897 (package
898 (name "detox")
899 (version "1.2.0")
900 (source (origin
901 (method url-fetch)
902 (uri (string-append "mirror://sourceforge/detox/detox-"
903 version ".tar.bz2"))
904 (sha256
905 (base32
906 "1y6vvjqsg54kl49cry73jbfhr04s7wjs779vrr9zrq6kww7dkymb"))))
907 (build-system gnu-build-system)
908 ;; Both flex and popt are used in this case for their runtime libraries
909 ;; (libfl and libpopt).
910 (inputs
911 `(("flex" ,flex)
912 ("popt" ,popt)))
913 (arguments
914 `(#:configure-flags `(,(string-append "--with-popt="
915 (assoc-ref %build-inputs "popt")))
916 #:tests? #f)) ;no 'check' target
917 (home-page "http://detox.sourceforge.net")
918 (synopsis "Clean up filenames")
919 (description
920 "Detox is a program that renames files to make them easier to work with
921under Unix and related operating systems. Spaces and various other unsafe
922characters (such as \"$\") get replaced with \"_\". ISO 8859-1 (Latin-1)
923characters can be replaced as well, as can UTF-8 characters.")
924 (license bsd-3)))
c4492a16
LC
925
926(define-public testdisk
927 (package
928 (name "testdisk")
929 (version "6.14")
930 (source (origin
931 (method url-fetch)
932 (uri (string-append "http://www.cgsecurity.org/testdisk-"
933 version ".tar.bz2"))
934 (sha256
935 (base32
936 "0v1jap83f5h99zv01v3qmqm160d36n4ysi0gyq7xzb3mqgmw75x5"))))
937 (build-system gnu-build-system)
938 (inputs
939 `(;; ("ntfs" ,ntfs)
940 ("util-linux" ,util-linux)
941 ("openssl" ,o:openssl)
942 ("zlib" ,c:zlib)
943 ("e2fsprogs" ,e2fsprogs)
944 ("libjpeg" ,libjpeg)
945 ("ncurses" ,ncurses)))
946 (home-page "http://www.cgsecurity.org/wiki/TestDisk")
947 (synopsis "Data recovery tool")
948 (description
949 "TestDisk is a program for data recovery, primarily designed to help
950recover lost partitions and/or make non-booting disks bootable again.")
951 (license gpl2+)))
952
c2619e10
LC
953(define-public direvent
954 (package
955 (name "direvent")
956 (version "5.0")
957 (source (origin
958 (method url-fetch)
959 (uri (string-append "mirror://gnu/direvent/direvent-"
960 version ".tar.gz"))
961 (sha256
962 (base32
963 "1i14131y6m8wvirz6piw4zxz2q1kbpl0lniv5kl55rx4k372dg8z"))
964 (modules '((guix build utils)))
965 (snippet '(substitute* "tests/testsuite"
966 (("#![[:blank:]]?/bin/sh")
967 "#!$SHELL")))))
968 (build-system gnu-build-system)
969 (arguments
970 '(#:phases (alist-cons-before
971 'build 'patch-/bin/sh
972 (lambda* (#:key inputs #:allow-other-keys)
973 ;; Use the right shell when executing the watcher.
974 (let ((bash (assoc-ref inputs "bash")))
975 (substitute* "src/direvent.c"
976 (("\"/bin/sh\"")
977 (string-append "\"" bash "/bin/sh\"")))))
978 %standard-phases)))
979 (home-page "http://www.gnu.org/software/direvent/")
980 (synopsis "Daemon to monitor directories for events such as file removal")
981 (description
982 "A daemon that monitors directories for events, such as creating,
35b9e423 983deleting or modifying files. It can monitor different sets of directories for
c2619e10
LC
984different events. When an event is detected, direvent calls a specified
985external program with information about the event, such as the location
c5779c93
LC
986within the file system where it occurred. Thus, \"direvent\" provides an
987easy way to react immediately if given files undergo changes, for example, to
c2619e10
LC
988track changes in important system configuration files.")
989 (license gpl3+)))