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