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