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