gnu: certbot, python-acme: Update to 0.18.0.
[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 15;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net>
7fae2063 16;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr>
1b5b24c9
BS
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...
c8eb2b8c 170 ("guile" ,guile-2.2)))
425ab478
LC
171 (inputs
172 ;; ... and this is the one that appears in shebangs when cross-compiling.
c8eb2b8c 173 `(("guile" ,guile-2.2)))
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"
2472f7a8 502 (bind-release-version "3") ; 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
2472f7a8 618 "00yh1d5shrq7y0kfwacax4f8dc0akaa2fha430j92n7mshms65m1"))))
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")
e9f468df 664 (version "4.9.1")
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"))
514c2f48
LF
669 (patches (search-patches "tcpdump-CVE-2017-11541.patch"
670 "tcpdump-CVE-2017-11542.patch"
671 "tcpdump-CVE-2017-11543.patch"))
1da34f5a
LC
672 (sha256
673 (base32
e9f468df 674 "1wyqbg7bkmgqyslf1ns0xx9fcqi66hvcfm9nf77rl15jvvs8qi7r"))))
1da34f5a 675 (build-system gnu-build-system)
10db1e6c 676 (inputs `(("libpcap" ,libpcap)
cc2b77df 677 ("openssl" ,openssl)))
1da34f5a 678 (native-inputs `(("perl" ,perl))) ; for tests
1da34f5a
LC
679 (home-page "http://www.tcpdump.org/")
680 (synopsis "Network packet analyzer")
681 (description
682 "Tcpdump is a command-line tool to analyze network traffic passing
683through the network interface controller.")
f61e0e79 684 (license license:bsd-3)))
1da34f5a 685
02c86a5e
LC
686(define-public jnettop
687 (package
688 (name "jnettop")
689 (version "0.13.0")
690 (source (origin
691 (method url-fetch)
692 (uri (string-append "http://jnettop.kubs.info/dist/jnettop-"
693 version ".tar.gz"))
694 (sha256
695 (base32
696 "1855np7c4b0bqzhf1l1dyzxb90fpnvrirdisajhci5am6als31z9"))))
697 (build-system gnu-build-system)
698 (native-inputs
699 `(("pkg-config" ,pkg-config)))
700 (inputs
701 `(("glib" ,glib)
702 ("ncurses" ,ncurses)
703 ("libpcap" ,libpcap)))
704 (home-page "http://jnettop.kubs.info/")
705 (synopsis "Visualize network traffic by bandwidth use")
706 (description
707 "Jnettop is a traffic visualiser, which captures traffic going
708through the host it is running from and displays streams sorted
709by bandwidth they use.")
f61e0e79 710 (license license:gpl2+)))
87216303
EB
711
712(define-public clusterssh
713 (package
714 (name "clusterssh")
715 (version "3.28")
716 (source (origin
717 (method url-fetch)
718 (uri (string-append "mirror://sourceforge/clusterssh/"
de67e922
LF
719 "1.%20ClusterSSH%20Series%203/" version
720 "/clusterssh-" version ".tar.gz"))
87216303
EB
721 (sha256
722 (base32
723 "1bwggpvaj2al5blg1ynapviv2kpydffpzq2zkhi81najnvzc1rr7"))))
724 (build-system gnu-build-system)
725 (inputs `(("perl" ,perl)))
726 (propagated-inputs `(("xterm" ,xterm)
727 ("perl-tk" ,perl-tk)
728 ("perl-x11-protocol" ,perl-x11-protocol)))
729 (arguments
730 `(#:phases
731 (alist-cons-after
732 'install 'set-load-paths
733 (lambda* (#:key inputs outputs #:allow-other-keys)
734 ;; Put the perl-tk and perl-x11-protocol modules in the perl inc
735 ;; path for PROG
736 (let* ((out (assoc-ref outputs "out"))
737 (prog (string-append out "/bin/cssh"))
738 (perl-ver ,(package-version perl))
739 (x11-inc (string-append
740 (assoc-ref inputs "perl-x11-protocol")
741 "/lib/perl5/site_perl/" perl-ver))
742 (tk-inc (string-append
743 (assoc-ref inputs "perl-tk")
744 "/lib/perl5/site_perl/" perl-ver
745 "/x86_64-linux")))
746 (wrap-program
747 prog
748 `("PERL5LIB" ":" prefix (,x11-inc ,tk-inc)))))
749 %standard-phases)))
750 ;; The clusterssh.sourceforge.net address requires login to view
3b3b60d0 751 (home-page "https://sourceforge.net/projects/clusterssh/")
87216303
EB
752 (synopsis "Secure concurrent multi-server terminal control")
753 (description
754 "ClusterSSH controls a number of xterm windows via a single graphical
755console window to allow commands to be interactively run on multiple servers
756over ssh connections.")
f61e0e79 757 (license license:gpl2+)))
fccf2fe0
LC
758
759(define-public rottlog
760 (package
761 (name "rottlog")
762 (version "0.72.2")
763 (source (origin
764 (method url-fetch)
765 (uri (string-append "mirror://gnu/rottlog/rottlog-"
766 version ".tar.gz"))
767 (sha256
768 (base32
769 "0751mb9l2f0jrk3vj6q8ilanifd121dliwk0c34g8k0dlzsv3kd7"))
770 (modules '((guix build utils)))
771 (snippet
772 '(substitute* "Makefile.in"
773 (("-o \\$\\{LOG_OWN\\} -g \\$\\{LOG_GROUP\\}")
774 ;; Don't try to chown root.
775 "")
776 (("mkdir -p \\$\\(ROTT_STATDIR\\)")
777 ;; Don't attempt to create /var/lib/rottlog.
778 "true")))))
779 (build-system gnu-build-system)
780 (arguments
268ad34e 781 '(#:configure-flags (list "ROTT_ETCDIR=/etc/rottlog" ;rc file location
fccf2fe0 782 "--localstatedir=/var")
268ad34e
LC
783
784 ;; Install example config files in OUT/etc.
785 #:make-flags (list (string-append "ROTT_ETCDIR="
786 (assoc-ref %outputs "out")
787 "/etc"))
788
8dc0ecae 789 #:phases (modify-phases %standard-phases
11e74634
JN
790 (add-after 'build 'set-packdir
791 (lambda _
792 ;; Set a default location for archived logs.
793 (substitute* "rc/rc"
794 (("packdir=\"\"")
795 "packdir=\"/var/log\""))
796 #t))
309e523e
LC
797 (add-before 'install 'tweak-rc-weekly
798 (lambda _
799 (substitute* "rc/weekly"
800 (("/bin/kill")
801 (which "kill"))
802 (("syslogd\\.pid")
803 ;; The file is called 'syslog.pid' (no 'd').
804 "syslog.pid"))
805 #t))
8dc0ecae
LC
806 (add-after 'install 'install-info
807 (lambda _
808 (zero? (system* "make" "install-info")))))))
fccf2fe0
LC
809 (native-inputs `(("texinfo" ,texinfo)
810 ("util-linux" ,util-linux))) ; for 'cal'
6fd52309 811 (home-page "https://www.gnu.org/software/rottlog/")
fccf2fe0
LC
812 (synopsis "Log rotation and management")
813 (description
814 "GNU Rot[t]log is a program for managing log files. It is used to
815automatically rotate out log files when they have reached a given size or
816according to a given schedule. It can also be used to automatically compress
817and archive such logs. Rot[t]log will mail reports of its activity to the
818system administrator.")
f61e0e79 819 (license license:gpl3+)))
e1485c7b
LC
820
821(define-public sudo
822 (package
823 (name "sudo")
3416bed2 824 (version "1.8.20p2")
e1485c7b
LC
825 (source (origin
826 (method url-fetch)
827 (uri
6baa83d2 828 (list (string-append "https://www.sudo.ws/sudo/dist/sudo-"
e1485c7b
LC
829 version ".tar.gz")
830 (string-append "ftp://ftp.sudo.ws/pub/sudo/OLD/sudo-"
831 version ".tar.gz")))
832 (sha256
833 (base32
3416bed2 834 "1na5likm1srnd1g5sjx7b0543sczw0yppacyqsazfdg9b48awhmx"))
6b7f1b6c
MB
835 (modules '((guix build utils)))
836 (snippet
837 '(delete-file-recursively "lib/zlib"))))
e1485c7b
LC
838 (build-system gnu-build-system)
839 (arguments
0086ec73
LC
840 `(#:configure-flags
841 (list "--with-logpath=/var/log/sudo.log"
7b78f359 842 "--with-rundir=/var/run/sudo" ;must be cleaned up at boot time
0086ec73
LC
843 "--with-vardir=/var/db/sudo"
844 "--with-iologdir=/var/log/sudo-io"
845
846 ;; 'visudo.c' expects _PATH_MV to be defined, but glibc doesn't
847 ;; provide it.
848 (string-append "CPPFLAGS=-D_PATH_MV='\""
849 (assoc-ref %build-inputs "coreutils")
850 "/bin/mv\"'"))
511495fb
LC
851
852 ;; Avoid non-determinism; see <http://bugs.gnu.org/21918>.
853 #:parallel-build? #f
854
7fae2063
TGR
855 #:phases
856 (modify-phases %standard-phases
857 (add-before 'configure 'pre-configure
858 (lambda _
859 (substitute* "src/sudo_usage.h.in"
860 ;; Do not capture 'configure' arguments since we would
861 ;; unduly retain references, and also because the
862 ;; CPPFLAGS above would close the string literal
863 ;; prematurely.
864 (("@CONFIGURE_ARGS@") "\"\""))
865 (substitute* (find-files "." "Makefile\\.in")
866 (("-o [[:graph:]]+ -g [[:graph:]]+")
867 ;; Allow installation as non-root.
868 "")
869 (("^install: (.*)install-sudoers(.*)" _ before after)
870 ;; Don't try to create /etc/sudoers.
871 (string-append "install: " before after "\n"))
872 (("\\$\\(DESTDIR\\)\\$\\(rundir\\)")
873 ;; Don't try to create /run/sudo.
874 "$(TMPDIR)/dummy")
875 (("\\$\\(DESTDIR\\)\\$\\(vardir\\)")
876 ;; Don't try to create /var/db/sudo.
877 "$(TMPDIR)/dummy")))))
e1485c7b
LC
878
879 ;; XXX: The 'testsudoers' test series expects user 'root' to exist, but
880 ;; the chroot's /etc/passwd doesn't have it. Turn off the tests.
881 #:tests? #f))
882 (inputs
883 `(("groff" ,groff)
884 ("linux-pam" ,linux-pam)
6b7f1b6c 885 ("zlib" ,zlib)
e1485c7b 886 ("coreutils" ,coreutils)))
6baa83d2 887 (home-page "https://www.sudo.ws/")
e1485c7b
LC
888 (synopsis "Run commands as root")
889 (description
890 "Sudo (su \"do\") allows a system administrator to delegate authority to
891give certain users (or groups of users) the ability to run some (or all)
892commands as root or another user while providing an audit trail of the
893commands and their arguments.")
894
895 ;; See <http://www.sudo.ws/sudo/license.html>.
f61e0e79 896 (license license:x11)))
952298d7 897
1ce6f43a 898(define-public wpa-supplicant-minimal
952298d7 899 (package
1ce6f43a 900 (name "wpa-supplicant-minimal")
fc008121 901 (version "2.6")
952298d7
LC
902 (source (origin
903 (method url-fetch)
904 (uri (string-append
9a727700 905 "http://w1.fi/releases/wpa_supplicant-"
952298d7
LC
906 version
907 ".tar.gz"))
908 (sha256
909 (base32
fc008121 910 "0l0l5gz3d5j9bqjsbjlfcv4w4jwndllp9fmyai4x9kg6qhs6v4xl"))))
952298d7
LC
911 (build-system gnu-build-system)
912 (arguments
913 '(#:phases (alist-replace
914 'configure
915 (lambda* (#:key outputs #:allow-other-keys)
916 (chdir "wpa_supplicant")
917 (copy-file "defconfig" ".config")
918 (let ((port (open-file ".config" "al")))
919 (display "
920 CONFIG_DEBUG_SYSLOG=y
40b4c6d6 921
61bdd0d8
LC
922 # Choose GnuTLS (the default is OpenSSL.)
923 CONFIG_TLS=gnutls
924
952298d7
LC
925 CONFIG_DRIVER_NL80211=y
926 CFLAGS += $(shell pkg-config libnl-3.0 --cflags)
927 CONFIG_LIBNL32=y
928 CONFIG_READLINE=y\n" port)
929 (close-port port)))
ffd74de0
LC
930
931 (alist-cons-after
932 'install 'install-man-pages
933 (lambda* (#:key outputs #:allow-other-keys)
934 (let* ((out (assoc-ref outputs "out"))
935 (man (string-append out "/share/man"))
936 (man5 (string-append man "/man5"))
937 (man8 (string-append man "/man8")))
938 (define (copy-man-page target)
939 (lambda (file)
f3860753 940 (install-file file target)))
ffd74de0
LC
941
942 (mkdir-p man5) (mkdir man8)
943 (for-each (copy-man-page man5)
944 (find-files "doc/docbook" "\\.5"))
945 (for-each (copy-man-page man8)
946 (find-files "doc/docbook" "\\.8"))
947 #t))
948 %standard-phases))
952298d7
LC
949
950 #:make-flags (list "CC=gcc"
951 (string-append "BINDIR=" (assoc-ref %outputs "out")
952 "/sbin")
953 (string-append "LIBDIR=" (assoc-ref %outputs "out")
954 "/lib"))
955 #:tests? #f))
956 (inputs
957 `(("readline" ,readline)
958 ("libnl" ,libnl)
61bdd0d8
LC
959 ("gnutls" ,gnutls)
960 ("libgcrypt" ,libgcrypt))) ;needed by crypto_gnutls.c
952298d7
LC
961 (native-inputs
962 `(("pkg-config" ,pkg-config)))
9a727700 963 (home-page "http://w1.fi/wpa_supplicant/")
952298d7
LC
964 (synopsis "Connecting to WPA and WPA2-protected wireless networks")
965 (description
966 "wpa_supplicant is a WPA Supplicant with support for WPA and WPA2 (IEEE
967802.11i / RSN). Supplicant is the IEEE 802.1X/WPA component that is used in
968the client stations. It implements key negotiation with a WPA Authenticator
969and it controls the roaming and IEEE 802.11 authentication/association of the
970WLAN driver.
971
972This package provides the 'wpa_supplicant' daemon and the 'wpa_cli' command.")
973
974 ;; In practice, this is linked against Readline, which makes it GPLv3+.
f61e0e79 975 (license license:bsd-3)))
c6b76405 976
4fb7e0de 977(define-public wpa-supplicant
1ce6f43a 978 (package (inherit wpa-supplicant-minimal)
4fb7e0de
MW
979 (name "wpa-supplicant")
980 (inputs `(("dbus" ,dbus)
1ce6f43a 981 ,@(package-inputs wpa-supplicant-minimal)))
4fb7e0de 982 (arguments
1ce6f43a 983 (substitute-keyword-arguments (package-arguments wpa-supplicant-minimal)
4fb7e0de 984 ((#:phases phases)
6744aba8
MW
985 `(alist-cons-after
986 'configure 'configure-for-dbus
987 (lambda _
988 (let ((port (open-file ".config" "al")))
989 (display "
4fb7e0de
MW
990 CONFIG_CTRL_IFACE_DBUS=y
991 CONFIG_CTRL_IFACE_DBUS_NEW=y
992 CONFIG_CTRL_IFACE_DBUS_INTRO=y\n" port)
6744aba8
MW
993 (close-port port))
994 #t)
995 (alist-cons-after
996 'install-man-pages 'install-dbus-conf
997 (lambda* (#:key outputs #:allow-other-keys)
998 (let* ((out (assoc-ref outputs "out"))
999 (dir (string-append out "/etc/dbus-1/system.d")))
1000 (mkdir-p dir)
1001 (copy-file "dbus/dbus-wpa_supplicant.conf"
1002 (string-append dir "/wpa_supplicant.conf"))))
1003 ,phases)))))))
4fb7e0de 1004
c6b76405
LC
1005(define-public wakelan
1006 (package
1007 (name "wakelan")
1008 (version "1.1")
1009 (source (origin
1010 (method url-fetch)
1011 (uri (string-append
1012 "ftp://ftp.gwdg.de/pub/linux/metalab/system/network/misc/wakelan-"
1013 version ".tar.gz"))
1014 (sha256
1015 (base32
1016 "0vydqpf44146ir6k87gmqaq6xy66xhc1gkr3nsd7jj3nhy7ypx9x"))))
1017 (build-system gnu-build-system)
1018 (arguments
1019 '(#:phases (alist-replace
1020 'configure
1021 (lambda* (#:key outputs #:allow-other-keys)
1022 (let ((out (assoc-ref outputs "out")))
1023 (mkdir-p (string-append out "/bin"))
1024 (mkdir-p (string-append out "/share/man/man1"))
1025
1026 ;; It's an old configure script that doesn't understand
1027 ;; the extra options we pass.
1028 (setenv "CONFIG_SHELL" (which "bash"))
1029 (zero?
1030 (system* "./configure"
1031 (string-append "--prefix=" out)
1032 (string-append "--mandir=" out
1033 "/share/man")))))
1034 %standard-phases)
1035 #:tests? #f))
1036 (home-page "http://kernel.org") ; really, no home page
1037 (synopsis "Send a wake-on-LAN packet")
1038 (description
1039 "WakeLan broadcasts a properly formatted UDP packet across the local area
1040network, which causes enabled computers to power on.")
f61e0e79 1041 (license license:gpl2+)))
d43f4296
LC
1042
1043(define-public dmidecode
1044 (package
1045 (name "dmidecode")
06438b07 1046 (version "3.0")
d43f4296
LC
1047 (source (origin
1048 (method url-fetch)
1049 (uri (string-append
1050 "mirror://savannah/dmidecode/dmidecode-"
06438b07 1051 version ".tar.xz"))
d43f4296
LC
1052 (sha256
1053 (base32
06438b07 1054 "0iby0xfk5x3cdr0x0gxj5888jjyjhafvaq0l79civ73jjfqmphvy"))))
d43f4296
LC
1055 (build-system gnu-build-system)
1056 (arguments
06438b07 1057 '(#:phases (modify-phases %standard-phases (delete 'configure))
d43f4296
LC
1058 #:tests? #f ; no 'check' target
1059 #:make-flags (list (string-append "prefix="
1060 (assoc-ref %outputs "out")))))
1061 (home-page "http://www.nongnu.org/dmidecode/")
1062 (synopsis "Read hardware information from the BIOS")
1063 (description
1064 "Dmidecode reports information about your system's hardware as described
1065in your system BIOS according to the SMBIOS/DMI standard. This typically
1066includes system manufacturer, model name, serial number, BIOS version, asset
1067tag as well as a lot of other details of varying level of interest and
1068reliability depending on the manufacturer. This will often include usage
1069status for the CPU sockets, expansion slots (e.g. AGP, PCI, ISA) and memory
1070module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
f61e0e79 1071 (license license:gpl2+)))
42dc3af5 1072
13c8c2bf
MW
1073(define-public acpica
1074 (package
1075 (name "acpica")
2036a648 1076 (version "20150410")
13c8c2bf
MW
1077 (source (origin
1078 (method url-fetch)
1079 (uri (string-append
1080 "https://acpica.org/sites/acpica/files/acpica-unix2-"
1081 version ".tar.gz"))
1082 (sha256
1083 (base32
2036a648 1084 "0q1fjwkyw9x6gsva6fd0zbn7ly4fx0ha4853f416np9kf2irillw"))))
13c8c2bf
MW
1085 (build-system gnu-build-system)
1086 (native-inputs `(("flex" ,flex)
1087 ("bison" ,bison)))
1088 (arguments
1089 '(#:make-flags (list (string-append "PREFIX=" %output)
1090 "HOST=_LINUX"
1091 "OPT_CFLAGS=-Wall -fno-strict-aliasing")
1092 #:tests? #f ; no 'check' target.
1093 #:phases (alist-delete 'configure %standard-phases)))
1094 (home-page "http://acpica.org/")
35b9e423 1095 (synopsis "Tools for the development and debug of ACPI tables")
13c8c2bf
MW
1096 (description
1097 "The ACPI Component Architecture (ACPICA) project provides an
1098OS-independent reference implementation of the Advanced Configuration and
1099Power Interface Specification (ACPI). ACPICA code contains those portions of
1100ACPI meant to be directly integrated into the host OS as a kernel-resident
1101subsystem, and a small set of tools to assist in developing and debugging ACPI
1102tables. This package contains only the user-space tools needed for ACPI table
1103development, not the kernel implementation of ACPI.")
f61e0e79 1104 (license license:gpl2))) ; Dual GPLv2/ACPICA Licence
4cf7bd2b
MW
1105
1106(define-public stress
1107 (package
1108 (name "stress")
1109 (version "1.0.1")
1110 (source (origin
1111 (method url-fetch)
1112 (uri (string-append "mirror://debian/pool/main/s/stress/stress_"
1113 version ".orig.tar.gz"))
1114 (sha256
1115 (base32
1116 "1v9vnzlihqfjsxa93hdbrq72pqqk00dkylmlg8jpxhm7s1w9qfl1"))))
1117 (build-system gnu-build-system)
1118 (home-page "http://packages.debian.org/wheezy/stress")
9e771e3b 1119 (synopsis "Impose load on and stress test a computer system")
4cf7bd2b 1120 (description
35b9e423 1121 "Stress is a tool that imposes a configurable amount of CPU, memory, I/O,
4cf7bd2b
MW
1122or disk stress on a POSIX-compliant operating system and reports any errors it
1123detects.
1124
35b9e423 1125Stress is not a benchmark. It is a tool used by system administrators to
4cf7bd2b
MW
1126evaluate how well their systems will scale, by kernel programmers to evaluate
1127perceived performance characteristics, and by systems programmers to expose
1128the classes of bugs which only or more frequently manifest themselves when the
1129system is under heavy load.")
f61e0e79 1130 (license license:gpl2+)))
b36fcf95
EB
1131
1132(define-public detox
1133 (package
1134 (name "detox")
1135 (version "1.2.0")
1136 (source (origin
1137 (method url-fetch)
de67e922
LF
1138 (uri (string-append "mirror://sourceforge/detox/detox/" version
1139 "/detox-" version ".tar.bz2"))
b36fcf95
EB
1140 (sha256
1141 (base32
1142 "1y6vvjqsg54kl49cry73jbfhr04s7wjs779vrr9zrq6kww7dkymb"))))
1143 (build-system gnu-build-system)
1144 ;; Both flex and popt are used in this case for their runtime libraries
1145 ;; (libfl and libpopt).
1146 (inputs
1147 `(("flex" ,flex)
1148 ("popt" ,popt)))
1149 (arguments
1150 `(#:configure-flags `(,(string-append "--with-popt="
1151 (assoc-ref %build-inputs "popt")))
1152 #:tests? #f)) ;no 'check' target
1153 (home-page "http://detox.sourceforge.net")
e881752c 1154 (synopsis "Clean up file names")
b36fcf95
EB
1155 (description
1156 "Detox is a program that renames files to make them easier to work with
1157under Unix and related operating systems. Spaces and various other unsafe
1158characters (such as \"$\") get replaced with \"_\". ISO 8859-1 (Latin-1)
1159characters can be replaced as well, as can UTF-8 characters.")
f61e0e79 1160 (license license:bsd-3)))
c4492a16
LC
1161
1162(define-public testdisk
1163 (package
1164 (name "testdisk")
cf91cfc0 1165 (version "7.0")
c4492a16
LC
1166 (source (origin
1167 (method url-fetch)
1168 (uri (string-append "http://www.cgsecurity.org/testdisk-"
1169 version ".tar.bz2"))
1170 (sha256
1171 (base32
cf91cfc0 1172 "0ba4wfz2qrf60vwvb1qsq9l6j0pgg81qgf7fh22siaz649mkpfq0"))))
c4492a16
LC
1173 (build-system gnu-build-system)
1174 (inputs
d6a08ec0 1175 `(("ntfs-3g" ,ntfs-3g)
c4492a16 1176 ("util-linux" ,util-linux)
cc2b77df 1177 ("openssl" ,openssl)
d6a08ec0 1178 ;; FIXME: add reiserfs
f61e0e79 1179 ("zlib" ,zlib)
c4492a16
LC
1180 ("e2fsprogs" ,e2fsprogs)
1181 ("libjpeg" ,libjpeg)
1182 ("ncurses" ,ncurses)))
1183 (home-page "http://www.cgsecurity.org/wiki/TestDisk")
1184 (synopsis "Data recovery tool")
1185 (description
1186 "TestDisk is a program for data recovery, primarily designed to help
1187recover lost partitions and/or make non-booting disks bootable again.")
f61e0e79 1188 (license license:gpl2+)))
c4492a16 1189
15926aec
AS
1190(define-public tree
1191 (package
1192 (name "tree")
1193 (version "1.7.0")
1194 (source (origin
1195 (method url-fetch)
1196 (uri (string-append
1197 "http://mama.indstate.edu/users/ice/tree/src/tree-"
1198 version ".tgz"))
1199 (sha256
1200 (base32 "04kviw799qxly08zb8n5mgxfd96gyis6x69q2qiw86jnh87c4mv9"))))
1201 (build-system gnu-build-system)
1202 (arguments
1203 '(#:phases (alist-delete 'configure %standard-phases)
1204 #:tests? #f ; no check target
1205 #:make-flags (let ((out (assoc-ref %outputs "out")))
1206 (list (string-append "prefix=" out)))))
1207 (synopsis "Recursively list the contents of a directory")
1208 (description
1209 "Tree is a recursive directory listing command that produces a depth
1210indented listing of files, which is colorized ala dircolors if the LS_COLORS
1211environment variable is set and output is to tty.")
1212 (home-page "http://mama.indstate.edu/users/ice/tree/")
1213 (license license:gpl2+)))
1214
c2619e10
LC
1215(define-public direvent
1216 (package
1217 (name "direvent")
bac67a5a 1218 (version "5.1")
c2619e10
LC
1219 (source (origin
1220 (method url-fetch)
1221 (uri (string-append "mirror://gnu/direvent/direvent-"
1222 version ".tar.gz"))
1223 (sha256
1224 (base32
bac67a5a 1225 "1nwvjmx7kb14ni34c0b8x9a3791pc20gvhj7xaj66d8q4h6n0qf4"))
c2619e10
LC
1226 (modules '((guix build utils)))
1227 (snippet '(substitute* "tests/testsuite"
1228 (("#![[:blank:]]?/bin/sh")
1229 "#!$SHELL")))))
1230 (build-system gnu-build-system)
1231 (arguments
1232 '(#:phases (alist-cons-before
1233 'build 'patch-/bin/sh
1234 (lambda* (#:key inputs #:allow-other-keys)
bac67a5a
LC
1235 ;; Use the right shell when executing the watcher and
1236 ;; user-provided shell commands.
c2619e10 1237 (let ((bash (assoc-ref inputs "bash")))
bac67a5a 1238 (substitute* '("src/direvent.c" "src/progman.c")
c2619e10 1239 (("\"/bin/sh\"")
bac67a5a
LC
1240 (string-append "\"" bash "/bin/sh\"")))
1241
1242 ;; Adjust the 'shell.at' test accordingly.
1243 (substitute* "tests/testsuite"
1244 (("SHELL=/bin/sh")
1245 (string-append "SHELL=" bash "/bin/sh")))
1246
1247 #t))
c2619e10 1248 %standard-phases)))
6fd52309 1249 (home-page "https://www.gnu.org/software/direvent/")
c2619e10
LC
1250 (synopsis "Daemon to monitor directories for events such as file removal")
1251 (description
1252 "A daemon that monitors directories for events, such as creating,
35b9e423 1253deleting or modifying files. It can monitor different sets of directories for
c2619e10
LC
1254different events. When an event is detected, direvent calls a specified
1255external program with information about the event, such as the location
c5779c93
LC
1256within the file system where it occurred. Thus, \"direvent\" provides an
1257easy way to react immediately if given files undergo changes, for example, to
c2619e10 1258track changes in important system configuration files.")
f61e0e79 1259 (license license:gpl3+)))
da6c3749
TUBK
1260
1261(define-public libcap-ng
1262 (package
1263 (name "libcap-ng")
1264 (version "0.7.4")
1265 (source (origin
1266 (method url-fetch)
1267 (uri (string-append
1268 "http://people.redhat.com/sgrubb/libcap-ng/libcap-ng-"
1269 version ".tar.gz"))
1270 (sha256
1271 (base32
1272 "0ssvnh4cvhya0c1j6k6192zvqcq7nc0x01fb5nwhr0prfqr0i8j8"))))
1273 (build-system gnu-build-system)
1274 (inputs `(("python" ,python)))
1275 (home-page "http://people.redhat.com/sgrubb/libcap-ng/")
1276 (synopsis "Library for more easily working with POSIX capabilities")
1277 (description
1278 "The libcap-ng library is intended to make programming with POSIX
1279capabilities easier than the traditional libcap library. It includes
1280utilities that can analyse all currently running applications and print out
1281any capabilities and whether or not it has an open ended bounding set. The
1282included utilities are designed to let admins and developers spot apps from
1283various ways that may be running with too much privilege.")
1284 ;; The library is lgpl2.1+, but also ships some utils which are gpl2+.
f61e0e79 1285 (license (list license:lgpl2.1+ license:gpl2+))))
d02f2cc4
TUBK
1286
1287(define-public smartmontools
1288 (package
1289 (name "smartmontools")
85de4365 1290 (version "6.5")
d02f2cc4
TUBK
1291 (source (origin
1292 (method url-fetch)
1293 (uri (string-append
1294 "mirror://sourceforge/smartmontools/smartmontools/"
1295 version "/smartmontools-" version ".tar.gz"))
1296 (sha256
1297 (base32
85de4365 1298 "1g25r6sx85b5lay5n6sbnqv05qxzj6xsafsp93hnrg1h044bps49"))))
d02f2cc4
TUBK
1299 (build-system gnu-build-system)
1300 (inputs `(("libcap-ng" ,libcap-ng)))
1301 (home-page "http://www.smartmontools.org/")
1302 (synopsis "S.M.A.R.T. harddisk control and monitoring tools")
1303 (description
1304 "The smartmontools package contains utility programs to control and
1305monitor storage systems using the Self-Monitoring, Analysis and Reporting
1306Technology System (S.M.A.R.T.) built into most modern ATA and SCSI harddisks.
1307In many cases, these utilities will provide advanced warning of disk
1308degradation and failure.")
f61e0e79 1309 (license license:gpl2+)))
6efd0823
RW
1310
1311(define-public fdupes
1312 (package
1313 (name "fdupes")
47d7b303 1314 (version "1.6.1")
6efd0823
RW
1315 (source
1316 (origin
1317 (method url-fetch)
1318 (uri (string-append
47d7b303 1319 "https://github.com/adrianlopezroche/fdupes/archive/v"
6efd0823 1320 version ".tar.gz"))
47d7b303 1321 (file-name (string-append name "-" version ".tar.gz"))
6efd0823
RW
1322 (sha256
1323 (base32
47d7b303 1324 "1sj9pa40pbz6xdwbxfwhdhkvhdf1xc5gvggk9mdq26c41gdnyswx"))))
6efd0823
RW
1325 (build-system gnu-build-system)
1326 (arguments
e192a230
TGR
1327 '(#:phases (modify-phases %standard-phases
1328 (delete 'configure))
6efd0823 1329 #:tests? #f ; no 'check' target
47d7b303
TGR
1330 #:make-flags (list "CC=gcc"
1331 (string-append "PREFIX="
6efd0823
RW
1332 (assoc-ref %outputs "out")))))
1333 (home-page "https://github.com/adrianlopezroche/fdupes")
1334 (synopsis "Identify duplicate files")
1335 (description
1336 "fdupes is a program for identifying duplicate files residing within
1337specified directories.")
1338 (license license:expat)))
4ecfbda7
DT
1339
1340(define-public graphios
1341 (package
1342 (name "graphios")
1343 (version "2.0.3")
1344 (source
1345 (origin
1346 (method url-fetch)
1347 (uri (string-append
1348 "https://pypi.python.org/packages/source/g/graphios/graphios-"
1349 version ".tar.gz"))
1350 (sha256
1351 (base32
1352 "1h87hvc315wg6lklbf4l7csd3n5pgljwrfli1p3nasdi0izgn66i"))))
1353 (build-system python-build-system)
1354 (arguments
1355 ;; Be warned: Building with Python 3 succeeds, but the build process
1356 ;; throws a syntax error that is ignored.
1357 `(#:python ,python-2
1358 #:phases
1359 (modify-phases %standard-phases
1360 (add-before 'build 'fix-setup.py
1361 (lambda* (#:key outputs #:allow-other-keys)
1362 ;; Fix hardcoded, unprefixed file names.
1363 (let ((out (assoc-ref outputs "out")))
1364 (substitute* '("setup.py")
1365 (("/etc") (string-append out "/etc"))
1366 (("/usr") out)
1367 (("distro_ver = .*") "distro_ver = ''"))
1368 #t))))))
4ecfbda7
DT
1369 (home-page "https://github.com/shawn-sterling/graphios")
1370 (synopsis "Emit Nagios metrics to Graphite, Statsd, and Librato")
1371 (description
1372 "Graphios is a script to emit nagios perfdata to various upstream metrics
1373processing and time-series systems. It's currently compatible with Graphite,
1374Statsd, Librato and InfluxDB. Graphios can emit Nagios metrics to any number
1375of supported upstream metrics systems simultaneously.")
1376 (license license:gpl2+)))
8d801045
ED
1377
1378(define-public ansible
1379 (package
1380 (name "ansible")
2e3297f4 1381 (version "2.3.1.0")
8d801045
ED
1382 (source
1383 (origin
1384 (method url-fetch)
697e86dd 1385 (uri (pypi-uri "ansible" version))
8d801045
ED
1386 (sha256
1387 (base32
b7866613
JL
1388 "1xdr82fy8gahxh3586wm5k1bxksys7yl1f2n24shrk8gf99qyjyd"))
1389 (patches (search-patches "ansible-wrap-program-hack.patch"))))
8d801045
ED
1390 (build-system python-build-system)
1391 (native-inputs
f3b98f4f 1392 `(("python2-pycrypto" ,python2-pycrypto)
8d801045
ED
1393 ("python2-httplib2" ,python2-httplib2)
1394 ("python2-passlib" ,python2-passlib)
1395 ("python2-nose" ,python2-nose)
1396 ("python2-mock" ,python2-mock)
1397 ("python2-jinja2" ,python2-jinja2)
1398 ("python2-pyyaml" ,python2-pyyaml)
1399 ("python2-paramiko" ,python2-paramiko)))
1400 (inputs
1401 `(("python2-pycrypto" ,python2-pycrypto)
1402 ("python2-jinja2" ,python2-jinja2)
1403 ("python2-pyyaml" ,python2-pyyaml)
1404 ("python2-paramiko" ,python2-paramiko)))
1405 (arguments
1406 `(#:python ,python-2)) ; incompatible with Python 3
1407 (home-page "http://ansible.com/")
1408 (synopsis "Radically simple IT automation")
1409 (description "Ansible is a radically simple IT automation system. It
1410handles configuration-management, application deployment, cloud provisioning,
1411ad-hoc task-execution, and multinode orchestration - including trivializing
1412things like zero downtime rolling updates with load balancers.")
1413 (license license:gpl3+)))
44157e9f
EB
1414
1415(define-public cpulimit
1416 (package
1417 (name "cpulimit")
1418 (version "0.2")
1419 (source
1420 (origin
1421 (method url-fetch)
1422 (uri (string-append "https://github.com/opsengine/cpulimit/archive/v"
1423 version ".tar.gz"))
1424 (file-name (string-append name "-" version ".tar.gz"))
1425 (sha256
1426 (base32
1427 "1nn2w849xd5bw4y5sqnll29nxdwl5h0cv4smc7dwmpb9qnd2ycb4"))))
1428 (build-system gnu-build-system)
1429 (arguments
1430 `(#:phases (modify-phases %standard-phases
1431 (delete 'configure)
1432 (replace
1433 'build
1434 (lambda _
1435 (zero? (system* "make" "CC=gcc" "-Csrc"))))
1436 (replace
1437 'check
1438 (lambda _
1439 (zero? (system* "make" "CC=gcc" "-Ctests"))))
1440 (replace
1441 'install
1442 (lambda* (#:key outputs #:allow-other-keys)
1443 (let* ((out (assoc-ref outputs "out"))
1444 (bin (string-append out "/bin")))
1445 (install-file "src/cpulimit" bin)))))))
1446 (home-page "https://github.com/opsengine/cpulimit")
1447 (synopsis "Limit CPU usage")
1448 (description
1449 "Cpulimit limits the CPU usage of a process. It does not change the nice
1450value or other scheduling priority settings, but the real CPU usage, and is
1451able to adapt itself dynamically to the overall system load. Children
1452processes and threads of the specified process may optionally share the same
1453limits.")
1454 (license license:gpl2+)))
2328b47c
EB
1455
1456(define-public autojump
1457 (package
1458 (name "autojump")
1d33b9ea 1459 (version "22.3.4")
2328b47c
EB
1460 (source
1461 (origin
1462 (method url-fetch)
1463 (uri (string-append "https://github.com/wting/autojump/archive/"
1464 "release-v" version ".tar.gz"))
1465 (file-name (string-append name "-" version ".tar.gz"))
1466 (sha256
1467 (base32
1d33b9ea 1468 "113rcpr37ngf2xs8da41qdarq5qmj0dwx8ggqy3lhlb0kvqq7g9z"))))
2328b47c
EB
1469 (build-system gnu-build-system)
1470 (native-inputs ;for tests
1471 `(("python-mock" ,python-mock)
1472 ("python-pytest" ,python-pytest)))
1473 (inputs
1474 `(("python" ,python-wrapper)))
1475 (arguments
1476 `(#:phases (modify-phases %standard-phases
1477 (delete 'configure)
1478 (delete 'build)
1479 (replace 'check
1480 (lambda _
1481 (zero?
0c4520d6 1482 (system* "python" "tests/unit/autojump_utils_test.py"))))
2328b47c
EB
1483 (replace 'install
1484 ;; The install.py script doesn't allow system installation
1485 ;; into an arbitrary prefix, so do our own install.
1486 (lambda* (#:key outputs #:allow-other-keys)
1487 (let* ((out (assoc-ref outputs "out"))
1488 (bin (string-append out "/bin"))
1489 (share (string-append out "/share/autojump"))
1490 (py (string-append out "/lib/python"
1491 ,(version-major+minor
1492 (package-version python-wrapper))
1493 "/site-packages"))
1494 (man (string-append out "/share/man/man1")))
1495 (install-file "bin/autojump" bin)
1496 (for-each (λ (f) (install-file f py))
1497 (find-files "bin" "\\.py$"))
1498 (for-each (λ (f) (install-file f share))
1499 (find-files "bin" "autojump\\..*$"))
1500 (substitute* (string-append share "/autojump.sh")
1501 (("/usr/local") out))
1502 (install-file "docs/autojump.1" man)
1503 (wrap-program (string-append bin "/autojump")
1504 `("PYTHONPATH" ":" prefix (,py)))
1505 #t))))))
1506 (home-page "https://github.com/wting/autojump")
8f65585b 1507 (synopsis "Shell extension for file system navigation")
2328b47c 1508 (description
8f65585b 1509 "Autojump provides a faster way to navigate your file system, with a \"cd
2328b47c
EB
1510command that learns\". It works by maintaining a database of the directories
1511you use the most from the command line and allows you to \"jump\" to
1512frequently used directories by typing only a small pattern.")
1513 (license license:gpl3+)))
765973cd
LF
1514
1515(define-public iftop
1516 (package
1517 (name "iftop")
1518 (version "1.0pre4")
1519 (source (origin
1520 (method url-fetch)
1521 (uri (string-append "http://www.ex-parrot.com/~pdw/iftop/download"
1522 "/iftop-" version ".tar.gz"))
1523 (sha256
1524 (base32
1525 "15sgkdyijb7vbxpxjavh5qm5nvyii3fqcg9mzvw7fx8s6zmfwczp"))))
1526 (build-system gnu-build-system)
1527 (inputs
1528 `(("libpcap" ,libpcap)
1529 ("ncurses" ,ncurses)))
1530 (synopsis "Monitor network usage")
1531 (description "Iftop does for network usage what @command{top} does
1532for CPU usage. It listens to network traffic on a named interface and
1533displays a table of current bandwidth usage by pairs of hosts.")
1534 (home-page "http://www.ex-parrot.com/~pdw/iftop/")
d4e21fbb 1535 (license license:gpl2+)))
f1957fc1
PP
1536
1537(define-public munge
1538 (package
1539 (name "munge")
b52ae4de 1540 (version "0.5.12")
f1957fc1
PP
1541 (source (origin
1542 (method url-fetch)
b52ae4de
EF
1543 (uri (string-append "https://github.com/dun/munge/releases/"
1544 "download/munge-" version "/munge-"
1545 version ".tar.xz"))
f1957fc1
PP
1546 (sha256
1547 (base32
b52ae4de 1548 "1s0vlwgm3hcx75vcmjf2y3icy5nv8y07bx93w2cmm6a7x71y6wp9"))))
f1957fc1
PP
1549 (inputs
1550 `(("openssl" ,openssl)
1551 ("libgcrypt" ,libgcrypt)))
1552 (build-system gnu-build-system)
b52ae4de 1553 (home-page "https://dun.github.io/munge/")
f1957fc1
PP
1554 (synopsis "Cluster computing authentication service")
1555 (description
1556 "Munge is an authentication service for creating and validating
1557credentials. It allows a process to authenticate the UID and GID of another
1558local or remote process within a group of hosts having common users and
1559groups. These hosts form a security realm that is defined by a shared
1560cryptographic key. Clients within this security realm can create and validate
1561credentials without the use of root privileges, reserved ports, or
1562platform-specific methods.")
1563 (license license:gpl3+)))
3d7a157c
RW
1564
1565(define-public audit
1566 (package
1567 (name "audit")
1568 (version "2.4.5")
1569 (source (origin
1570 (method url-fetch)
1571 (uri (string-append "http://people.redhat.com/sgrubb/audit/"
1572 "audit-" version ".tar.gz"))
1573 (sha256
1574 (base32
1575 "1q1q51dvxscbi4kbakmd4bn0xrvwwaiwvaya79925cbrqwzxsg77"))))
1576 (build-system gnu-build-system)
1577 (home-page "http://people.redhat.com/sgrubb/audit/")
1578 (arguments
1579 `(#:configure-flags (list "--with-python=no")
1580 #:phases
1581 (modify-phases %standard-phases
1582 (add-after 'unpack 'fix-tests
1583 (lambda _
1584 ;; In the build environmnte /etc/passwd does not contain an entry
1585 ;; for root/0, so we have to patch the expected value.
1586 (substitute* "auparse/test/auparse_test.ref"
1587 (("=0 \\(root\\)") "=0 (unknown(0))"))
1588 #t)))))
1589 (inputs
1590 `(("openldap" ,openldap)
1bafad56 1591 ("gnutls" ,gnutls)
3d7a157c
RW
1592 ("sasl" ,cyrus-sasl)))
1593 (synopsis "User-space component to the Linux auditing system")
1594 (description
1595 "auditd is the user-space component to the Linux auditing system, which
1596allows logging of system calls made by user-land processes. It's responsible
1597for writing audit records to the disk. Viewing the logs is done with the
1598@code{ausearch} or @code{aureport} utilities. Configuring the audit rules is
1599done with the @code{auditctl} utility.")
1600 (license license:gpl2+)))
d0457553
TUBK
1601
1602(define-public nmap
1603 (package
1604 (name "nmap")
4c6c6838 1605 (version "7.60")
d0457553
TUBK
1606 (source (origin
1607 (method url-fetch)
1608 (uri (string-append "https://nmap.org/dist/nmap-" version
1609 ".tar.bz2"))
1610 (sha256
1611 (base32
4c6c6838 1612 "08bga42ipymmbxd7wy4x5sl26c0ir1fm3n9rc6nqmhx69z66wyd8"))
d0457553
TUBK
1613 (modules '((guix build utils)))
1614 (snippet
1615 '(map delete-file-recursively
1616 ;; Remove bundled lua, pcap, and pcre libraries.
1617 ;; FIXME: Remove bundled liblinear once packaged.
1618 '("liblua"
1619 "libpcap"
1620 "libpcre"
1621 ;; Remove pre-compiled binares.
1622 "mswin32")))))
1623 (build-system gnu-build-system)
1624 (inputs
1625 `(("openssl" ,openssl)
1626 ("libpcap" ,libpcap)
1627 ("pcre" ,pcre)
1628 ("lua" ,lua)
1629 ;; For 'ndiff'.
1630 ("python" ,python-2)))
1631
1632 ;; TODO Add zenmap output.
1633 (outputs '("out" "ndiff"))
1634 (arguments
1635 '(#:configure-flags '("--without-zenmap")
1636 #:phases
1637 (modify-phases %standard-phases
f4dc22bc
MB
1638 (add-after 'configure 'patch-Makefile
1639 (lambda _
1640 (substitute* "Makefile"
1641 ;; Do not attempt to build lua.
1642 (("build-dnet build-lua") "build-dnet"))
1643 #t))
d0457553
TUBK
1644 (replace 'install
1645 (lambda* (#:key outputs #:allow-other-keys)
1646 (define (make out . args)
1647 (unless (zero? (apply system* "make"
1648 (string-append "prefix=" out)
1649 args))
1650 (error "make failed")))
1651 (define (python-path dir)
1652 (string-append dir "/lib/python2.7/site-packages"))
1653 (let ((out (assoc-ref outputs "out"))
1654 (ndiff (assoc-ref outputs "ndiff")))
1655 (for-each mkdir-p (list out ndiff))
1656 (make out
1657 "install-nmap"
1658 "install-nse"
1659 "install-ncat"
1660 "install-nping")
1661 (make ndiff "install-ndiff")
1662 (wrap-program (string-append ndiff "/bin/ndiff")
1663 `("PYTHONPATH" prefix
1664 (,(python-path ndiff)))))))
1665 ;; These are the tests that do not require network access.
1666 (replace 'check
1667 (lambda _ (zero? (system* "make"
1668 "check-nse"
1669 "check-ndiff"
1670 "check-dns")))))
1671 ;; Nmap can't cope with out-of-source building.
1672 #:out-of-source? #f))
1673 (home-page "https://nmap.org/")
1674 (synopsis "Network discovery and security auditing tool")
1675 (description
1676 "Nmap (\"Network Mapper\") is a network discovery and security auditing
1677tool. It is also useful for tasks such as network inventory, managing service
1678upgrade schedules, and monitoring host or service uptime. It also provides an
1679advanced netcat implementation (ncat), a utility for comparing scan
1680results (ndiff), and a packet generation and response analysis tool (nping).")
1681 ;; This package uses nmap's bundled versions of libdnet and liblinear, which
1682 ;; both use a 3-clause BSD license.
1683 (license (list license:nmap license:bsd-3))))
1a0346f0
P
1684
1685(define-public dstat
1686 (package
1687 (name "dstat")
1688 (version "0.7.3")
1689 (source (origin
1690 (method url-fetch)
1691 (uri (string-append
1692 "https://github.com/dagwieers/dstat/archive/"
1693 version ".tar.gz"))
1694 (file-name (string-append "dstat-" version ".tar.gz"))
1695 (sha256
1696 (base32
1697 "16286z3y2lc9nsq8njzjkv6k2vyxrj9xiixj1k3gnsbvhlhkirj6"))))
1698 (build-system gnu-build-system)
1699 (arguments
1700 `(#:tests? #f ;; no make check
1701 #:make-flags (let ((out (assoc-ref %outputs "out")))
1702 (list (string-append "DESTDIR=" out)
1703 "prefix=/"))
1704 ;; no configure script
1705 #:phases (alist-delete 'configure %standard-phases)))
1706 (inputs `(("python-2" ,python-2)))
1707 (synopsis "Versatile resource statistics tool")
1708 (description "Dstat is a versatile replacement for @command{vmstat},
1709@command{iostat}, @command{netstat}, and @command{ifstat}. Dstat overcomes
1710some of their limitations and adds some extra features, more counters and
1711flexibility. Dstat is handy for monitoring systems during performance tuning
1712tests, benchmarks or troubleshooting.
1713
1714Dstat allows you to view all of your system resources in real-time, you can,
1715e.g., compare disk utilization in combination with interrupts from your IDE
1716controller, or compare the network bandwidth numbers directly with the disk
1717throughput (in the same interval).")
1718 (home-page "http://dag.wiee.rs/home-made/dstat/")
c59f62e9 1719 (license license:gpl2+)))
0405e5f4
EB
1720
1721(define-public thefuck
1722 (package
1723 (name "thefuck")
0a3ecfd2 1724 (version "3.19")
0405e5f4
EB
1725 (source (origin
1726 (method url-fetch)
1727 (uri (string-append "https://github.com/nvbn/thefuck/archive/"
1728 version ".tar.gz"))
1729 (file-name (string-append name "-" version ".tar.gz"))
1730 (sha256
1731 (base32
0a3ecfd2 1732 "191zbvkyc02h0wwd46xwj4zzg7jhlr8xv0ji6knqkgjnk0nvqq01"))
bf5b6fb2 1733 (patches (search-patches "thefuck-test-environ.patch"))))
0405e5f4 1734 (build-system python-build-system)
1c1b67a3 1735 (arguments
bf5b6fb2
EB
1736 '(#:phases
1737 (modify-phases %standard-phases
1738 (delete 'check)
1739 (add-after 'install 'check
1740 (lambda* (#:key inputs outputs #:allow-other-keys)
1741 ;; Tests look for installed package
1742 (add-installed-pythonpath inputs outputs)
1743 ;; Some tests need write access to $HOME.
1744 (setenv "HOME" "/tmp")
1745 (zero? (system* "py.test" "-v")))))))
1c1b67a3 1746 (propagated-inputs
0405e5f4
EB
1747 `(("python-colorama" ,python-colorama)
1748 ("python-decorator" ,python-decorator)
1749 ("python-psutil" ,python-psutil)
1750 ("python-six" ,python-six)))
2d1ac1d1 1751 (native-inputs
1c1b67a3
MB
1752 `(("python-mock" ,python-mock)
1753 ("python-pytest" ,python-pytest)
424b1ae7
MB
1754 ("python-pytest-mock" ,python-pytest-mock)
1755 ;; Requires setuptools >= 17.1 due to some features used, while our
1756 ;; python currently only includes 12.0. TODO: Remove this input.
1757 ("python-setuptools" ,python-setuptools)))
0405e5f4
EB
1758 (home-page "https://github.com/nvbn/thefuck")
1759 (synopsis "Correct mistyped console command")
1760 (description
1761 "The Fuck tries to match a rule for a previous, mistyped command, creates
1762a new command using the matched rule, and runs it.")
1763 (license license:x11)))
61402398
JF
1764
1765(define-public di
1766 (package
1767 (name "di")
63f5d53c 1768 (version "4.43")
61402398
JF
1769 (source
1770 (origin
1771 (method url-fetch)
1772 (uri (string-append "https://gentoo.com/di/di-" version ".tar.gz"))
1773 (sha256
63f5d53c 1774 (base32 "1q25jy51qfzsym9b2w0cqzscq2j492gn60dy6gbp88m8nwm4sdy8"))))
61402398
JF
1775 (build-system gnu-build-system)
1776 (arguments
1777 `(#:tests? #f ; Obscure test failures.
1778 #:phases
1779 (modify-phases %standard-phases
1780 (delete 'configure)
1781 (add-before 'build 'setup-environment
1782 (lambda* (#:key outputs #:allow-other-keys)
1783 (setenv "CC" "gcc")
1784 (setenv "prefix" (assoc-ref outputs "out"))
1785 #t)))
1786 #:make-flags (list "--environment-overrides")))
1787 (home-page "https://www.gentoo.com/di/")
1788 (synopsis "Advanced df like disk information utility")
1789 (description
1790 "'di' is a disk information utility, displaying everything
1791(and more) that your @code{df} command does. It features the ability to
1792display your disk usage in whatever format you prefer. It is designed to be
d1e4ad1b 1793highly portable. Great for heterogeneous networks.")
61402398 1794 (license license:zlib)))
5ec8b02d 1795
1796(define-public cbatticon
1797 (package
1798 (name "cbatticon")
e2a4c130 1799 (version "1.6.6")
5ec8b02d 1800 (source (origin
1801 (method url-fetch)
1802 (uri (string-append "https://github.com/valr/"
1803 name "/archive/" version ".tar.gz"))
1804 (sha256
1805 (base32
e2a4c130 1806 "1rxlrwd817f2zl4fsc5ha43wjzfidq3yyagq4lgyi150qg36svv3"))
5ec8b02d 1807 (file-name (string-append name "-" version ".tar.gz"))))
1808 (build-system gnu-build-system)
1809 (arguments
1810 `(#:tests? #f ; no tests
1811 #:make-flags
1812 (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
1813 "CC=gcc")
1814 #:phases
1815 (modify-phases %standard-phases
1816 (delete 'configure)))) ; no configure script
1817 (inputs
1818 `(("gtk+" ,gtk+)
b94a6ca0 1819 ("gettext" ,gettext-minimal)
5ec8b02d 1820 ("libnotify" ,libnotify)))
1821 (native-inputs
1822 `(("pkg-config" ,pkg-config)))
1823 (synopsis "Lightweight battery icon for the system tray")
1824 (description "cbatticon is a lightweight battery icon that displays
1825the status of your battery in the system tray.")
1826 (home-page "https://github.com/valr/cbatticon")
1827 (license license:gpl2+)))
c08533b2 1828
1829(define-public interrobang
1830 (let ((revision "1")
1831 (commit "896543735e1c99144765fdbd7b6e6b5afbd8b881"))
1832 (package
1833 (name "interrobang")
1834 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
1835 (source (origin
1836 (method git-fetch)
1837 (uri (git-reference
5f13bf09 1838 (url "https://github.com/TrilbyWhite/interrobang")
c08533b2 1839 (commit commit)))
1840 (file-name (string-append name "-" version))
1841 (sha256
1842 (base32
1843 "1n13m70p1hfba5dy3i8hfclbr6k9q3d9dai3dg4jvhdhmxcpjzdf"))))
1844 (build-system gnu-build-system)
1845 (arguments
1846 `(#:tests? #f ; no tests
1847 #:phases
1848 (modify-phases %standard-phases
1849 (delete 'configure)) ; no configure script
1850 #:make-flags (list (string-append "PREFIX="
1851 (assoc-ref %outputs "out")))))
1852 (inputs
1853 `(("libx11" ,libx11)))
1854 (native-inputs
1855 `(("pkg-config" ,pkg-config)))
1856 (synopsis "Scriptable launcher menu")
1857 (description "Interrobang is a scriptable launcher menu with a customizable
1858shortcut syntax and completion options.")
1859 (home-page "https://github.com/TrilbyWhite/interrobang")
1860 (license license:gpl3+))))
94c5dc8c
JD
1861
1862
1863
1864(define-public pam-krb5
1865 (package
1866 (name "pam-krb5")
1867 (version "4.7")
1868 (source (origin
1869 (method url-fetch)
1870 (uri (string-append
1871 "https://archives.eyrie.org/software/kerberos/" name "-"
1872 version ".tar.xz"))
1873 (sha256
1874 (base32
1875 "0abf8cfpkprmhw5ca8iyqgrggh65lgqvmfllc1y6qz7zw1gas894"))))
1876 (build-system gnu-build-system)
1877 (arguments
1878 `(#:phases
1879 (modify-phases %standard-phases
1880 (add-before 'configure 'disable-tests
1881 (lambda _
1882 ;; The build container seems to interfere with some tests.
1883 (substitute* "tests/TESTS"
1884 (("module/basic\n") ""))
1885 (substitute* "tests/TESTS"
1886 (("pam-util/vector\n") ""))
1887 #t)))))
1888 (inputs
1889 `(("linux-pam" ,linux-pam)
1890 ("mit-krb5" ,mit-krb5)))
1891 (native-inputs
1892 `(("perl" ,perl)
1893 ("perl-test-pod" ,perl-test-pod))) ; required for tests
1894 (synopsis "Kerberos PAM module")
1895 (description
1896 "Pam-krb5 is a Kerberos PAM module for either MIT Kerberos or Heimdal.
1897It supports ticket refreshing by screen savers, configurable
1898authorization handling, authentication of non-local accounts for network
1899services, password changing, and password expiration, as well as all the
1900standard expected PAM features. It works correctly with OpenSSH, even
1901with ChallengeResponseAuthentication and PrivilegeSeparation enabled,
1902and supports extensive configuration either by PAM options or in
1903krb5.conf or both. PKINIT is supported with recent versions of both MIT
1904Kerberos and Heimdal and FAST is supported with recent MIT Kerberos.")
1905 (home-page "http://www.eyrie.org/~eagle/software/pam-krb5")
1906 ;; Dual licenced under a homebrew non-copyleft OR GPL (any version)
1907 ;; However, the tarball does not contain a copy of the GPL, so unless
1908 ;; we put one in, we cannot distribute it under GPL without violating
1909 ;; clause requiring us to give all recipients a copy.
1910 (license license:gpl1+)))
1911
1912;;http://archives.eyrie.org/software/kerberos/pam-krb5-4.7.tar.xz
b04ca7a1
DM
1913
1914(define-public sunxi-tools
1915 (package
1916 (name "sunxi-tools")
0c6fc4b7 1917 (version "1.4.2")
b04ca7a1
DM
1918 (source
1919 (origin
1920 (method url-fetch)
1921 (uri (string-append "https://github.com/linux-sunxi/"
1922 "sunxi-tools/archive/v" version ".tar.gz"))
1923 (sha256
0c6fc4b7 1924 (base32 "08iqwj95qw2s7ilhrdi2lkbc8dx64zk5lzz1qk587jr0lla81x41"))
b04ca7a1
DM
1925 (modules '((guix build utils)))
1926 (snippet
1927 ;; Remove binaries contained in the tarball which are only for the
1928 ;; target and can be regenerated anyway.
1929 '(delete-file-recursively "bin"))
1930 (file-name (string-append name "-" version ".tar.gz"))))
1931 (native-inputs
faa6bdf8
DM
1932 `(("pkg-config" ,pkg-config)
1933 ("cross-gcc" ,(cross-gcc "arm-linux-gnueabihf"
1934 #:xbinutils (cross-binutils "arm-linux-gnueabihf")
1935 #:libc (cross-libc "arm-linux-gnueabihf")))
1936 ("cross-libc" ,(cross-libc "arm-linux-gnueabihf"))))
b04ca7a1
DM
1937 (inputs
1938 `(("libusb" ,libusb)))
1939 (build-system gnu-build-system)
1940 (arguments
faa6bdf8 1941 `(#:tests? #f ; no tests exist
b04ca7a1
DM
1942 #:make-flags (list (string-append "PREFIX="
1943 (assoc-ref %outputs "out"))
faa6bdf8
DM
1944 (string-append "CROSS_COMPILE="
1945 "arm-linux-gnueabihf-")
1946 "CC=gcc")
b04ca7a1
DM
1947 #:phases
1948 (modify-phases %standard-phases
b054b26a 1949 (delete 'configure)
faa6bdf8
DM
1950 (add-before 'build 'set-environment-up
1951 (lambda* (#:key make-flags #:allow-other-keys)
1952 (define (cross? x)
1953 (string-contains x "cross-arm-linux"))
1954 (setenv "CROSS_C_INCLUDE_PATH" (getenv "C_INCLUDE_PATH"))
1955 (setenv "CROSS_CPLUS_INCLUDE_PATH" (getenv "CPLUS_INCLUDE_PATH"))
1956 (setenv "CROSS_LIBRARY_PATH" (getenv "LIBRARY_PATH"))
1957 (for-each
1958 (lambda (env-name)
1959 (let* ((env-value (getenv env-name))
1960 (search-path (search-path-as-string->list env-value))
1961 (new-search-path (filter (lambda (e) (not (cross? e)))
1962 search-path))
1963 (new-env-value (list->search-path-as-string
1964 new-search-path ":")))
1965 (setenv env-name new-env-value)))
1966 '("C_INCLUDE_PATH" "CPLUS_INCLUDE_PATH" "LIBRARY_PATH"))
1967 #t))
1968 (replace 'build
1969 (lambda* (#:key make-flags #:allow-other-keys)
1970 (zero? (apply system* "make" "tools" "misc" make-flags))))
1971 (add-after 'build 'build-armhf
1972 (lambda* (#:key make-flags #:allow-other-keys)
1973 (zero? (apply system* "make" "target-tools" make-flags))))
b054b26a
DM
1974 (replace 'install
1975 (lambda* (#:key make-flags #:allow-other-keys)
1976 (zero? (apply system* "make" "install-all" "install-misc"
1977 make-flags)))))))
b04ca7a1
DM
1978 (home-page "https://github.com/linux-sunxi/sunxi-tools")
1979 (synopsis "Hardware management tools for Allwinner computers")
1980 (description "This package contains tools for Allwinner devices:
1981@enumerate
1982@item @command{sunxi-fexc}, @command{bin2fex}, @command{fex2bin}: Compile
1983a textual description of a board (.fex) to a binary representation (.bin).
1984@item @command{sunxi-fel}: Puts an Allwinner device into FEL mode which
1985makes it register as a special USB device (rather than USB host).
1986You can then connect it to another computer and flash it from there.
1987@item @command{sunxi-nand-part}: Partitions NAND flash.
1988@item @command{sunxi-bootinfo}: Reads out boot0 and boot1 (Allwinner
1989bootloader) parameters.
1990@item @command{sunxi-pio}: Sets GPIO parameters and oscillates a GPIO
1991in order to be able to find it.
1992@item @command{sunxi-meminfo}: Prints memory bus settings.
b054b26a 1993@item @command{sunxi-nand-image-builder}: Prepares raw NAND images.
b04ca7a1
DM
1994@end enumerate")
1995 (license license:gpl2+)))
a054777e 1996
1997(define-public sedsed
1998 (package
1999 (name "sedsed")
2000 (version "1.0")
2001 (source
2002 (origin
2003 (method url-fetch)
2004 (uri (string-append "https://github.com/aureliojargas/sedsed/"
2005 "archive/v" version ".tar.gz"))
2006 (file-name (string-append name "-" version ".tar.gz"))
2007 (sha256
2008 (base32
2009 "0139jkqvm8ipiwfj7k69ry2f9b1ffgpk79arpz4r7w9kf6h23bnh"))))
2010 (build-system python-build-system)
2011 (arguments
2012 `(#:tests? #f ; No tests.
2013 #:python ,python-2
2014 #:phases
2015 (modify-phases %standard-phases
2016 (add-after 'unpack 'patch-sed-in
2017 (lambda _
2018 (substitute* "sedsed.py"
2019 (("sedbin = 'sed'")
2020 (string-append "sedbin = '" (which "sed") "'")))
2021 #t))
2022 (delete 'build)
2023 (replace 'install
2024 (lambda* (#:key outputs #:allow-other-keys)
2025 (let* ((out (assoc-ref outputs "out"))
2026 (bin (string-append out "/bin")))
2027 ;; Just one file to copy around
2028 (install-file "sedsed.py" bin)
2029 #t)))
2030 (add-after 'install 'symlink
2031 ;; Create 'sedsed' symlink to "sedsed.py".
2032 (lambda* (#:key outputs #:allow-other-keys)
2033 (let* ((out (assoc-ref outputs "out"))
2034 (bin (string-append out "/bin"))
2035 (sed (string-append bin "/sedsed"))
2036 (sedpy (string-append bin "/sedsed.py")))
2037 (symlink sedpy sed)
2038 #t))))))
2039 (home-page "http://aurelio.net/projects/sedsed")
2040 (synopsis "Sed sed scripts")
2041 (description
2042 "@code{sedsed} can debug, indent, tokenize and HTMLize your sed(1) script.
2043
2044In debug mode it reads your script and add extra commands to it. When
2045executed you can see the data flow between the commands, revealing all the
2046magic sed does on its internal buffers.
2047
2048In indent mode your script is reformatted with standard spacing.
2049
2050In tokenize mode you can see the elements of every command you use.
2051
2052In HTMLize mode your script is converted to a beautiful colored HTML file,
2053with all the commands and parameters identified for your viewing pleasure.
2054
2055With sedsed you can master any sed script. No more secrets, no more hidden
2056buffers.")
2057 (license license:expat)))
d10fa5c7
RW
2058
2059(define-public intel-gpu-tools
2060 (package
2061 (name "intel-gpu-tools")
2062 (version "1.18")
2063 (source (origin
2064 (method url-fetch)
2065 (uri (string-append "https://cgit.freedesktop.org/xorg/app/"
2066 "intel-gpu-tools/snapshot/"
2067 "intel-gpu-tools-" version ".tar.gz"))
2068 (sha256
2069 (base32
2070 "0w7djk0y5w76hzn1b3cm39zd5c6w9za1wfn80wd857h0v313rzq3"))))
2071 (build-system gnu-build-system)
2072 (arguments
2073 `(#:tests? #f ; many of the tests try to load kernel modules
2074 #:phases
2075 (modify-phases %standard-phases
2076 (add-after 'unpack 'autogen
2077 (lambda _
2078 ;; Don't run configure in this phase
2079 (setenv "NOCONFIGURE" "1")
2080 (zero? (system* "sh" "autogen.sh")))))))
2081 (inputs
2082 `(("util-macros" ,util-macros)
2083 ("libdrm" ,libdrm)
2084 ("libpciaccess" ,libpciaccess)
2085 ("kmod" ,kmod)
2086 ("procps" ,procps)
2087 ("cairo" ,cairo)
2088 ("libunwind" ,libunwind)
2089 ("libxrandr" ,libxrandr)
2090 ("glib" ,glib)))
2091 (native-inputs
2092 `(("autoconf" ,autoconf)
2093 ("automake" ,automake)
2094 ("libtool" ,libtool)
2095 ("pkg-config" ,pkg-config)))
2096 (home-page "https://cgit.freedesktop.org/xorg/app/intel-gpu-tools/")
2097 (synopsis "Tools for development and testing of the Intel DRM driver")
2098 (description "Intel GPU Tools is a collection of tools for development and
2099testing of the Intel DRM driver. There are many macro-level test suites that
2100get used against the driver, including xtest, rendercheck, piglit, and
2101oglconform, but failures from those can be difficult to track down to kernel
2102changes, and many require complicated build procedures or specific testing
2103environments to get useful results. Therefore, Intel GPU Tools includes
2104low-level tools and tests specifically for development and testing of the
2105Intel DRM Driver.")
2106 (license license:expat)))
c1aba1a7 2107
b611f9c2
BS
2108(define-public fabric
2109 (package
2110 (name "fabric")
f58be417 2111 (version "1.13.2")
b611f9c2
BS
2112 (source
2113 (origin
2114 (method url-fetch)
2115 (uri (pypi-uri "Fabric" version))
2116 (sha256
2117 (base32
f58be417 2118 "0k944dxr41whw7ib6380q9x15wyskx7fqni656icdn8rzshn9bwq"))))
b611f9c2
BS
2119 (build-system python-build-system)
2120 (arguments
f58be417 2121 `(#:python ,python-2)) ; Python 2 only
1b5b24c9 2122 (native-inputs
f58be417
TGR
2123 `(("python2-fudge" ,python2-fudge)
2124 ("python2-jinja2" ,python2-jinja2)
2125 ("python2-nose" ,python2-nose)))
b611f9c2 2126 (propagated-inputs
b611f9c2
BS
2127 `(("python2-paramiko" ,python2-paramiko)))
2128 (home-page "http://fabfile.org")
2129 (synopsis "Simple Pythonic remote execution and deployment tool")
2130 (description
2131 "Fabric is designed to upload files and run shell commands on a number of
2132servers in parallel or serially. These commands are grouped in tasks (which
2133are regular Python functions) and specified in a @dfn{fabfile}.
2134
2135It is similar to Capistrano, except it's implemented in Python and doesn't
2136expect you to be deploying Rails applications. Fabric is a simple, Pythonic
2137tool for remote execution and deployment.")
2138 (license license:bsd-2)))
6e75ea48
EJ
2139
2140(define-public neofetch
2141 (package
2142 (name "neofetch")
407b086b 2143 (version "3.2.0")
6e75ea48
EJ
2144 (source (origin
2145 (method url-fetch)
2146 (uri (string-append "https://github.com/dylanaraps/neofetch/"
2147 "archive/" version ".tar.gz"))
2148 (file-name (string-append name "-" version ".tar.gz"))
2149 (sha256
2150 (base32
407b086b 2151 "07a32rzmch51znxspzyc7zyaldmr383v70b49wmnjdjs2qfdbv3a"))))
6e75ea48
EJ
2152 (build-system gnu-build-system)
2153 (arguments
2154 '(#:tests? #f ; there are no tests
2155 #:make-flags
2156 (list (string-append "PREFIX=" %output))
2157 #:phases
2158 (modify-phases %standard-phases
2159 (add-after 'unpack 'patch-target-directories
2160 (lambda* (#:key outputs #:allow-other-keys)
2161 (let ((out (assoc-ref outputs "out")))
2162 (substitute* "Makefile"
2163 (("\\$\\(DESTDIR\\)/etc/")
2164 "$(PREFIX)/etc/"))
2165 (substitute* "neofetch"
2166 (("\"/etc/neofetch")
2167 (string-append "\"" out "/etc/neofetch"))
2168 (("\"/usr/share/neofetch")
af79852c 2169 (string-append "\"" out "/share/neofetch"))))
6e75ea48
EJ
2170 #t))
2171 (delete 'configure))))
2172 (home-page "https://github.com/dylanaraps/neofetch")
2173 (synopsis "System info script")
2174 (description "Neofetch is a CLI system information tool written in Bash.
2175Neofetch displays information about your system next to an image, your OS
2176logo, or any ASCII file of your choice. The main purpose of Neofetch is to be
2177used in screenshots to show other users what operating system or distribution
2178you are running, what theme or icon set you are using, etc.")
2179 (license license:expat)))
a76ca052
EJ
2180
2181(define-public nnn
2182 (package
2183 (name "nnn")
56ab0f0c 2184 (version "1.3")
a76ca052
EJ
2185 (source (origin
2186 (method url-fetch)
2187 (uri (string-append "https://github.com/jarun/nnn/"
2188 "archive/v" version ".tar.gz"))
2189 (file-name (string-append name "-" version ".tar.gz"))
2190 (sha256
2191 (base32
56ab0f0c 2192 "0sivgcmg3hihz15v2wgbxnd0icn06pyvvqdqh8x0mwkhvm434fpb"))))
a76ca052
EJ
2193 (build-system gnu-build-system)
2194 (inputs `(("ncurses" ,ncurses)
2195 ("readline" ,readline)))
2196 (arguments
2197 '(#:tests? #f ; no tests
2198 #:phases
2199 ;; We do not provide `ncurses.h' within an `ncursesw'
2200 ;; sub-directory, so patch the source accordingly. See
2201 ;; <http://bugs.gnu.org/19018>.
2202 ;; Thanks to gtypist maintainer.
2203 (modify-phases %standard-phases
2204 (add-after 'unpack 'patch-curses-lib
2205 (lambda* (#:key outputs #:allow-other-keys)
2206 (let ((out (assoc-ref outputs "out")))
2207 (substitute* "Makefile"
2208 (("-lncursesw")
2209 "-lncurses"))
2210 (substitute* "nnn.c"
2211 (("ncursesw\\/curses.h")
2212 "ncurses.h")))
2213 #t))
2214 (delete 'configure))
2215 #:make-flags
2216 (list
2217 (string-append "PREFIX="
2218 (assoc-ref %outputs "out"))
2219 (string-append "-Wl,-rpath="
2220 %output "/lib")
2221 "CC=gcc")))
2222 (home-page "https://github.com/jarun/nnn")
2223 (synopsis "Terminal file browser")
2224 (description "@command{nnn} is a fork of @command{noice}, a blazing-fast
2225lightweight terminal file browser with easy keyboard shortcuts for
2226navigation, opening files and running tasks. There is no config file and
2227mime associations are hard-coded. The incredible user-friendliness and speed
2228make it a perfect utility on modern distros.")
2229 (license license:bsd-2)))
58989684
CAW
2230
2231(define-public thermald
2232 (package
2233 (name "thermald")
2234 (version "1.6")
2235 (source
2236 (origin
2237 (method url-fetch)
2238 (uri (string-append "https://github.com/01org/thermal_daemon/archive/v"
2239 version ".tar.gz"))
1b6d3b7a 2240 (file-name (string-append name "-" version ".tar.gz"))
58989684
CAW
2241 (sha256 (base32
2242 "14klz9fnvi9jdlaqwrp61xa5nh051n8ykrs1fh1wxd7j66qf2fn6"))))
2243 (build-system gnu-build-system)
2244 (arguments
2245 `(#:phases (modify-phases %standard-phases
2246 (add-after
2247 'unpack 'autogen.sh-and-fix-paths
2248 (lambda* (#:key outputs #:allow-other-keys)
2249 (let ((out (assoc-ref outputs "out")))
2250 ;; upstartconfir is hardcoded to /etc/init and the build
2251 ;; system tries to mkdir that. We don't even need upstart
2252 ;; files at all; this is a fast and kludgy workaround
2253 (substitute* "data/Makefile.am"
2254 (("upstartconfdir = /etc/init")
2255 (string-append "upstartconfdir = "
2256 out "/etc/init")))
2257 ;; Now run autogen
2258 (zero? (system* "sh" "autogen.sh"))))))
2259 #:configure-flags
2260 (let ((out (assoc-ref %outputs "out")))
2261 (list (string-append "--sysconfdir="
2262 out "/etc")
2263 (string-append "--with-udev-dir="
2264 out "/lib/udev")
2265 (string-append "--with-dbus-sys-dir="
2266 out "/etc/dbus-1/system.d")
2267 "--localstatedir=/var"))))
2268 (native-inputs
2269 `(("autoconf" ,autoconf)
2270 ("automake" ,automake)
2271 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2272 ("pkg-config" ,pkg-config)))
2273 (inputs
2274 `(("dbus-glib" ,dbus-glib)
2275 ("libxml2" ,libxml2)))
2276 (home-page "https://01.org/linux-thermal-daemon/")
2277 (synopsis "CPU scaling for thermal management")
2278 (description "The Linux Thermal Daemon helps monitor and control temperature
2279on systems running the Linux kernel.")
86ee7625
EF
2280 ;; arm and aarch64 don't have cpuid.h
2281 (supported-systems '("i686-linux" "x86_64-linux"))
58989684 2282 (license license:gpl2+)))