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