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