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