gnu: pwgen: Update to 2.08.
[jackhill/guix/guix.git] / gnu / packages / admin.scm
... / ...
CommitLineData
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 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, 2017 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, 2017 Leo Famulari <leo@famulari.name>
10;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl>
11;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
12;;; Copyright © 2016, 2017 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;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net>
16;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
17;;; Copyright © 2016 John Darrington <jmd@gnu.org>
18;;; Copyright © 2017 Ben Sturmfels <ben@sturm.com.au>
19;;; Copyright © 2017 Ethan R. Jones <doubleplusgood23@gmail.com>
20;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org>
21;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
22;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
23;;;
24;;; This file is part of GNU Guix.
25;;;
26;;; GNU Guix is free software; you can redistribute it and/or modify it
27;;; under the terms of the GNU General Public License as published by
28;;; the Free Software Foundation; either version 3 of the License, or (at
29;;; your option) any later version.
30;;;
31;;; GNU Guix is distributed in the hope that it will be useful, but
32;;; WITHOUT ANY WARRANTY; without even the implied warranty of
33;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
34;;; GNU General Public License for more details.
35;;;
36;;; You should have received a copy of the GNU General Public License
37;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
38
39(define-module (gnu packages admin)
40 #:use-module ((guix licenses) #:prefix license:)
41 #:use-module (guix packages)
42 #:use-module (guix utils)
43 #:use-module (guix download)
44 #:use-module (guix git-download)
45 #:use-module (guix build-system cmake)
46 #:use-module (guix build-system gnu)
47 #:use-module (guix build-system perl)
48 #:use-module (guix build-system python)
49 #:use-module (guix build-system trivial)
50 #:use-module (gnu packages)
51 #:use-module (gnu packages base)
52 #:use-module (gnu packages check)
53 #:use-module (gnu packages cyrus-sasl)
54 #:use-module (gnu packages ncurses)
55 #:use-module (gnu packages readline)
56 #:use-module (gnu packages linux)
57 #:use-module (gnu packages lua)
58 #:use-module (gnu packages guile)
59 #:use-module (gnu packages gettext)
60 #:use-module (gnu packages pcre)
61 #:use-module (gnu packages perl)
62 #:use-module (gnu packages perl-check)
63 #:use-module (gnu packages tcl)
64 #:use-module (gnu packages compression)
65 #:use-module (gnu packages cross-base)
66 #:use-module (gnu packages tls)
67 #:use-module (gnu packages gnupg)
68 #:use-module (gnu packages bison)
69 #:use-module (gnu packages flex)
70 #:use-module (gnu packages glib)
71 #:use-module (gnu packages openldap)
72 #:use-module (gnu packages mcrypt)
73 #:use-module (gnu packages pkg-config)
74 #:use-module (gnu packages popt)
75 #:use-module (gnu packages python)
76 #:use-module (gnu packages python-crypto)
77 #:use-module (gnu packages python-web)
78 #:use-module (gnu packages texinfo)
79 #:use-module (gnu packages groff)
80 #:use-module (gnu packages pciutils)
81 #:use-module (gnu packages libunwind)
82 #:use-module (gnu packages libusb)
83 #:use-module (gnu packages libftdi)
84 #:use-module (gnu packages image)
85 #:use-module (gnu packages xorg)
86 #:use-module (gnu packages xdisorg)
87 #:use-module (gnu packages man)
88 #:use-module (gnu packages autotools)
89 #:use-module (gnu packages gnome)
90 #:use-module (gnu packages kerberos)
91 #:use-module (gnu packages gtk)
92 #:use-module (gnu packages xml))
93
94(define-public aide
95 (package
96 (name "aide")
97 (version "0.16")
98 (source (origin
99 (method url-fetch)
100 (uri (string-append "mirror://sourceforge/aide/aide/"
101 version "/aide-" version ".tar.gz"))
102 (sha256
103 (base32
104 "0ibkv4z2gk14fn014kq13rp2ysiq6nn2cflv2q5i7zf466hm6758"))))
105 (build-system gnu-build-system)
106 (native-inputs
107 `(("bison" ,bison)
108 ("flex" ,flex)))
109 (inputs
110 `(("libgcrypt" ,libgcrypt)
111 ("libgpg-error" ,libgpg-error)
112 ("libmhash" ,libmhash)
113 ("pcre" ,pcre)
114 ("zlib" ,zlib)))
115 (synopsis "File and directory integrity checker")
116 (description
117 "AIDE (Advanced Intrusion Detection Environment) is a file and directory
118integrity checker. It creates a database from the regular expression rules
119that it finds from its configuration files. Once this database is initialized
120it can be used to verify the integrity of the files. It has several message
121digest algorithms that are used to check the integrity of files. All of the
122usual file attributes can be checked for inconsistencies.")
123 (home-page "http://aide.sourceforge.net/")
124 (license license:gpl2+)))
125
126(define-public progress
127 (package
128 (name "progress")
129 (version "0.13.1")
130 (source (origin
131 (method url-fetch)
132 (uri (string-append "https://github.com/Xfennec/"
133 name "/archive/v" version ".tar.gz"))
134 (sha256
135 (base32 "199rk6608q9m6l0fbjm0xl2w1c5krf8245dqnksdp4rqp7l9ak06"))
136 (file-name (string-append name "-" version ".tar.gz"))))
137 (build-system gnu-build-system)
138 (native-inputs
139 `(("pkg-config" ,pkg-config)
140 ("which" ,which)))
141 (inputs
142 `(("ncurses" ,ncurses)))
143 (arguments
144 `(#:tests? #f ; There is no test suite.
145 #:make-flags (list "CC=gcc"
146 (string-append "PREFIX=" (assoc-ref %outputs "out")))
147 #:phases
148 (modify-phases %standard-phases
149 (delete 'configure)))) ; There's no configure phase.
150 (home-page "https://github.com/Xfennec/progress")
151 (synopsis "Program to view the progress of the coreutils commands")
152 (description "A program that looks for coreutils basic commands (cp, mv,
153dd, tar, gzip/gunzip, cat, etc.) currently running on your system and displays
154the percentage of copied data. It can also show estimated time and throughput,
155and provides a \"top-like\" mode (monitoring).")
156 (license license:gpl3+)))
157
158(define-public shepherd
159 (package
160 (name "shepherd")
161 (version "0.3.2")
162 (source (origin
163 (method url-fetch)
164 (uri (string-append "ftp://alpha.gnu.org/gnu/dmd/shepherd-"
165 version ".tar.gz"))
166 (sha256
167 (base32
168 "174q1qg7yg6w1hfvlfv720hr6hid4h5xzw15y3ycfpspllzldhcb"))
169 (patches (search-patches "shepherd-close-fds.patch"))))
170 (build-system gnu-build-system)
171 (arguments
172 '(#:configure-flags '("--localstatedir=/var")))
173 (native-inputs
174 `(("pkg-config" ,pkg-config)
175
176 ;; This is the Guile we use as a cross-compiler...
177 ("guile" ,guile-2.2)))
178 (inputs
179 ;; ... and this is the one that appears in shebangs when cross-compiling.
180 `(("guile" ,guile-2.2)))
181 (synopsis "System service manager")
182 (description
183 "The GNU Shepherd is a daemon-managing daemon, meaning that it supervises
184the execution of system services, replacing similar functionality found in
185typical init systems. It provides dependency-handling through a convenient
186interface and is based on GNU Guile.")
187 (license license:gpl3+)
188 (home-page "https://www.gnu.org/software/shepherd/")
189 (properties '((ftp-server . "alpha.gnu.org")))))
190
191(define-public daemontools
192 (package
193 (name "daemontools")
194 (version "0.76")
195 (source (origin
196 (method url-fetch)
197 (uri (string-append
198 "https://cr.yp.to/" name "/"
199 name "-" version ".tar.gz"))
200 (sha256
201 (base32
202 "07scvw88faxkscxi91031pjkpccql6wspk4yrlnsbrrb5c0kamd5"))))
203 (build-system gnu-build-system)
204 (arguments
205 `(#:tests? #f ;; No tests as far as I can tell.
206 #:phases
207 (modify-phases %standard-phases
208 (add-after 'unpack 'chdir
209 (lambda _
210 (chdir ,(string-append name "-" version))))
211 (delete 'configure)
212 (add-before 'build 'patch
213 (lambda _
214 (substitute* "src/error.h"
215 (("extern int errno;")
216 "#include <errno.h>"))))
217 (replace 'build
218 (lambda _
219 (invoke "package/compile")))
220 (replace 'install
221 (lambda* (#:key outputs #:allow-other-keys)
222 (let* ((out (assoc-ref outputs "out"))
223 (bin (string-append out "/bin")))
224 (for-each (lambda (file)
225 (install-file file bin))
226 (find-files "command"))))))))
227 (synopsis "Tools for managing UNIX style services")
228 (description
229 "@code{daemontools} is a collection of tools for managing UNIX
230services.")
231 (license license:public-domain)
232 (home-page "https://cr.yp.to/daemontools.html")))
233
234(define-public dfc
235 (package
236 (name "dfc")
237 (version "3.0.4")
238 (source
239 (origin
240 (method url-fetch)
241 (uri (string-append
242 "http://projects.gw-computing.net/attachments/download/79/dfc-"
243 version ".tar.gz"))
244 (sha256
245 (base32
246 "0zk1ppx93ijimf4sbgqilxxikpsa2gmpbynknyh41xy7jbdjxp0b"))))
247 (build-system cmake-build-system)
248 (arguments '(#:tests? #f)) ; There are no tests.
249 (native-inputs `(("gettext" ,gettext-minimal)))
250 (home-page "http://projects.gw-computing.net/projects/dfc")
251 (synopsis "Display file system space usage using graphs and colors")
252 (description
253 "dfc (df color) is a modern version of df. It uses colors, draws pretty
254graphs and can export its output to different formats.")
255 (license license:bsd-3)))
256
257(define-public htop
258 (package
259 (name "htop")
260 (version "2.1.0")
261 (source (origin
262 (method url-fetch)
263 (uri (string-append "http://hisham.hm/htop/releases/"
264 version "/htop-" version ".tar.gz"))
265 (sha256
266 (base32
267 "0j07z0xm2gj1vzvbgh4323k4db9mr7drd7gw95mmpqi61ncvwq1j"))))
268 (build-system gnu-build-system)
269 (inputs
270 `(("ncurses" ,ncurses)))
271 (native-inputs
272 `(("python" ,python-minimal-wrapper))) ; for scripts/MakeHeader.py
273 (home-page "https://hisham.hm/htop/")
274 (synopsis "Interactive process viewer")
275 (description
276 "This is htop, an interactive process viewer. It is a text-mode
277application (for console or X terminals) and requires ncurses.")
278 (license license:gpl2)))
279
280(define-public pies
281 (package
282 (name "pies")
283 (version "1.3")
284 (source
285 (origin
286 (method url-fetch)
287 (uri (string-append "mirror://gnu/pies/pies-"
288 version ".tar.bz2"))
289 (sha256
290 (base32
291 "12r7rjjyibjdj08dvwbp0iflfpzl4s0zhn6cr6zj3hwf9gbzgl1g"))))
292 (build-system gnu-build-system)
293 (arguments
294 '(#:phases (modify-phases %standard-phases
295 (add-before 'build 'patch-/bin/sh
296 (lambda* (#:key inputs #:allow-other-keys)
297 ;; Use the right shell when executing user-provided
298 ;; shell commands.
299 (let ((bash (assoc-ref inputs "bash")))
300 (substitute* "src/progman.c"
301 (("\"/bin/sh\"")
302 (string-append "\"" bash "/bin/sh\"")))
303 #t))))))
304 (home-page "https://www.gnu.org/software/pies/")
305 (synopsis "Program invocation and execution supervisor")
306 (description
307 "GNU pies is a program that supervises the invocation and execution of
308other programs. It reads the list of programs to be started from its
309configuration file, executes them, and then monitors their status,
310re-executing them as necessary.")
311 (license license:gpl3+)))
312
313(define-public inetutils
314 (package
315 (name "inetutils")
316 (version "1.9.4")
317 (source (origin
318 (method url-fetch)
319 (uri (string-append "mirror://gnu/inetutils/inetutils-"
320 version ".tar.gz"))
321 (sha256
322 (base32
323 "05n65k4ixl85dc6rxc51b1b732gnmm8xnqi424dy9f1nz7ppb3xy"))))
324 (build-system gnu-build-system)
325 (arguments
326 `(#:configure-flags '("--localstatedir=/var"
327
328 ;; Make sure 'PATH_PROCNET_DEV' gets defined when
329 ;; cross-compiling (by default it does not.)
330 ,@(if (%current-target-system)
331 '("--with-path-procnet-dev=/proc/net/dev")
332 '()))
333 ;; On some systems, 'libls.sh' may fail with an error such as:
334 ;; "Failed to tell switch -a apart from -A".
335 #:parallel-tests? #f))
336 (inputs `(("ncurses" ,ncurses)
337 ("readline" ,readline))) ;for 'ftp'
338 (native-inputs `(("netstat" ,net-tools))) ;for tests
339 (home-page "https://www.gnu.org/software/inetutils/")
340 (synopsis "Basic networking utilities")
341 (description
342 "Inetutils is a collection of common network programs, such as an ftp
343client and server, a telnet client and server, an rsh client and server, and
344hostname.")
345 (license license:gpl3+)))
346
347(define-public shadow
348 (package
349 (name "shadow")
350 (version "4.5")
351 (source (origin
352 (method url-fetch)
353 (uri (string-append
354 "https://github.com/shadow-maint/shadow/releases/"
355 "download/" version "/shadow-" version ".tar.xz"))
356 (sha256
357 (base32
358 "0hdpai78n63l3v3fgr3kkiqzhd0awrpfnnzz4mf7lmxdh61qb37w"))))
359 (build-system gnu-build-system)
360 (arguments
361 `(;; Assume System V `setpgrp (void)', which is the default on GNU
362 ;; variants (`AC_FUNC_SETPGRP' is not cross-compilation capable.)
363 #:configure-flags
364 '("--with-libpam" "ac_cv_func_setpgrp_void=yes")
365
366 #:phases
367 (modify-phases %standard-phases
368 (add-before 'build 'set-nscd-file-name
369 (lambda* (#:key inputs #:allow-other-keys)
370 ;; Use the right file name for nscd.
371 (let ((libc (assoc-ref inputs
372 ,(if (%current-target-system)
373 "cross-libc"
374 "libc"))))
375 (substitute* "lib/nscd.c"
376 (("/usr/sbin/nscd")
377 (string-append libc "/sbin/nscd"))))))
378 (add-after 'install 'remove-groups
379 (lambda* (#:key outputs #:allow-other-keys)
380 ;; Remove `groups', which is already provided by Coreutils.
381 (let* ((out (assoc-ref outputs "out"))
382 (bin (string-append out "/bin"))
383 (man (string-append out "/share/man")))
384 (delete-file (string-append bin "/groups"))
385 (for-each delete-file (find-files man "^groups\\."))
386 #t))))))
387
388 (inputs (if (string-contains (or (%current-target-system)
389 (%current-system))
390 "-linux")
391 `(("linux-pam" ,linux-pam))
392 '()))
393 (home-page "http://pkg-shadow.alioth.debian.org/")
394 (synopsis "Authentication-related tools such as passwd, su, and login")
395 (description
396 "Shadow provides a number of authentication-related tools, including:
397login, passwd, su, groupadd, and useradd.")
398
399 ;; The `vipw' program is GPLv2+.
400 ;; libmisc/salt.c is public domain.
401 (license license:bsd-3)))
402
403(define-public mingetty
404 (package
405 (name "mingetty")
406 (version "1.08")
407 (source (origin
408 (method url-fetch)
409 (uri (string-append "mirror://sourceforge/mingetty/mingetty/"
410 version "/mingetty-" version ".tar.gz"))
411 (sha256
412 (base32
413 "05yxrp44ky2kg6qknk1ih0kvwkgbn9fbz77r3vci7agslh5wjm8g"))))
414 (build-system gnu-build-system)
415 (arguments
416 `(#:phases
417 (modify-phases %standard-phases
418 (replace 'configure
419 (lambda* (#:key inputs outputs #:allow-other-keys)
420 (let* ((out (assoc-ref outputs "out"))
421 (man8 (string-append out "/share/man/man8"))
422 (sbin (string-append out "/sbin"))
423 (shadow (assoc-ref inputs "shadow"))
424 (login (string-append shadow "/bin/login")))
425 (substitute* "Makefile"
426 (("^SBINDIR.*")
427 (string-append "SBINDIR = " out
428 "/sbin\n"))
429 (("^MANDIR.*")
430 (string-append "MANDIR = " out
431 "/share/man/man8\n")))
432
433 ;; Pick the right 'login' by default.
434 (substitute* "mingetty.c"
435 (("\"/bin/login\"")
436 (string-append "\"" login "\"")))
437
438 (mkdir-p sbin)
439 (mkdir-p man8))
440 #t)))
441 #:tests? #f)) ; no tests
442 (inputs `(("shadow" ,shadow)))
443
444 (home-page "https://sourceforge.net/projects/mingetty")
445 (synopsis "Getty for the text console")
446 (description
447 "Small console getty that is started on the Linux text console,
448asks for a login name and then transfers over to 'login'. It is extended to
449allow automatic login and starting any app.")
450 (license license:gpl2+)))
451
452(define-public net-base
453 (package
454 (name "net-base")
455 (version "5.3")
456 (source (origin
457 (method url-fetch)
458 (uri (string-append
459 "mirror://debian/pool/main/n/netbase/netbase_"
460 version ".tar.xz"))
461 (sha256
462 (base32
463 "12xqjwg3p4rzmmh2iib6sigm9l29y3dgk74mmnw64k84jnbwdxl1"))))
464 (build-system trivial-build-system)
465 (arguments
466 `(#:modules ((guix build utils))
467 #:builder (begin
468 (use-modules (guix build utils)
469 (srfi srfi-26))
470
471 (let* ((source (assoc-ref %build-inputs "source"))
472 (tar (assoc-ref %build-inputs "tar"))
473 (xz (assoc-ref %build-inputs "xz"))
474 (output (assoc-ref %outputs "out"))
475 (etc (string-append output "/etc")))
476 (setenv "PATH" (string-append xz "/bin"))
477 (system* (string-append tar "/bin/tar") "xvf"
478 source)
479 (chdir ,(string-append "netbase-" version))
480 (mkdir-p etc)
481 (for-each copy-file
482 '("etc-services" "etc-protocols" "etc-rpc")
483 (map (cut string-append etc "/" <>)
484 '("services" "protocols" "rpc")))
485 #t))))
486 (native-inputs `(("tar" ,tar)
487 ("xz" ,xz)))
488 (synopsis "IANA protocol, port, and RPC number assignments")
489 (description
490 "This package provides the /etc/services, /etc/protocols, and /etc/rpc
491files, which contain information about the IANA-assigned port, protocol, and
492ONC RPC numbers.")
493 (home-page "http://packages.debian.org/sid/netbase")
494 (license license:gpl2)))
495
496(define-public netcat
497 (package
498 (name "netcat")
499 (version "0.7.1")
500 (source (origin
501 (method url-fetch)
502 (uri (string-append "mirror://sourceforge/netcat/netcat/" version
503 "/netcat-" version ".tar.bz2"))
504 (sha256
505 (base32
506 "1frjcdkhkpzk0f84hx6hmw5l0ynpmji8vcbaxg8h5k2svyxz0nmm"))))
507 (build-system gnu-build-system)
508 (arguments
509 `(#:configure-flags
510 ;; By default, man and info pages are put in PREFIX/{man,info},
511 ;; but we want them in PREFIX/share/{man,info}.
512 (let ((out (assoc-ref %outputs "out")))
513 (list (string-append "--mandir=" out "/share/man")
514 (string-append "--infodir=" out "/share/info")))))
515 (home-page "http://netcat.sourceforge.net")
516 (synopsis "Read and write data over TCP/IP")
517 (description
518 "Netcat is a featured networking utility which reads and writes data
519across network connections, using the TCP/IP protocol. It is designed to be a
520reliable \"back-end\" tool that can be used directly or easily driven by other
521programs and scripts. At the same time, it is a feature-rich network debugging
522and exploration tool, since it can create almost any kind of connection you
523would need and has several interesting built-in capabilities.")
524 (license license:gpl2+)))
525
526(define-public alive
527 (package
528 (name "alive")
529 (version "2.0.2")
530 (source (origin
531 (method url-fetch)
532 (uri (string-append "mirror://gnu/alive/alive-"
533 version ".tar.xz"))
534 (sha256
535 (base32
536 "1vrzg51ai68x9yld7vbgl58sxaw5qpx8rbakwcxn4cqq6vpxj38j"))))
537 (build-system gnu-build-system)
538 (arguments '(#:configure-flags '("alive_cv_nice_ping=yes")))
539 (inputs `(("guile" ,guile-2.0)
540 ("inetutils" ,inetutils)))
541 (home-page "https://www.gnu.org/software/alive/")
542 (synopsis "Autologin and keep-alive daemon")
543 (description
544 "GNU Alive sends periodic pings to a server, generally to keep a
545connection alive.")
546 (license license:gpl3+)))
547
548(define-public isc-dhcp
549 (let* ((bind-major-version "9")
550 (bind-minor-version "9")
551 (bind-patch-version "11")
552 (bind-release-type "-P") ; for patch release, use "-P"
553 (bind-release-version "1") ; for patch release, e.g. "6"
554 (bind-version (string-append bind-major-version
555 "."
556 bind-minor-version
557 "."
558 bind-patch-version
559 bind-release-type
560 bind-release-version)))
561 (package
562 (name "isc-dhcp")
563 (version "4.3.6")
564 (source (origin
565 (method url-fetch)
566 (uri (string-append "http://ftp.isc.org/isc/dhcp/"
567 version "/dhcp-" version ".tar.gz"))
568 (sha256
569 (base32
570 "06vgxhm6agzkp6r1jy10467vrfw2rzcp2mnkcph7ydziciisy7m4"))))
571 (build-system gnu-build-system)
572 (arguments
573 `(#:parallel-build? #f
574 #:phases
575 (modify-phases %standard-phases
576 (add-after 'unpack 'replace-bundled-bind
577 (lambda* (#:key inputs #:allow-other-keys)
578 (delete-file "bind/bind.tar.gz")
579 (copy-file (assoc-ref inputs "bind-source-tarball")
580 "bind/bind.tar.gz")
581 (chmod "bind/bind.tar.gz" #o644)
582 (substitute* "bind/version.tmp"
583 (("^MAJORVER=.*")
584 (format #f "MAJORVER=~a\n" ,bind-major-version))
585 (("^MINORVER=.*")
586 (format #f "MINORVER=~a\n" ,bind-minor-version))
587 (("^PATCHVER=.*")
588 (format #f "PATCHVER=~a\n" ,bind-patch-version))
589 (("^RELEASETYPE=.*")
590 (format #f "RELEASETYPE=~a\n" ,bind-release-type))
591 (("^RELEASEVER=.*")
592 (format #f "RELEASEVER=~a\n" ,bind-release-version)))
593 #t))
594 (add-after 'configure 'post-configure
595 (lambda* (#:key outputs #:allow-other-keys)
596 ;; Point to the right client script, which will be
597 ;; installed in a later phase.
598 (substitute* "includes/dhcpd.h"
599 (("#define[[:blank:]]+_PATH_DHCLIENT_SCRIPT.*")
600 (let ((out (assoc-ref outputs "out")))
601 (string-append "#define _PATH_DHCLIENT_SCRIPT \""
602 out "/libexec/dhclient-script"
603 "\"\n"))))
604
605 ;; During the 'build' phase, 'bind.tar.gz' is extracted, so
606 ;; we must patch shebangs in there and make sure the right
607 ;; shell is used.
608 (with-directory-excursion "bind"
609 (substitute* "Makefile"
610 (("\\./configure")
611 (let ((sh (which "sh")))
612 (string-append "./configure CONFIG_SHELL="
613 sh " SHELL=" sh))))
614
615 (let ((bind-directory (string-append "bind-" ,bind-version)))
616 (system* "tar" "xf" "bind.tar.gz")
617 (for-each patch-shebang
618 (find-files bind-directory ".*"))
619 (zero? (system* "tar" "cf" "bind.tar.gz"
620 bind-directory
621 ;; avoid non-determinism in the archive
622 "--sort=name"
623 "--mtime=@0"
624 "--owner=root:0"
625 "--group=root:0"))))))
626 (add-after 'install 'post-install
627 (lambda* (#:key inputs outputs #:allow-other-keys)
628 ;; Install the dhclient script for GNU/Linux and make sure
629 ;; if finds all the programs it needs.
630 (let* ((out (assoc-ref outputs "out"))
631 (libexec (string-append out "/libexec"))
632 (coreutils (assoc-ref inputs "coreutils"))
633 (inetutils (assoc-ref inputs "inetutils"))
634 (net-tools (assoc-ref inputs "net-tools"))
635 (sed (assoc-ref inputs "sed")))
636 (substitute* "client/scripts/linux"
637 (("/sbin/ip")
638 (string-append (assoc-ref inputs "iproute")
639 "/sbin/ip")))
640
641 (mkdir-p libexec)
642 (copy-file "client/scripts/linux"
643 (string-append libexec "/dhclient-script"))
644
645 (wrap-program
646 (string-append libexec "/dhclient-script")
647 `("PATH" ":" prefix
648 ,(map (lambda (dir)
649 (string-append dir "/bin:"
650 dir "/sbin"))
651 (list inetutils net-tools coreutils sed))))))))))
652
653 (native-inputs `(("perl" ,perl)))
654
655 (inputs `(("inetutils" ,inetutils)
656 ("net-tools" ,net-tools)
657 ("iproute" ,iproute)
658
659 ;; XXX isc-dhcp bundles a copy of bind that has security
660 ;; flaws, so we use a newer version.
661 ("bind-source-tarball"
662 ,(origin
663 (method url-fetch)
664 (uri (string-append "http://ftp.isc.org/isc/bind9/"
665 bind-version
666 "/bind-" bind-version ".tar.gz"))
667 (sha256
668 (base32
669 "1a4g6nzzrbmhngdgvgv1jjq4fm06m8fwc2a0gskkchplxl7dva20"))))
670
671 ;; When cross-compiling, we need the cross Coreutils and sed.
672 ;; Otherwise just use those from %FINAL-INPUTS.
673 ,@(if (%current-target-system)
674 `(("coreutils" ,coreutils)
675 ("sed" ,sed))
676 '())))
677
678 (home-page "http://www.isc.org/products/DHCP/")
679 (synopsis "Dynamic Host Configuration Protocol (DHCP) tools")
680 (description
681 "ISC's Dynamic Host Configuration Protocol (DHCP) distribution provides a
682reference implementation of all aspects of DHCP, through a suite of DHCP
683tools: server, client, and relay agent.")
684 (license license:isc)
685 (properties '((cpe-name . "dhcp"))))))
686
687(define-public libpcap
688 (package
689 (name "libpcap")
690 (version "1.8.1")
691 (source (origin
692 (method url-fetch)
693 (uri (string-append "http://www.tcpdump.org/release/libpcap-"
694 version ".tar.gz"))
695 (sha256
696 (base32
697 "07jlhc66z76dipj4j5v3dig8x6h3k6cb36kmnmpsixf3zmlvqgb7"))))
698 (build-system gnu-build-system)
699 (native-inputs `(("bison" ,bison) ("flex" ,flex)))
700 (arguments '(#:configure-flags '("--with-pcap=linux")
701 #:tests? #f)) ; no 'check' target
702 (home-page "http://www.tcpdump.org")
703 (synopsis "Network packet capture library")
704 (description
705 "libpcap is an interface for user-level packet capture. It provides a
706portable framework for low-level network monitoring. Applications include
707network statistics collection, security monitoring, network debugging, etc.")
708
709 ;; fad-*.c and a couple other files are BSD-4, but the rest is BSD-3.
710 (license license:bsd-3)))
711
712(define-public tcpdump
713 (package
714 (name "tcpdump")
715 (version "4.9.2")
716 (source (origin
717 (method url-fetch)
718 (uri (string-append "http://www.tcpdump.org/release/tcpdump-"
719 version ".tar.gz"))
720 (sha256
721 (base32
722 "0ygy0layzqaj838r5xd613iraz09wlfgpyh7pc6cwclql8v3b2vr"))))
723 (build-system gnu-build-system)
724 (inputs `(("libpcap" ,libpcap)
725 ("openssl" ,openssl)))
726 (native-inputs `(("perl" ,perl))) ; for tests
727 (home-page "http://www.tcpdump.org/")
728 (synopsis "Network packet analyzer")
729 (description
730 "Tcpdump is a command-line tool to analyze network traffic passing
731through the network interface controller.")
732 (license license:bsd-3)))
733
734(define-public jnettop
735 (package
736 (name "jnettop")
737 (version "0.13.0")
738 (source (origin
739 (method url-fetch)
740 (uri (string-append "http://jnettop.kubs.info/dist/jnettop-"
741 version ".tar.gz"))
742 (sha256
743 (base32
744 "1855np7c4b0bqzhf1l1dyzxb90fpnvrirdisajhci5am6als31z9"))))
745 (build-system gnu-build-system)
746 (native-inputs
747 `(("pkg-config" ,pkg-config)))
748 (inputs
749 `(("glib" ,glib)
750 ("ncurses" ,ncurses)
751 ("libpcap" ,libpcap)))
752 (home-page "http://jnettop.kubs.info/")
753 (synopsis "Visualize network traffic by bandwidth use")
754 (description
755 "Jnettop is a traffic visualiser, which captures traffic going
756through the host it is running from and displays streams sorted
757by bandwidth they use.")
758 (license license:gpl2+)))
759
760(define-public clusterssh
761 (package
762 (name "clusterssh")
763 (version "3.28")
764 (source (origin
765 (method url-fetch)
766 (uri (string-append "mirror://sourceforge/clusterssh/"
767 "1.%20ClusterSSH%20Series%203/" version
768 "/clusterssh-" version ".tar.gz"))
769 (sha256
770 (base32
771 "1bwggpvaj2al5blg1ynapviv2kpydffpzq2zkhi81najnvzc1rr7"))))
772 (build-system gnu-build-system)
773 (inputs `(("perl" ,perl)))
774 (propagated-inputs `(("xterm" ,xterm)
775 ("perl-tk" ,perl-tk)
776 ("perl-x11-protocol" ,perl-x11-protocol)))
777 (arguments
778 `(#:phases
779 (modify-phases %standard-phases
780 (add-after 'install 'set-load-paths
781 (lambda* (#:key inputs outputs #:allow-other-keys)
782 ;; Put the perl-tk and perl-x11-protocol modules in the perl inc
783 ;; path for PROG
784 (let* ((out (assoc-ref outputs "out"))
785 (prog (string-append out "/bin/cssh"))
786 (perl-ver ,(package-version perl))
787 (x11-inc (string-append
788 (assoc-ref inputs "perl-x11-protocol")
789 "/lib/perl5/site_perl/" perl-ver))
790 (tk-inc (string-append
791 (assoc-ref inputs "perl-tk")
792 "/lib/perl5/site_perl/" perl-ver
793 "/x86_64-linux")))
794 (wrap-program
795 prog
796 `("PERL5LIB" ":" prefix (,x11-inc ,tk-inc))))
797 #t)))))
798 ;; The clusterssh.sourceforge.net address requires login to view
799 (home-page "https://sourceforge.net/projects/clusterssh/")
800 (synopsis "Secure concurrent multi-server terminal control")
801 (description
802 "ClusterSSH controls a number of xterm windows via a single graphical
803console window to allow commands to be interactively run on multiple servers
804over ssh connections.")
805 (license license:gpl2+)))
806
807(define-public rename
808 (package
809 (name "rename")
810 (version "0.20")
811 (source (origin
812 (method url-fetch)
813 (uri (string-append
814 "mirror://cpan/authors/id/R/RM/RMBARKER/File-Rename-"
815 version ".tar.gz"))
816 (sha256
817 (base32
818 "1cf6xx2hiy1xalp35fh8g73j67r0w0g66jpcbc6971x9jbm7bvjy"))))
819 (build-system perl-build-system)
820 (native-inputs
821 `(("perl-module-build" ,perl-module-build)
822 ("perl-test-pod" ,perl-test-pod)
823 ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
824 (home-page "https://metacpan.org/pod/distribution/File-Rename/rename.PL")
825 (synopsis "Perl extension for renaming multiple files")
826 (description
827 "This package provides a Perl interface (@code{Perl::Rename}) as well
828as a command-line utility (@command{rename}) that can rename multiple files
829at once based on a Perl regular expression.")
830 (license license:perl-license)))
831
832(define-public rottlog
833 (package
834 (name "rottlog")
835 (version "0.72.2")
836 (source (origin
837 (method url-fetch)
838 (uri (string-append "mirror://gnu/rottlog/rottlog-"
839 version ".tar.gz"))
840 (sha256
841 (base32
842 "0751mb9l2f0jrk3vj6q8ilanifd121dliwk0c34g8k0dlzsv3kd7"))
843 (modules '((guix build utils)))
844 (snippet
845 '(substitute* "Makefile.in"
846 (("-o \\$\\{LOG_OWN\\} -g \\$\\{LOG_GROUP\\}")
847 ;; Don't try to chown root.
848 "")
849 (("mkdir -p \\$\\(ROTT_STATDIR\\)")
850 ;; Don't attempt to create /var/lib/rottlog.
851 "true")))))
852 (build-system gnu-build-system)
853 (arguments
854 '(#:configure-flags (list "ROTT_ETCDIR=/etc/rottlog" ;rc file location
855 "--localstatedir=/var")
856
857 ;; Install example config files in OUT/etc.
858 #:make-flags (list (string-append "ROTT_ETCDIR="
859 (assoc-ref %outputs "out")
860 "/etc"))
861
862 #:phases (modify-phases %standard-phases
863 (add-after 'unpack 'patch-paths
864 (lambda _
865 (substitute* "rc/rc"
866 (("/usr/sbin/sendmail") "sendmail"))
867 #t))
868 (add-after 'build 'set-packdir
869 (lambda _
870 ;; Set a default location for archived logs.
871 (substitute* "rc/rc"
872 (("packdir=\"\"")
873 "packdir=\"/var/log\""))
874 #t))
875 (add-before 'install 'tweak-rc-weekly
876 (lambda _
877 (substitute* "rc/weekly"
878 (("/bin/kill")
879 (which "kill"))
880 (("syslogd\\.pid")
881 ;; The file is called 'syslog.pid' (no 'd').
882 "syslog.pid"))
883 #t))
884 (add-after 'install 'install-info
885 (lambda _
886 (zero? (system* "make" "install-info")))))))
887 (native-inputs `(("texinfo" ,texinfo)
888 ("util-linux" ,util-linux))) ; for 'cal'
889 (home-page "https://www.gnu.org/software/rottlog/")
890 (synopsis "Log rotation and management")
891 (description
892 "GNU Rot[t]log is a program for managing log files. It is used to
893automatically rotate out log files when they have reached a given size or
894according to a given schedule. It can also be used to automatically compress
895and archive such logs. Rot[t]log will mail reports of its activity to the
896system administrator.")
897 (license license:gpl3+)))
898
899(define-public sudo
900 (package
901 (name "sudo")
902 (version "1.8.22")
903 (source (origin
904 (method url-fetch)
905 (uri
906 (list (string-append "https://www.sudo.ws/sudo/dist/sudo-"
907 version ".tar.gz")
908 (string-append "ftp://ftp.sudo.ws/pub/sudo/OLD/sudo-"
909 version ".tar.gz")))
910 (sha256
911 (base32
912 "00pxp74xkwdcmrjwy55j0k8p684jk1zx3nzdc11v30q8q8kwnmkj"))
913 (modules '((guix build utils)))
914 (snippet
915 '(delete-file-recursively "lib/zlib"))))
916 (build-system gnu-build-system)
917 (arguments
918 `(#:configure-flags
919 (list "--with-logpath=/var/log/sudo.log"
920 "--with-rundir=/var/run/sudo" ;must be cleaned up at boot time
921 "--with-vardir=/var/db/sudo"
922 "--with-iologdir=/var/log/sudo-io"
923
924 ;; 'visudo.c' expects _PATH_MV to be defined, but glibc doesn't
925 ;; provide it.
926 (string-append "CPPFLAGS=-D_PATH_MV='\""
927 (assoc-ref %build-inputs "coreutils")
928 "/bin/mv\"'"))
929
930 ;; Avoid non-determinism; see <http://bugs.gnu.org/21918>.
931 #:parallel-build? #f
932
933 #:phases
934 (modify-phases %standard-phases
935 (add-before 'configure 'pre-configure
936 (lambda _
937 (substitute* "src/sudo_usage.h.in"
938 ;; Do not capture 'configure' arguments since we would
939 ;; unduly retain references, and also because the
940 ;; CPPFLAGS above would close the string literal
941 ;; prematurely.
942 (("@CONFIGURE_ARGS@") "\"\""))
943 (substitute* (find-files "." "Makefile\\.in")
944 (("-o [[:graph:]]+ -g [[:graph:]]+")
945 ;; Allow installation as non-root.
946 "")
947 (("^install: (.*)install-sudoers(.*)" _ before after)
948 ;; Don't try to create /etc/sudoers.
949 (string-append "install: " before after "\n"))
950 (("\\$\\(DESTDIR\\)\\$\\(rundir\\)")
951 ;; Don't try to create /run/sudo.
952 "$(TMPDIR)/dummy")
953 (("\\$\\(DESTDIR\\)\\$\\(vardir\\)")
954 ;; Don't try to create /var/db/sudo.
955 "$(TMPDIR)/dummy"))
956 #t)))
957
958 ;; XXX: The 'testsudoers' test series expects user 'root' to exist, but
959 ;; the chroot's /etc/passwd doesn't have it. Turn off the tests.
960 #:tests? #f))
961 (inputs
962 `(("groff" ,groff)
963 ("linux-pam" ,linux-pam)
964 ("zlib" ,zlib)
965 ("coreutils" ,coreutils)))
966 (home-page "https://www.sudo.ws/")
967 (synopsis "Run commands as root")
968 (description
969 "Sudo (su \"do\") allows a system administrator to delegate authority to
970give certain users (or groups of users) the ability to run some (or all)
971commands as root or another user while providing an audit trail of the
972commands and their arguments.")
973
974 ;; See <http://www.sudo.ws/sudo/license.html>.
975 (license license:x11)))
976
977(define-public wpa-supplicant-minimal
978 (package
979 (name "wpa-supplicant-minimal")
980 (version "2.6")
981 (source (origin
982 (method url-fetch)
983 (uri (string-append
984 "http://w1.fi/releases/wpa_supplicant-"
985 version
986 ".tar.gz"))
987 (patches (search-patches "wpa-supplicant-CVE-2017-13082.patch"
988 "wpa-supplicant-fix-key-reuse.patch"
989 "wpa-supplicant-fix-zeroed-keys.patch"
990 "wpa-supplicant-fix-nonce-reuse.patch"
991 "wpa-supplicant-krack-followups.patch"))
992 (sha256
993 (base32
994 "0l0l5gz3d5j9bqjsbjlfcv4w4jwndllp9fmyai4x9kg6qhs6v4xl"))))
995 (build-system gnu-build-system)
996 (arguments
997 '(#:phases
998 (modify-phases %standard-phases
999 (replace 'configure
1000 (lambda* (#:key outputs #:allow-other-keys)
1001 (chdir "wpa_supplicant")
1002 (copy-file "defconfig" ".config")
1003 (let ((port (open-file ".config" "al")))
1004 (display "
1005 CONFIG_DEBUG_SYSLOG=y
1006
1007 # Choose GnuTLS (the default is OpenSSL.)
1008 CONFIG_TLS=gnutls
1009
1010 CONFIG_DRIVER_NL80211=y
1011 CFLAGS += $(shell pkg-config libnl-3.0 --cflags)
1012 CONFIG_LIBNL32=y
1013 CONFIG_READLINE=y\n" port)
1014 (close-port port))))
1015 (add-after 'install 'install-man-pages
1016 (lambda* (#:key outputs #:allow-other-keys)
1017 (let* ((out (assoc-ref outputs "out"))
1018 (man (string-append out "/share/man"))
1019 (man5 (string-append man "/man5"))
1020 (man8 (string-append man "/man8")))
1021 (define (copy-man-page target)
1022 (lambda (file)
1023 (install-file file target)))
1024
1025 (mkdir-p man5) (mkdir man8)
1026 (for-each (copy-man-page man5)
1027 (find-files "doc/docbook" "\\.5"))
1028 (for-each (copy-man-page man8)
1029 (find-files "doc/docbook" "\\.8"))
1030 #t))))
1031
1032 #:make-flags (list "CC=gcc"
1033 (string-append "BINDIR=" (assoc-ref %outputs "out")
1034 "/sbin")
1035 (string-append "LIBDIR=" (assoc-ref %outputs "out")
1036 "/lib"))
1037 #:tests? #f))
1038 (inputs
1039 `(("readline" ,readline)
1040 ("libnl" ,libnl)
1041 ("gnutls" ,gnutls)
1042 ("libgcrypt" ,libgcrypt))) ;needed by crypto_gnutls.c
1043 (native-inputs
1044 `(("pkg-config" ,pkg-config)))
1045 (home-page "http://w1.fi/wpa_supplicant/")
1046 (synopsis "Connecting to WPA and WPA2-protected wireless networks")
1047 (description
1048 "wpa_supplicant is a WPA Supplicant with support for WPA and WPA2 (IEEE
1049802.11i / RSN). Supplicant is the IEEE 802.1X/WPA component that is used in
1050the client stations. It implements key negotiation with a WPA Authenticator
1051and it controls the roaming and IEEE 802.11 authentication/association of the
1052WLAN driver.
1053
1054This package provides the 'wpa_supplicant' daemon and the 'wpa_cli' command.")
1055
1056 ;; In practice, this is linked against Readline, which makes it GPLv3+.
1057 (license license:bsd-3)))
1058
1059(define-public wpa-supplicant
1060 (package (inherit wpa-supplicant-minimal)
1061 (name "wpa-supplicant")
1062 (inputs `(("dbus" ,dbus)
1063 ,@(package-inputs wpa-supplicant-minimal)))
1064 (arguments
1065 (substitute-keyword-arguments (package-arguments wpa-supplicant-minimal)
1066 ((#:phases phases)
1067 `(modify-phases ,phases
1068 (add-after 'configure 'configure-for-dbus
1069 (lambda _
1070 (let ((port (open-file ".config" "al")))
1071 (display "
1072 CONFIG_CTRL_IFACE_DBUS=y
1073 CONFIG_CTRL_IFACE_DBUS_NEW=y
1074 CONFIG_CTRL_IFACE_DBUS_INTRO=y\n" port)
1075 (close-port port))
1076 #t))
1077 (add-after 'install-man-pages 'install-dbus-conf
1078 (lambda* (#:key outputs #:allow-other-keys)
1079 (let* ((out (assoc-ref outputs "out"))
1080 (dir (string-append out "/etc/dbus-1/system.d")))
1081 (mkdir-p dir)
1082 (copy-file "dbus/dbus-wpa_supplicant.conf"
1083 (string-append dir "/wpa_supplicant.conf")))
1084 #t))))))))
1085
1086(define-public wakelan
1087 (package
1088 (name "wakelan")
1089 (version "1.1")
1090 (source (origin
1091 (method url-fetch)
1092 (uri (string-append
1093 "ftp://ftp.gwdg.de/pub/linux/metalab/system/network/misc/wakelan-"
1094 version ".tar.gz"))
1095 (sha256
1096 (base32
1097 "0vydqpf44146ir6k87gmqaq6xy66xhc1gkr3nsd7jj3nhy7ypx9x"))))
1098 (build-system gnu-build-system)
1099 (arguments
1100 '(#:phases
1101 (modify-phases %standard-phases
1102 (replace 'configure
1103 (lambda* (#:key outputs #:allow-other-keys)
1104 (let ((out (assoc-ref outputs "out")))
1105 (mkdir-p (string-append out "/bin"))
1106 (mkdir-p (string-append out "/share/man/man1"))
1107
1108 ;; It's an old configure script that doesn't understand
1109 ;; the extra options we pass.
1110 (setenv "CONFIG_SHELL" (which "bash"))
1111 (zero?
1112 (system* "./configure"
1113 (string-append "--prefix=" out)
1114 (string-append "--mandir=" out
1115 "/share/man")))))))
1116 #:tests? #f))
1117 (home-page "http://kernel.org") ; really, no home page
1118 (synopsis "Send a wake-on-LAN packet")
1119 (description
1120 "WakeLan broadcasts a properly formatted UDP packet across the local area
1121network, which causes enabled computers to power on.")
1122 (license license:gpl2+)))
1123
1124(define-public dmidecode
1125 (package
1126 (name "dmidecode")
1127 (version "3.1")
1128 (source (origin
1129 (method url-fetch)
1130 (uri (string-append
1131 "mirror://savannah/dmidecode/dmidecode-"
1132 version ".tar.xz"))
1133 (sha256
1134 (base32
1135 "1h0sg0lxa15nzf8s7884p6q7p6md9idm0c79wyqmk32l4ndwwrnp"))))
1136 (build-system gnu-build-system)
1137 (arguments
1138 '(#:phases (modify-phases %standard-phases (delete 'configure))
1139 #:tests? #f ; no 'check' target
1140 #:make-flags (list (string-append "prefix="
1141 (assoc-ref %outputs "out")))))
1142 (home-page "http://www.nongnu.org/dmidecode/")
1143 (synopsis "Read hardware information from the BIOS")
1144 (description
1145 "Dmidecode reports information about your system's hardware as described
1146in your system BIOS according to the SMBIOS/DMI standard. This typically
1147includes system manufacturer, model name, serial number, BIOS version, asset
1148tag as well as a lot of other details of varying level of interest and
1149reliability depending on the manufacturer. This will often include usage
1150status for the CPU sockets, expansion slots (e.g. AGP, PCI, ISA) and memory
1151module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
1152 (license license:gpl2+)))
1153
1154(define-public acpica
1155 (package
1156 (name "acpica")
1157 (version "20171110")
1158 (source (origin
1159 (method url-fetch)
1160 (uri (string-append
1161 "https://acpica.org/sites/acpica/files/acpica-unix2-"
1162 version ".tar.gz"))
1163 (sha256
1164 (base32
1165 "08g83qvhfx04vzb3f3pfpkp0w601v6csjzdv7z1vjzz1k71h7yml"))))
1166 (build-system gnu-build-system)
1167 (native-inputs `(("flex" ,flex)
1168 ("bison" ,bison)))
1169 (arguments
1170 '(#:make-flags (list (string-append "PREFIX=" %output)
1171 "CC=gcc"
1172 "HOST=_LINUX"
1173 "OPT_CFLAGS=-Wall -fno-strict-aliasing")
1174 #:tests? #f ; no 'check' target.
1175 #:phases (modify-phases %standard-phases (delete 'configure))))
1176 (home-page "https://acpica.org/")
1177 (synopsis "Tools for the development and debug of ACPI tables")
1178 (description
1179 "The ACPI Component Architecture (@dfn{ACPICA}) project provides an
1180OS-independent reference implementation of the Advanced Configuration and
1181Power Interface Specification (@dfn{ACPI}). ACPICA code contains those portions
1182of ACPI meant to be directly integrated into the host OS as a kernel-resident
1183subsystem, and a small set of tools to assist in developing and debugging ACPI
1184tables. This package contains only the user-space tools needed for ACPI table
1185development, not the kernel implementation of ACPI.")
1186 (license license:gpl2))) ; Dual GPLv2/ACPICA Licence
1187
1188(define-public stress
1189 (package
1190 (name "stress")
1191 (version "1.0.4")
1192 (source (origin
1193 (method url-fetch)
1194 (uri (string-append "mirror://debian/pool/main/s/stress/stress_"
1195 version ".orig.tar.gz"))
1196 (sha256
1197 (base32
1198 "0nw210jajk38m3y7h8s130ps2qsbz7j75wab07hi2r3hlz14yzh5"))))
1199 (build-system gnu-build-system)
1200 (home-page "https://packages.debian.org/sid/stress")
1201 (synopsis "Impose load on and stress test a computer system")
1202 (description
1203 "Stress is a tool that imposes a configurable amount of CPU, memory, I/O,
1204or disk stress on a POSIX-compliant operating system and reports any errors it
1205detects.
1206
1207Stress is not a benchmark. It is a tool used by system administrators to
1208evaluate how well their systems will scale, by kernel programmers to evaluate
1209perceived performance characteristics, and by systems programmers to expose
1210the classes of bugs which only or more frequently manifest themselves when the
1211system is under heavy load.")
1212 (license license:gpl2+)))
1213
1214(define-public detox
1215 (package
1216 (name "detox")
1217 (version "1.2.0")
1218 (source (origin
1219 (method url-fetch)
1220 (uri (string-append "mirror://sourceforge/detox/detox/" version
1221 "/detox-" version ".tar.bz2"))
1222 (sha256
1223 (base32
1224 "1y6vvjqsg54kl49cry73jbfhr04s7wjs779vrr9zrq6kww7dkymb"))))
1225 (build-system gnu-build-system)
1226 ;; Both flex and popt are used in this case for their runtime libraries
1227 ;; (libfl and libpopt).
1228 (inputs
1229 `(("flex" ,flex)
1230 ("popt" ,popt)))
1231 (arguments
1232 `(#:configure-flags `(,(string-append "--with-popt="
1233 (assoc-ref %build-inputs "popt")))
1234 #:tests? #f)) ;no 'check' target
1235 (home-page "http://detox.sourceforge.net")
1236 (synopsis "Clean up file names")
1237 (description
1238 "Detox is a program that renames files to make them easier to work with
1239under Unix and related operating systems. Spaces and various other unsafe
1240characters (such as \"$\") get replaced with \"_\". ISO 8859-1 (Latin-1)
1241characters can be replaced as well, as can UTF-8 characters.")
1242 (license license:bsd-3)))
1243
1244(define-public testdisk
1245 (package
1246 (name "testdisk")
1247 (version "7.0")
1248 (source (origin
1249 (method url-fetch)
1250 (uri (string-append "http://www.cgsecurity.org/testdisk-"
1251 version ".tar.bz2"))
1252 (sha256
1253 (base32
1254 "0ba4wfz2qrf60vwvb1qsq9l6j0pgg81qgf7fh22siaz649mkpfq0"))))
1255 (build-system gnu-build-system)
1256 (inputs
1257 `(("ntfs-3g" ,ntfs-3g)
1258 ("util-linux" ,util-linux)
1259 ("openssl" ,openssl)
1260 ;; FIXME: add reiserfs
1261 ("zlib" ,zlib)
1262 ("e2fsprogs" ,e2fsprogs)
1263 ("libjpeg" ,libjpeg)
1264 ("ncurses" ,ncurses)))
1265 (home-page "https://www.cgsecurity.org/wiki/TestDisk")
1266 (synopsis "Data recovery tool")
1267 (description
1268 "TestDisk is a program for data recovery, primarily designed to help
1269recover lost partitions and/or make non-booting disks bootable again.")
1270 (license license:gpl2+)))
1271
1272(define-public tree
1273 (package
1274 (name "tree")
1275 (version "1.7.0")
1276 (source (origin
1277 (method url-fetch)
1278 (uri (string-append
1279 "http://mama.indstate.edu/users/ice/tree/src/tree-"
1280 version ".tgz"))
1281 (sha256
1282 (base32 "04kviw799qxly08zb8n5mgxfd96gyis6x69q2qiw86jnh87c4mv9"))))
1283 (build-system gnu-build-system)
1284 (arguments
1285 '(#:phases (modify-phases %standard-phases (delete 'configure))
1286 #:tests? #f ; no check target
1287 #:make-flags (let ((out (assoc-ref %outputs "out")))
1288 (list (string-append "prefix=" out)))))
1289 (synopsis "Recursively list the contents of a directory")
1290 (description
1291 "Tree is a recursive directory listing command that produces a depth
1292indented listing of files, which is colorized ala dircolors if the LS_COLORS
1293environment variable is set and output is to tty.")
1294 (home-page "http://mama.indstate.edu/users/ice/tree/")
1295 (license license:gpl2+)))
1296
1297(define-public direvent
1298 (package
1299 (name "direvent")
1300 (version "5.1")
1301 (source (origin
1302 (method url-fetch)
1303 (uri (string-append "mirror://gnu/direvent/direvent-"
1304 version ".tar.gz"))
1305 (sha256
1306 (base32
1307 "1nwvjmx7kb14ni34c0b8x9a3791pc20gvhj7xaj66d8q4h6n0qf4"))
1308 (modules '((guix build utils)))
1309 (snippet '(substitute* "tests/testsuite"
1310 (("#![[:blank:]]?/bin/sh")
1311 "#!$SHELL")))))
1312 (build-system gnu-build-system)
1313 (arguments
1314 '(#:phases
1315 (modify-phases %standard-phases
1316 (add-before 'build 'patch-/bin/sh
1317 (lambda* (#:key inputs #:allow-other-keys)
1318 ;; Use the right shell when executing the watcher and
1319 ;; user-provided shell commands.
1320 (let ((bash (assoc-ref inputs "bash")))
1321 (substitute* '("src/direvent.c" "src/progman.c")
1322 (("\"/bin/sh\"")
1323 (string-append "\"" bash "/bin/sh\"")))
1324
1325 ;; Adjust the 'shell.at' test accordingly.
1326 (substitute* "tests/testsuite"
1327 (("SHELL=/bin/sh")
1328 (string-append "SHELL=" bash "/bin/sh")))
1329
1330 #t))))))
1331 (home-page "https://www.gnu.org/software/direvent/")
1332 (synopsis "Daemon to monitor directories for events such as file removal")
1333 (description
1334 "A daemon that monitors directories for events, such as creating,
1335deleting or modifying files. It can monitor different sets of directories for
1336different events. When an event is detected, direvent calls a specified
1337external program with information about the event, such as the location
1338within the file system where it occurred. Thus, \"direvent\" provides an
1339easy way to react immediately if given files undergo changes, for example, to
1340track changes in important system configuration files.")
1341 (license license:gpl3+)))
1342
1343(define-public libcap-ng
1344 (package
1345 (name "libcap-ng")
1346 (version "0.7.9")
1347 (source (origin
1348 (method url-fetch)
1349 (uri (string-append
1350 "http://people.redhat.com/sgrubb/libcap-ng/libcap-ng-"
1351 version ".tar.gz"))
1352 (sha256
1353 (base32
1354 "0a0k484kwv0zilry2mbl9k56cnpdhsjxdxin17jas6kkyfy345aa"))))
1355 (build-system gnu-build-system)
1356 (inputs `(("python" ,python)))
1357 (home-page "https://people.redhat.com/sgrubb/libcap-ng/")
1358 (synopsis "Library for more easily working with POSIX capabilities")
1359 (description
1360 "The libcap-ng library is intended to make programming with POSIX
1361capabilities easier than the traditional libcap library. It includes
1362utilities that can analyse all currently running applications and print out
1363any capabilities and whether or not it has an open ended bounding set. The
1364included utilities are designed to let admins and developers spot apps from
1365various ways that may be running with too much privilege.")
1366 ;; The library is lgpl2.1+, but also ships some utils which are gpl2+.
1367 (license (list license:lgpl2.1+ license:gpl2+))))
1368
1369(define-public smartmontools
1370 (package
1371 (name "smartmontools")
1372 (version "6.6")
1373 (source (origin
1374 (method url-fetch)
1375 (uri (string-append
1376 "mirror://sourceforge/smartmontools/smartmontools/"
1377 version "/smartmontools-" version ".tar.gz"))
1378 (sha256
1379 (base32
1380 "0m1hllbb78rr6cxkbalmz1gqkl0psgq8rrmv4gwcmz34n07kvx2i"))))
1381 (build-system gnu-build-system)
1382 (inputs `(("libcap-ng" ,libcap-ng)))
1383 (home-page "https://www.smartmontools.org/")
1384 (synopsis "S.M.A.R.T. harddisk control and monitoring tools")
1385 (description
1386 "The smartmontools package contains utility programs to control and
1387monitor storage systems using the Self-Monitoring, Analysis and Reporting
1388Technology System (@dfn{S.M.A.R.T.}) built into most modern ATA and SCSI hard
1389disks. In many cases, these utilities will provide advanced warning of disk
1390degradation and failure.")
1391 (license license:gpl2+)))
1392
1393(define-public fdupes
1394 (package
1395 (name "fdupes")
1396 (version "1.6.1")
1397 (source
1398 (origin
1399 (method url-fetch)
1400 (uri (string-append
1401 "https://github.com/adrianlopezroche/fdupes/archive/v"
1402 version ".tar.gz"))
1403 (file-name (string-append name "-" version ".tar.gz"))
1404 (sha256
1405 (base32
1406 "1sj9pa40pbz6xdwbxfwhdhkvhdf1xc5gvggk9mdq26c41gdnyswx"))))
1407 (build-system gnu-build-system)
1408 (arguments
1409 '(#:phases (modify-phases %standard-phases
1410 (delete 'configure))
1411 #:tests? #f ; no 'check' target
1412 #:make-flags (list "CC=gcc"
1413 (string-append "PREFIX="
1414 (assoc-ref %outputs "out")))))
1415 (home-page "https://github.com/adrianlopezroche/fdupes")
1416 (synopsis "Identify duplicate files")
1417 (description
1418 "fdupes is a program for identifying duplicate files residing within
1419specified directories.")
1420 (license license:expat)))
1421
1422(define-public graphios
1423 (package
1424 (name "graphios")
1425 (version "2.0.3")
1426 (source
1427 (origin
1428 (method url-fetch)
1429 (uri (string-append
1430 "https://pypi.python.org/packages/source/g/graphios/graphios-"
1431 version ".tar.gz"))
1432 (sha256
1433 (base32
1434 "1h87hvc315wg6lklbf4l7csd3n5pgljwrfli1p3nasdi0izgn66i"))))
1435 (build-system python-build-system)
1436 (arguments
1437 ;; Be warned: Building with Python 3 succeeds, but the build process
1438 ;; throws a syntax error that is ignored.
1439 `(#:python ,python-2
1440 #:phases
1441 (modify-phases %standard-phases
1442 (add-before 'build 'fix-setup.py
1443 (lambda* (#:key outputs #:allow-other-keys)
1444 ;; Fix hardcoded, unprefixed file names.
1445 (let ((out (assoc-ref outputs "out")))
1446 (substitute* '("setup.py")
1447 (("/etc") (string-append out "/etc"))
1448 (("/usr") out)
1449 (("distro_ver = .*") "distro_ver = ''"))
1450 #t))))))
1451 (home-page "https://github.com/shawn-sterling/graphios")
1452 (synopsis "Emit Nagios metrics to Graphite, Statsd, and Librato")
1453 (description
1454 "Graphios is a script to emit nagios perfdata to various upstream metrics
1455processing and time-series systems. It's currently compatible with Graphite,
1456Statsd, Librato and InfluxDB. Graphios can emit Nagios metrics to any number
1457of supported upstream metrics systems simultaneously.")
1458 (license license:gpl2+)))
1459
1460(define-public ansible
1461 (package
1462 (name "ansible")
1463 (version "2.4.2.0")
1464 (source
1465 (origin
1466 (method url-fetch)
1467 (uri (pypi-uri "ansible" version))
1468 (sha256
1469 (base32
1470 "0n3n9py4s3aykiii31xq8g4wmd6693jvby0424pjrg0bna01apri"))
1471 (patches (search-patches "ansible-wrap-program-hack.patch"))))
1472 (build-system python-build-system)
1473 (native-inputs
1474 `(("python2-pycrypto" ,python2-pycrypto)
1475 ("python2-httplib2" ,python2-httplib2)
1476 ("python2-passlib" ,python2-passlib)
1477 ("python2-nose" ,python2-nose)
1478 ("python2-mock" ,python2-mock)
1479 ("python2-jinja2" ,python2-jinja2)
1480 ("python2-pyyaml" ,python2-pyyaml)
1481 ("python2-paramiko" ,python2-paramiko)))
1482 (inputs
1483 `(("python2-pycrypto" ,python2-pycrypto)
1484 ("python2-jinja2" ,python2-jinja2)
1485 ("python2-pyyaml" ,python2-pyyaml)
1486 ("python2-paramiko" ,python2-paramiko)))
1487 (arguments
1488 `(#:python ,python-2)) ; incompatible with Python 3
1489 (home-page "https://www.ansible.com/")
1490 (synopsis "Radically simple IT automation")
1491 (description "Ansible is a radically simple IT automation system. It
1492handles configuration management, application deployment, cloud provisioning,
1493ad hoc task execution, and multinode orchestration---including trivializing
1494things like zero-downtime rolling updates with load balancers.")
1495 (license license:gpl3+)))
1496
1497(define-public cpulimit
1498 (package
1499 (name "cpulimit")
1500 (version "0.2")
1501 (source
1502 (origin
1503 (method url-fetch)
1504 (uri (string-append "https://github.com/opsengine/cpulimit/archive/v"
1505 version ".tar.gz"))
1506 (file-name (string-append name "-" version ".tar.gz"))
1507 (sha256
1508 (base32
1509 "1nn2w849xd5bw4y5sqnll29nxdwl5h0cv4smc7dwmpb9qnd2ycb4"))))
1510 (build-system gnu-build-system)
1511 (arguments
1512 `(#:phases (modify-phases %standard-phases
1513 (delete 'configure)
1514 (replace
1515 'build
1516 (lambda _
1517 (zero? (system* "make" "CC=gcc" "-Csrc"))))
1518 (replace
1519 'check
1520 (lambda _
1521 (zero? (system* "make" "CC=gcc" "-Ctests"))))
1522 (replace
1523 'install
1524 (lambda* (#:key outputs #:allow-other-keys)
1525 (let* ((out (assoc-ref outputs "out"))
1526 (bin (string-append out "/bin")))
1527 (install-file "src/cpulimit" bin)))))))
1528 (home-page "https://github.com/opsengine/cpulimit")
1529 (synopsis "Limit CPU usage")
1530 (description
1531 "Cpulimit limits the CPU usage of a process. It does not change the nice
1532value or other scheduling priority settings, but the real CPU usage, and is
1533able to adapt itself dynamically to the overall system load. Children
1534processes and threads of the specified process may optionally share the same
1535limits.")
1536 (license license:gpl2+)))
1537
1538(define-public autojump
1539 (package
1540 (name "autojump")
1541 (version "22.3.4")
1542 (source
1543 (origin
1544 (method url-fetch)
1545 (uri (string-append "https://github.com/wting/autojump/archive/"
1546 "release-v" version ".tar.gz"))
1547 (file-name (string-append name "-" version ".tar.gz"))
1548 (sha256
1549 (base32
1550 "113rcpr37ngf2xs8da41qdarq5qmj0dwx8ggqy3lhlb0kvqq7g9z"))))
1551 (build-system gnu-build-system)
1552 (native-inputs ;for tests
1553 `(("python-mock" ,python-mock)
1554 ("python-pytest" ,python-pytest)))
1555 (inputs
1556 `(("python" ,python-wrapper)))
1557 (arguments
1558 `(#:phases (modify-phases %standard-phases
1559 (delete 'configure)
1560 (delete 'build)
1561 (replace 'check
1562 (lambda _
1563 (zero?
1564 (system* "python" "tests/unit/autojump_utils_test.py"))))
1565 (replace 'install
1566 ;; The install.py script doesn't allow system installation
1567 ;; into an arbitrary prefix, so do our own install.
1568 (lambda* (#:key outputs #:allow-other-keys)
1569 (let* ((out (assoc-ref outputs "out"))
1570 (bin (string-append out "/bin"))
1571 (share (string-append out "/share/autojump"))
1572 (py (string-append out "/lib/python"
1573 ,(version-major+minor
1574 (package-version python-wrapper))
1575 "/site-packages"))
1576 (man (string-append out "/share/man/man1")))
1577 (install-file "bin/autojump" bin)
1578 (for-each (λ (f) (install-file f py))
1579 (find-files "bin" "\\.py$"))
1580 (for-each (λ (f) (install-file f share))
1581 (find-files "bin" "autojump\\..*$"))
1582 (substitute* (string-append share "/autojump.sh")
1583 (("/usr/local") out))
1584 (install-file "docs/autojump.1" man)
1585 (wrap-program (string-append bin "/autojump")
1586 `("PYTHONPATH" ":" prefix (,py)))
1587 #t))))))
1588 (home-page "https://github.com/wting/autojump")
1589 (synopsis "Shell extension for file system navigation")
1590 (description
1591 "Autojump provides a faster way to navigate your file system, with a \"cd
1592command that learns\". It works by maintaining a database of the directories
1593you use the most from the command line and allows you to \"jump\" to
1594frequently used directories by typing only a small pattern.")
1595 (license license:gpl3+)))
1596
1597(define-public iftop
1598 (package
1599 (name "iftop")
1600 (version "1.0pre4")
1601 (source (origin
1602 (method url-fetch)
1603 (uri (string-append "http://www.ex-parrot.com/~pdw/iftop/download"
1604 "/iftop-" version ".tar.gz"))
1605 (sha256
1606 (base32
1607 "15sgkdyijb7vbxpxjavh5qm5nvyii3fqcg9mzvw7fx8s6zmfwczp"))))
1608 (build-system gnu-build-system)
1609 (inputs
1610 `(("libpcap" ,libpcap)
1611 ("ncurses" ,ncurses)))
1612 (synopsis "Monitor network usage")
1613 (description "Iftop does for network usage what @command{top} does
1614for CPU usage. It listens to network traffic on a named interface and
1615displays a table of current bandwidth usage by pairs of hosts.")
1616 (home-page "http://www.ex-parrot.com/~pdw/iftop/")
1617 (license license:gpl2+)))
1618
1619(define-public munge
1620 (package
1621 (name "munge")
1622 (version "0.5.13")
1623 (source (origin
1624 (method url-fetch)
1625 (uri (string-append "https://github.com/dun/munge/releases/"
1626 "download/munge-" version "/munge-"
1627 version ".tar.xz"))
1628 (sha256
1629 (base32
1630 "1nj486bbg1adfg298zck96vgx57kchcypc1zdz1n7w540vyksxcr"))))
1631 (inputs
1632 `(("openssl" ,openssl)
1633 ("libgcrypt" ,libgcrypt)))
1634 (build-system gnu-build-system)
1635 (home-page "https://dun.github.io/munge/")
1636 (synopsis "Cluster computing authentication service")
1637 (description
1638 "Munge is an authentication service for creating and validating
1639credentials. It allows a process to authenticate the UID and GID of another
1640local or remote process within a group of hosts having common users and
1641groups. These hosts form a security realm that is defined by a shared
1642cryptographic key. Clients within this security realm can create and validate
1643credentials without the use of root privileges, reserved ports, or
1644platform-specific methods.")
1645 (license license:gpl3+)))
1646
1647(define-public audit
1648 (package
1649 (name "audit")
1650 (version "2.4.5")
1651 (source (origin
1652 (method url-fetch)
1653 (uri (string-append "http://people.redhat.com/sgrubb/audit/"
1654 "audit-" version ".tar.gz"))
1655 (sha256
1656 (base32
1657 "1q1q51dvxscbi4kbakmd4bn0xrvwwaiwvaya79925cbrqwzxsg77"))))
1658 (build-system gnu-build-system)
1659 (home-page "http://people.redhat.com/sgrubb/audit/")
1660 (arguments
1661 `(#:configure-flags (list "--with-python=no")
1662 #:phases
1663 (modify-phases %standard-phases
1664 (add-after 'unpack 'fix-tests
1665 (lambda _
1666 ;; In the build environmnte /etc/passwd does not contain an entry
1667 ;; for root/0, so we have to patch the expected value.
1668 (substitute* "auparse/test/auparse_test.ref"
1669 (("=0 \\(root\\)") "=0 (unknown(0))"))
1670 #t)))))
1671 (inputs
1672 `(("openldap" ,openldap)
1673 ("gnutls" ,gnutls)
1674 ("sasl" ,cyrus-sasl)))
1675 (synopsis "User-space component to the Linux auditing system")
1676 (description
1677 "auditd is the user-space component to the Linux auditing system, which
1678allows logging of system calls made by user-land processes. It's responsible
1679for writing audit records to the disk. Viewing the logs is done with the
1680@code{ausearch} or @code{aureport} utilities. Configuring the audit rules is
1681done with the @code{auditctl} utility.")
1682 (license license:gpl2+)))
1683
1684(define-public nmap
1685 (package
1686 (name "nmap")
1687 (version "7.60")
1688 (source (origin
1689 (method url-fetch)
1690 (uri (string-append "https://nmap.org/dist/nmap-" version
1691 ".tar.bz2"))
1692 (sha256
1693 (base32
1694 "08bga42ipymmbxd7wy4x5sl26c0ir1fm3n9rc6nqmhx69z66wyd8"))
1695 (modules '((guix build utils)))
1696 (snippet
1697 '(map delete-file-recursively
1698 ;; Remove bundled lua, pcap, and pcre libraries.
1699 ;; FIXME: Remove bundled liblinear once packaged.
1700 '("liblua"
1701 "libpcap"
1702 "libpcre"
1703 ;; Remove pre-compiled binares.
1704 "mswin32")))))
1705 (build-system gnu-build-system)
1706 (inputs
1707 `(("openssl" ,openssl)
1708 ("libpcap" ,libpcap)
1709 ("pcre" ,pcre)
1710 ("lua" ,lua)
1711 ;; For 'ndiff'.
1712 ("python" ,python-2)))
1713
1714 ;; TODO Add zenmap output.
1715 (outputs '("out" "ndiff"))
1716 (arguments
1717 '(#:configure-flags '("--without-zenmap")
1718 #:phases
1719 (modify-phases %standard-phases
1720 (add-after 'configure 'patch-Makefile
1721 (lambda _
1722 (substitute* "Makefile"
1723 ;; Do not attempt to build lua.
1724 (("build-dnet build-lua") "build-dnet"))
1725 #t))
1726 (replace 'install
1727 (lambda* (#:key outputs #:allow-other-keys)
1728 (define (make out . args)
1729 (unless (zero? (apply system* "make"
1730 (string-append "prefix=" out)
1731 args))
1732 (error "make failed")))
1733 (define (python-path dir)
1734 (string-append dir "/lib/python2.7/site-packages"))
1735 (let ((out (assoc-ref outputs "out"))
1736 (ndiff (assoc-ref outputs "ndiff")))
1737 (for-each mkdir-p (list out ndiff))
1738 (make out
1739 "install-nmap"
1740 "install-nse"
1741 "install-ncat"
1742 "install-nping")
1743 (make ndiff "install-ndiff")
1744 (wrap-program (string-append ndiff "/bin/ndiff")
1745 `("PYTHONPATH" prefix
1746 (,(python-path ndiff)))))))
1747 ;; These are the tests that do not require network access.
1748 (replace 'check
1749 (lambda _ (zero? (system* "make"
1750 "check-nse"
1751 "check-ndiff"
1752 "check-dns")))))
1753 ;; Nmap can't cope with out-of-source building.
1754 #:out-of-source? #f))
1755 (home-page "https://nmap.org/")
1756 (synopsis "Network discovery and security auditing tool")
1757 (description
1758 "Nmap (\"Network Mapper\") is a network discovery and security auditing
1759tool. It is also useful for tasks such as network inventory, managing service
1760upgrade schedules, and monitoring host or service uptime. It also provides an
1761advanced netcat implementation (ncat), a utility for comparing scan
1762results (ndiff), and a packet generation and response analysis tool (nping).")
1763 ;; This package uses nmap's bundled versions of libdnet and liblinear, which
1764 ;; both use a 3-clause BSD license.
1765 (license (list license:nmap license:bsd-3))))
1766
1767(define-public dstat
1768 (package
1769 (name "dstat")
1770 (version "0.7.3")
1771 (source (origin
1772 (method url-fetch)
1773 (uri (string-append
1774 "https://github.com/dagwieers/dstat/archive/"
1775 version ".tar.gz"))
1776 (file-name (string-append "dstat-" version ".tar.gz"))
1777 (sha256
1778 (base32
1779 "16286z3y2lc9nsq8njzjkv6k2vyxrj9xiixj1k3gnsbvhlhkirj6"))))
1780 (build-system gnu-build-system)
1781 (arguments
1782 `(#:tests? #f ;; no make check
1783 #:make-flags (let ((out (assoc-ref %outputs "out")))
1784 (list (string-append "DESTDIR=" out)
1785 "prefix=/"))
1786 ;; no configure script
1787 #:phases (modify-phases %standard-phases (delete 'configure))))
1788 (inputs `(("python-2" ,python-2)))
1789 (synopsis "Versatile resource statistics tool")
1790 (description "Dstat is a versatile replacement for @command{vmstat},
1791@command{iostat}, @command{netstat}, and @command{ifstat}. Dstat overcomes
1792some of their limitations and adds some extra features, more counters and
1793flexibility. Dstat is handy for monitoring systems during performance tuning
1794tests, benchmarks or troubleshooting.
1795
1796Dstat allows you to view all of your system resources in real-time, you can,
1797e.g., compare disk utilization in combination with interrupts from your IDE
1798controller, or compare the network bandwidth numbers directly with the disk
1799throughput (in the same interval).")
1800 (home-page "http://dag.wiee.rs/home-made/dstat/")
1801 (license license:gpl2+)))
1802
1803(define-public thefuck
1804 (package
1805 (name "thefuck")
1806 (version "3.19")
1807 (source (origin
1808 (method url-fetch)
1809 (uri (string-append "https://github.com/nvbn/thefuck/archive/"
1810 version ".tar.gz"))
1811 (file-name (string-append name "-" version ".tar.gz"))
1812 (sha256
1813 (base32
1814 "191zbvkyc02h0wwd46xwj4zzg7jhlr8xv0ji6knqkgjnk0nvqq01"))
1815 (patches (search-patches "thefuck-test-environ.patch"))))
1816 (build-system python-build-system)
1817 (arguments
1818 '(#:phases
1819 (modify-phases %standard-phases
1820 (delete 'check)
1821 (add-after 'install 'check
1822 (lambda* (#:key inputs outputs #:allow-other-keys)
1823 ;; Tests look for installed package
1824 (add-installed-pythonpath inputs outputs)
1825 ;; Some tests need write access to $HOME.
1826 (setenv "HOME" "/tmp")
1827 (zero? (system* "py.test" "-v")))))))
1828 (propagated-inputs
1829 `(("python-colorama" ,python-colorama)
1830 ("python-decorator" ,python-decorator)
1831 ("python-psutil" ,python-psutil)
1832 ("python-six" ,python-six)))
1833 (native-inputs
1834 `(("python-mock" ,python-mock)
1835 ("python-pytest" ,python-pytest)
1836 ("python-pytest-mock" ,python-pytest-mock)
1837 ;; Requires setuptools >= 17.1 due to some features used, while our
1838 ;; python currently only includes 12.0. TODO: Remove this input.
1839 ("python-setuptools" ,python-setuptools)))
1840 (home-page "https://github.com/nvbn/thefuck")
1841 (synopsis "Correct mistyped console command")
1842 (description
1843 "The Fuck tries to match a rule for a previous, mistyped command, creates
1844a new command using the matched rule, and runs it.")
1845 (license license:x11)))
1846
1847(define-public di
1848 (package
1849 (name "di")
1850 (version "4.44")
1851 (source
1852 (origin
1853 (method url-fetch)
1854 (uri (string-append "https://gentoo.com/di/di-" version ".tar.gz"))
1855 (sha256
1856 (base32 "0803lp8kd3mp1jcm17i019xiqxdy85hhs6xk67zib8gmvg500gcn"))))
1857 (build-system gnu-build-system)
1858 (arguments
1859 `(#:tests? #f ; Obscure test failures.
1860 #:phases
1861 (modify-phases %standard-phases
1862 (delete 'configure)
1863 (add-before 'build 'setup-environment
1864 (lambda* (#:key outputs #:allow-other-keys)
1865 (setenv "CC" "gcc")
1866 (setenv "prefix" (assoc-ref outputs "out"))
1867 #t)))
1868 #:make-flags (list "--environment-overrides")))
1869 (home-page "https://www.gentoo.com/di/")
1870 (synopsis "Advanced df like disk information utility")
1871 (description
1872 "'di' is a disk information utility, displaying everything that your
1873@code{df} command does and more. It features the ability to display your disk
1874usage in whatever format you prefer. It is designed to be highly portable and
1875produce uniform output across heterogeneous networks.")
1876 (license license:zlib)))
1877
1878(define-public cbatticon
1879 (package
1880 (name "cbatticon")
1881 (version "1.6.7")
1882 (source (origin
1883 (method url-fetch)
1884 (uri (string-append "https://github.com/valr/"
1885 name "/archive/" version ".tar.gz"))
1886 (sha256
1887 (base32
1888 "1s2n49ydh7pznnf02fak4yy0wqkgi9ag7yiw1zg1lhp4m0h37hyh"))
1889 (file-name (string-append name "-" version ".tar.gz"))))
1890 (build-system gnu-build-system)
1891 (arguments
1892 `(#:tests? #f ; no tests
1893 #:make-flags
1894 (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
1895 "CC=gcc")
1896 #:phases
1897 (modify-phases %standard-phases
1898 (delete 'configure)))) ; no configure script
1899 (inputs
1900 `(("gtk+" ,gtk+)
1901 ("gettext" ,gettext-minimal)
1902 ("libnotify" ,libnotify)))
1903 (native-inputs
1904 `(("pkg-config" ,pkg-config)))
1905 (synopsis "Lightweight battery icon for the system tray")
1906 (description "cbatticon is a lightweight battery icon that displays
1907the status of your battery in the system tray.")
1908 (home-page "https://github.com/valr/cbatticon")
1909 (license license:gpl2+)))
1910
1911(define-public interrobang
1912 (let ((revision "1")
1913 (commit "896543735e1c99144765fdbd7b6e6b5afbd8b881"))
1914 (package
1915 (name "interrobang")
1916 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
1917 (source (origin
1918 (method git-fetch)
1919 (uri (git-reference
1920 (url "https://github.com/TrilbyWhite/interrobang")
1921 (commit commit)))
1922 (file-name (string-append name "-" version))
1923 (sha256
1924 (base32
1925 "1n13m70p1hfba5dy3i8hfclbr6k9q3d9dai3dg4jvhdhmxcpjzdf"))))
1926 (build-system gnu-build-system)
1927 (arguments
1928 `(#:tests? #f ; no tests
1929 #:phases
1930 (modify-phases %standard-phases
1931 (delete 'configure)) ; no configure script
1932 #:make-flags (list (string-append "PREFIX="
1933 (assoc-ref %outputs "out")))))
1934 (inputs
1935 `(("libx11" ,libx11)))
1936 (native-inputs
1937 `(("pkg-config" ,pkg-config)))
1938 (synopsis "Scriptable launcher menu")
1939 (description "Interrobang is a scriptable launcher menu with a customizable
1940shortcut syntax and completion options.")
1941 (home-page "https://github.com/TrilbyWhite/interrobang")
1942 (license license:gpl3+))))
1943
1944
1945
1946(define-public pam-krb5
1947 (package
1948 (name "pam-krb5")
1949 (version "4.7")
1950 (source (origin
1951 (method url-fetch)
1952 (uri (string-append
1953 "https://archives.eyrie.org/software/kerberos/" name "-"
1954 version ".tar.xz"))
1955 (sha256
1956 (base32
1957 "0abf8cfpkprmhw5ca8iyqgrggh65lgqvmfllc1y6qz7zw1gas894"))))
1958 (build-system gnu-build-system)
1959 (arguments
1960 `(#:phases
1961 (modify-phases %standard-phases
1962 (add-before 'configure 'disable-tests
1963 (lambda _
1964 ;; The build container seems to interfere with some tests.
1965 (substitute* "tests/TESTS"
1966 (("module/basic\n") ""))
1967 (substitute* "tests/TESTS"
1968 (("pam-util/vector\n") ""))
1969 #t)))))
1970 (inputs
1971 `(("linux-pam" ,linux-pam)
1972 ("mit-krb5" ,mit-krb5)))
1973 (native-inputs
1974 `(("perl" ,perl)
1975 ("perl-test-pod" ,perl-test-pod))) ; required for tests
1976 (synopsis "Kerberos PAM module")
1977 (description
1978 "Pam-krb5 is a Kerberos PAM module for either MIT Kerberos or Heimdal.
1979It supports ticket refreshing by screen savers, configurable
1980authorization handling, authentication of non-local accounts for network
1981services, password changing, and password expiration, as well as all the
1982standard expected PAM features. It works correctly with OpenSSH, even
1983with ChallengeResponseAuthentication and PrivilegeSeparation enabled,
1984and supports extensive configuration either by PAM options or in
1985krb5.conf or both. PKINIT is supported with recent versions of both MIT
1986Kerberos and Heimdal and FAST is supported with recent MIT Kerberos.")
1987 (home-page "http://www.eyrie.org/~eagle/software/pam-krb5")
1988 ;; Dual licenced under a homebrew non-copyleft OR GPL (any version)
1989 ;; However, the tarball does not contain a copy of the GPL, so unless
1990 ;; we put one in, we cannot distribute it under GPL without violating
1991 ;; clause requiring us to give all recipients a copy.
1992 (license license:gpl1+)))
1993
1994;;http://archives.eyrie.org/software/kerberos/pam-krb5-4.7.tar.xz
1995
1996(define-public sunxi-tools
1997 (package
1998 (name "sunxi-tools")
1999 (version "1.4.2")
2000 (source
2001 (origin
2002 (method url-fetch)
2003 (uri (string-append "https://github.com/linux-sunxi/"
2004 "sunxi-tools/archive/v" version ".tar.gz"))
2005 (sha256
2006 (base32 "08iqwj95qw2s7ilhrdi2lkbc8dx64zk5lzz1qk587jr0lla81x41"))
2007 (modules '((guix build utils)))
2008 (snippet
2009 ;; Remove binaries contained in the tarball which are only for the
2010 ;; target and can be regenerated anyway.
2011 '(delete-file-recursively "bin"))
2012 (file-name (string-append name "-" version ".tar.gz"))))
2013 (native-inputs
2014 `(("pkg-config" ,pkg-config)
2015 ("cross-gcc" ,(cross-gcc "arm-linux-gnueabihf"
2016 #:xbinutils (cross-binutils "arm-linux-gnueabihf")
2017 #:libc (cross-libc "arm-linux-gnueabihf")))
2018 ("cross-libc" ,(cross-libc "arm-linux-gnueabihf"))))
2019 (inputs
2020 `(("libusb" ,libusb)))
2021 (build-system gnu-build-system)
2022 (arguments
2023 `(#:tests? #f ; no tests exist
2024 #:make-flags (list (string-append "PREFIX="
2025 (assoc-ref %outputs "out"))
2026 (string-append "CROSS_COMPILE="
2027 "arm-linux-gnueabihf-")
2028 "CC=gcc")
2029 #:phases
2030 (modify-phases %standard-phases
2031 (delete 'configure)
2032 (add-before 'build 'set-environment-up
2033 (lambda* (#:key make-flags #:allow-other-keys)
2034 (define (cross? x)
2035 (string-contains x "cross-arm-linux"))
2036 (setenv "CROSS_C_INCLUDE_PATH" (getenv "C_INCLUDE_PATH"))
2037 (setenv "CROSS_CPLUS_INCLUDE_PATH" (getenv "CPLUS_INCLUDE_PATH"))
2038 (setenv "CROSS_LIBRARY_PATH" (getenv "LIBRARY_PATH"))
2039 (for-each
2040 (lambda (env-name)
2041 (let* ((env-value (getenv env-name))
2042 (search-path (search-path-as-string->list env-value))
2043 (new-search-path (filter (lambda (e) (not (cross? e)))
2044 search-path))
2045 (new-env-value (list->search-path-as-string
2046 new-search-path ":")))
2047 (setenv env-name new-env-value)))
2048 '("C_INCLUDE_PATH" "CPLUS_INCLUDE_PATH" "LIBRARY_PATH"))
2049 #t))
2050 (replace 'build
2051 (lambda* (#:key make-flags #:allow-other-keys)
2052 (zero? (apply system* "make" "tools" "misc" make-flags))))
2053 (add-after 'build 'build-armhf
2054 (lambda* (#:key make-flags #:allow-other-keys)
2055 (zero? (apply system* "make" "target-tools" make-flags))))
2056 (replace 'install
2057 (lambda* (#:key make-flags #:allow-other-keys)
2058 (zero? (apply system* "make" "install-all" "install-misc"
2059 make-flags)))))))
2060 (home-page "https://github.com/linux-sunxi/sunxi-tools")
2061 (synopsis "Hardware management tools for Allwinner computers")
2062 (description "This package contains tools for Allwinner devices:
2063@enumerate
2064@item @command{sunxi-fexc}, @command{bin2fex}, @command{fex2bin}: Compile
2065a textual description of a board (.fex) to a binary representation (.bin).
2066@item @command{sunxi-fel}: Puts an Allwinner device into FEL mode which
2067makes it register as a special USB device (rather than USB host).
2068You can then connect it to another computer and flash it from there.
2069@item @command{sunxi-nand-part}: Partitions NAND flash.
2070@item @command{sunxi-bootinfo}: Reads out boot0 and boot1 (Allwinner
2071bootloader) parameters.
2072@item @command{sunxi-pio}: Sets GPIO parameters and oscillates a GPIO
2073in order to be able to find it.
2074@item @command{sunxi-meminfo}: Prints memory bus settings.
2075@item @command{sunxi-nand-image-builder}: Prepares raw NAND images.
2076@end enumerate")
2077 (license license:gpl2+)))
2078
2079(define-public sedsed
2080 (package
2081 (name "sedsed")
2082 (version "1.0")
2083 (source
2084 (origin
2085 (method url-fetch)
2086 (uri (string-append "https://github.com/aureliojargas/sedsed/"
2087 "archive/v" version ".tar.gz"))
2088 (file-name (string-append name "-" version ".tar.gz"))
2089 (sha256
2090 (base32
2091 "0139jkqvm8ipiwfj7k69ry2f9b1ffgpk79arpz4r7w9kf6h23bnh"))))
2092 (build-system python-build-system)
2093 (arguments
2094 `(#:tests? #f ; No tests.
2095 #:python ,python-2
2096 #:phases
2097 (modify-phases %standard-phases
2098 (add-after 'unpack 'patch-sed-in
2099 (lambda _
2100 (substitute* "sedsed.py"
2101 (("sedbin = 'sed'")
2102 (string-append "sedbin = '" (which "sed") "'")))
2103 #t))
2104 (delete 'build)
2105 (replace 'install
2106 (lambda* (#:key outputs #:allow-other-keys)
2107 (let* ((out (assoc-ref outputs "out"))
2108 (bin (string-append out "/bin")))
2109 ;; Just one file to copy around
2110 (install-file "sedsed.py" bin)
2111 #t)))
2112 (add-after 'install 'symlink
2113 ;; Create 'sedsed' symlink to "sedsed.py".
2114 (lambda* (#:key outputs #:allow-other-keys)
2115 (let* ((out (assoc-ref outputs "out"))
2116 (bin (string-append out "/bin"))
2117 (sed (string-append bin "/sedsed"))
2118 (sedpy (string-append bin "/sedsed.py")))
2119 (symlink sedpy sed)
2120 #t))))))
2121 (home-page "http://aurelio.net/projects/sedsed")
2122 (synopsis "Sed sed scripts")
2123 (description
2124 "@code{sedsed} can debug, indent, tokenize and HTMLize your sed(1) script.
2125
2126In debug mode it reads your script and add extra commands to it. When
2127executed you can see the data flow between the commands, revealing all the
2128magic sed does on its internal buffers.
2129
2130In indent mode your script is reformatted with standard spacing.
2131
2132In tokenize mode you can see the elements of every command you use.
2133
2134In HTMLize mode your script is converted to a beautiful colored HTML file,
2135with all the commands and parameters identified for your viewing pleasure.
2136
2137With sedsed you can master any sed script. No more secrets, no more hidden
2138buffers.")
2139 (license license:expat)))
2140
2141(define-public intel-gpu-tools
2142 (package
2143 (name "intel-gpu-tools")
2144 (version "1.21")
2145 (source (origin
2146 (method url-fetch)
2147 (uri (string-append "https://cgit.freedesktop.org/xorg/app/"
2148 "intel-gpu-tools/snapshot/"
2149 "intel-gpu-tools-" version ".tar.gz"))
2150 (sha256
2151 (base32
2152 "1xfy4cgimyyn5qixlrfkadgnl9qwbk30vw8k80g8vjnrcc4hx986"))))
2153 (build-system gnu-build-system)
2154 (arguments
2155 `(#:tests? #f ; many of the tests try to load kernel modules
2156 #:phases
2157 (modify-phases %standard-phases
2158 (add-after 'unpack 'autogen
2159 (lambda _
2160 ;; Don't run configure in this phase.
2161 (setenv "NOCONFIGURE" "1")
2162 (invoke "sh" "autogen.sh"))))))
2163 (inputs
2164 `(("util-macros" ,util-macros)
2165 ("libdrm" ,libdrm)
2166 ("libpciaccess" ,libpciaccess)
2167 ("kmod" ,kmod)
2168 ("procps" ,procps)
2169 ("cairo" ,cairo)
2170 ("libunwind" ,libunwind)
2171 ("libxrandr" ,libxrandr)
2172 ("glib" ,glib)))
2173 (native-inputs
2174 `(("autoconf" ,autoconf)
2175 ("automake" ,automake)
2176 ("libtool" ,libtool)
2177 ("pkg-config" ,pkg-config)))
2178 (home-page "https://cgit.freedesktop.org/xorg/app/intel-gpu-tools/")
2179 (synopsis "Tools for development and testing of the Intel DRM driver")
2180 (description "Intel GPU Tools is a collection of tools for development and
2181testing of the Intel DRM driver. There are many macro-level test suites that
2182get used against the driver, including xtest, rendercheck, piglit, and
2183oglconform, but failures from those can be difficult to track down to kernel
2184changes, and many require complicated build procedures or specific testing
2185environments to get useful results. Therefore, Intel GPU Tools includes
2186low-level tools and tests specifically for development and testing of the
2187Intel DRM Driver.")
2188 (license license:expat)))
2189
2190(define-public fabric
2191 (package
2192 (name "fabric")
2193 (version "1.13.2")
2194 (source
2195 (origin
2196 (method url-fetch)
2197 (uri (pypi-uri "Fabric" version))
2198 (sha256
2199 (base32
2200 "0k944dxr41whw7ib6380q9x15wyskx7fqni656icdn8rzshn9bwq"))))
2201 (build-system python-build-system)
2202 (arguments
2203 `(#:python ,python-2)) ; Python 2 only
2204 (native-inputs
2205 `(("python2-fudge" ,python2-fudge)
2206 ("python2-jinja2" ,python2-jinja2)
2207 ("python2-nose" ,python2-nose)))
2208 (propagated-inputs
2209 `(("python2-paramiko" ,python2-paramiko)))
2210 (home-page "http://fabfile.org")
2211 (synopsis "Simple Pythonic remote execution and deployment tool")
2212 (description
2213 "Fabric is designed to upload files and run shell commands on a number of
2214servers in parallel or serially. These commands are grouped in tasks (which
2215are regular Python functions) and specified in a @dfn{fabfile}.
2216
2217It is similar to Capistrano, except it's implemented in Python and doesn't
2218expect you to be deploying Rails applications. Fabric is a simple, Pythonic
2219tool for remote execution and deployment.")
2220 (license license:bsd-2)))
2221
2222(define-public neofetch
2223 (package
2224 (name "neofetch")
2225 (version "3.3.0")
2226 (source (origin
2227 (method url-fetch)
2228 (uri (string-append "https://github.com/dylanaraps/neofetch/"
2229 "archive/" version ".tar.gz"))
2230 (file-name (string-append name "-" version ".tar.gz"))
2231 (sha256
2232 (base32
2233 "15p69q0jchfms1fpb4i7kq8b28w2xpgh2zmynln618qxv1myf228"))))
2234 (build-system gnu-build-system)
2235 (arguments
2236 `(#:tests? #f ; there are no tests
2237 #:make-flags
2238 (list (string-append "PREFIX=" %output))
2239 #:phases
2240 (modify-phases %standard-phases
2241 (add-after 'unpack 'patch-target-directories
2242 (lambda* (#:key outputs #:allow-other-keys)
2243 (let ((out (assoc-ref outputs "out")))
2244 (substitute* "Makefile"
2245 (("\\$\\(DESTDIR\\)/etc/")
2246 "$(PREFIX)/etc/"))
2247 (substitute* "neofetch"
2248 (("\"/etc/neofetch")
2249 (string-append "\"" out "/etc/neofetch"))
2250 (("\"/usr/share/neofetch")
2251 (string-append "\"" out "/share/neofetch"))))
2252 #t))
2253 (delete 'configure) ; no configure script
2254 (replace 'install
2255 (lambda* (#:key make-flags outputs #:allow-other-keys)
2256 (let* ((out (assoc-ref outputs "out"))
2257 (doc (string-append out "/share/doc/" ,name "-" ,version))
2258 (etc (string-append doc "/examples/etc")))
2259 (zero? (apply system* `("make" ,@make-flags
2260 ,(string-append "SYSCONFDIR=" etc)
2261 "install")))))))))
2262 (home-page "https://github.com/dylanaraps/neofetch")
2263 (synopsis "System info script")
2264 (description "Neofetch is a CLI system information tool written in Bash.
2265Neofetch displays information about your system next to an image, your OS
2266logo, or any ASCII file of your choice. The main purpose of Neofetch is to be
2267used in screenshots to show other users what operating system or distribution
2268you are running, what theme or icon set you are using, etc.")
2269 (license license:expat)))
2270
2271(define-public nnn
2272 (package
2273 (name "nnn")
2274 (version "1.5")
2275 (source (origin
2276 (method url-fetch)
2277 (uri (string-append "https://github.com/jarun/nnn/"
2278 "archive/v" version ".tar.gz"))
2279 (file-name (string-append name "-" version ".tar.gz"))
2280 (sha256
2281 (base32
2282 "0zswf8lb29zr1z642i1d0zi1y2mxal8qjqdrpdiqjh197jamj3zm"))))
2283 (build-system gnu-build-system)
2284 (inputs `(("ncurses" ,ncurses)
2285 ("readline" ,readline)))
2286 (arguments
2287 '(#:tests? #f ; no tests
2288 #:phases
2289 ;; We do not provide `ncurses.h' within an `ncursesw'
2290 ;; sub-directory, so patch the source accordingly. See
2291 ;; <http://bugs.gnu.org/19018>.
2292 ;; Thanks to gtypist maintainer.
2293 (modify-phases %standard-phases
2294 (add-after 'unpack 'patch-curses-lib
2295 (lambda* (#:key outputs #:allow-other-keys)
2296 (let ((out (assoc-ref outputs "out")))
2297 (substitute* "Makefile"
2298 (("-lncursesw")
2299 "-lncurses"))
2300 (substitute* "nnn.c"
2301 (("ncursesw\\/curses.h")
2302 "ncurses.h")))
2303 #t))
2304 (delete 'configure))
2305 #:make-flags
2306 (list
2307 (string-append "PREFIX="
2308 (assoc-ref %outputs "out"))
2309 (string-append "-Wl,-rpath="
2310 %output "/lib")
2311 "CC=gcc")))
2312 (home-page "https://github.com/jarun/nnn")
2313 (synopsis "Terminal file browser")
2314 (description "@command{nnn} is a fork of @command{noice}, a blazing-fast
2315lightweight terminal file browser with easy keyboard shortcuts for
2316navigation, opening files and running tasks. There is no config file and
2317mime associations are hard-coded. The incredible user-friendliness and speed
2318make it a perfect utility on modern distros.")
2319 (license license:bsd-2)))
2320
2321(define-public thermald
2322 (package
2323 (name "thermald")
2324 (version "1.6")
2325 (source
2326 (origin
2327 (method url-fetch)
2328 (uri (string-append "https://github.com/01org/thermal_daemon/archive/v"
2329 version ".tar.gz"))
2330 (file-name (string-append name "-" version ".tar.gz"))
2331 (sha256 (base32
2332 "14klz9fnvi9jdlaqwrp61xa5nh051n8ykrs1fh1wxd7j66qf2fn6"))))
2333 (build-system gnu-build-system)
2334 (arguments
2335 `(#:phases (modify-phases %standard-phases
2336 (add-after
2337 'unpack 'autogen.sh-and-fix-paths
2338 (lambda* (#:key outputs #:allow-other-keys)
2339 (let ((out (assoc-ref outputs "out")))
2340 ;; upstartconfir is hardcoded to /etc/init and the build
2341 ;; system tries to mkdir that. We don't even need upstart
2342 ;; files at all; this is a fast and kludgy workaround
2343 (substitute* "data/Makefile.am"
2344 (("upstartconfdir = /etc/init")
2345 (string-append "upstartconfdir = "
2346 out "/etc/init")))
2347 ;; Now run autogen
2348 (zero? (system* "sh" "autogen.sh"))))))
2349 #:configure-flags
2350 (let ((out (assoc-ref %outputs "out")))
2351 (list (string-append "--sysconfdir="
2352 out "/etc")
2353 (string-append "--with-udev-dir="
2354 out "/lib/udev")
2355 (string-append "--with-dbus-sys-dir="
2356 out "/etc/dbus-1/system.d")
2357 "--localstatedir=/var"))))
2358 (native-inputs
2359 `(("autoconf" ,autoconf)
2360 ("automake" ,automake)
2361 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2362 ("pkg-config" ,pkg-config)))
2363 (inputs
2364 `(("dbus-glib" ,dbus-glib)
2365 ("libxml2" ,libxml2)))
2366 (home-page "https://01.org/linux-thermal-daemon/")
2367 (synopsis "CPU scaling for thermal management")
2368 (description "The Linux Thermal Daemon helps monitor and control temperature
2369on systems running the Linux kernel.")
2370 ;; arm and aarch64 don't have cpuid.h
2371 (supported-systems '("i686-linux" "x86_64-linux"))
2372 (license license:gpl2+)))
2373
2374(define-public masscan
2375 (package
2376 (name "masscan")
2377 (version "1.0.4")
2378 (source (origin
2379 (method url-fetch)
2380 (uri (string-append "https://github.com/robertdavidgraham/masscan"
2381 "/archive/" version ".tar.gz"))
2382 (sha256
2383 (base32
2384 "1y9af345g00z83rliv6bmlqg37xwc7xpnx5xqdgmjikzcxgk9pji"))))
2385 (build-system gnu-build-system)
2386 (inputs
2387 `(("libpcap" ,libpcap)))
2388 (arguments
2389 '(#:test-target "regress"
2390 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
2391 #:phases
2392 (modify-phases %standard-phases
2393 (delete 'configure) ; There is no ./configure script
2394 (add-after 'unpack 'patch-path
2395 (lambda* (#:key outputs inputs #:allow-other-keys)
2396 (let* ((out (assoc-ref outputs "out"))
2397 (pcap (assoc-ref inputs "libpcap")))
2398 (substitute* "src/rawsock-pcap.c"
2399 (("libpcap.so") (string-append pcap "/lib/libpcap.so")))
2400 #t))))))
2401 (synopsis "TCP port scanner")
2402 (description "MASSCAN is an asynchronous TCP port scanner. It can detect
2403open ports, and also complete the TCP connection and interact with the remote
2404application, collecting the information received.")
2405 (home-page "https://github.com/robertdavidgraham/masscan")
2406 ;; 'src/siphash24.c' is the SipHash reference implementation, which
2407 ;; bears a CC0 Public Domain Dedication.
2408 (license license:agpl3+)))
2409
2410(define-public hungrycat
2411 (package
2412 (name "hungrycat")
2413 (version "0.4.1")
2414 (source (origin
2415 (method url-fetch)
2416 (uri (string-append "https://github.com/jwilk/hungrycat/"
2417 "releases/download/" version "/"
2418 name "-" version ".tar.gz"))
2419 (sha256
2420 (base32
2421 "03fc1zsrf99lvxa7b4ps6pbi43304wbxh1f6ci4q0vkal370yfwh"))))
2422 (build-system gnu-build-system)
2423 (native-inputs
2424 ;; For tests.
2425 `(("python" ,python-wrapper)
2426 ("python-nose" ,python-nose)))
2427 (arguments
2428 `(#:test-target "test"))
2429 (synopsis "A single tool that combines @command{cat} & @command{rm}")
2430 (description
2431 "hungrycat prints the contents of a file to standard output, while
2432simultaneously freeing the disk space it occupied. It is useful if you need
2433to process a large file, don't have enough space to store both the input and
2434output files, and don't need the input file afterwards.
2435While similar in principle to running @command{cat} immediately followed by
2436@command{rm}, @command{hungrycat} actually frees blocks as soon as they are
2437printed instead of after the entire file has been read, which is often too
2438late.")
2439 (home-page "https://jwilk.net/software/hungrycat")
2440 (license license:expat)))