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