gnu: emacs-sly: Update to 20200228.
[jackhill/guix/guix.git] / gnu / packages / networking.scm
CommitLineData
f6d9b3de 1;;; GNU Guix --- Functional package management for GNU
5f645557 2;;; Copyright © 2014, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
a8253fbe 3;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
a2b2aebe 4;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
61253c4f 5;;; Copyright © 2015, 2016, 2017 Stefan Reichör <stefan@xsteve.at>
95146623 6;;; Copyright © 2016 Raimon Grau <raimonster@gmail.com>
a1da1dee 7;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
42ff54d5 8;;; Copyright © 2016 John Darrington <jmd@gnu.org>
7536321e 9;;; Copyright © 2016, 2017, 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
d85b398b 10;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
47956fa0 11;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
2913a942 12;;; Copyright © 2016, 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
b747718e 13;;; Copyright © 2016 Benz Schenk <benz.schenk@uzh.ch>
38510546 14;;; Copyright © 2016, 2017 Pjotr Prins <pjotr.guix@thebird.nl>
3cd501c8 15;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
cc24bf98 16;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
2ff17f06 17;;; Copyright © 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
3c85058c 18;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
dbf87ecb 19;;; Copyright © 2017, 2019 Gábor Boskovits <boskovits@gmail.com>
167a541f 20;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
5f645557 21;;; Copyright © 2018 Adam Van Ymeren <adam@vany.ca>
1170198d 22;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
d282fee5 23;;; Copyright © 2018 Tonton <tonton@riseup.net>
a234ae38 24;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
f6c87714 25;;; Copyright © 2018 Theodoros Foradis <theodoros@foradis.org>
a8253fbe 26;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
8daa8326 27;;; Copyright © 2018, 2020 Oleg Pykhalov <go.wigust@gmail.com>
4715f92e 28;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
523533ed 29;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
2e8c912f 30;;; Copyright © 2019 Vasile Dumitrascu <va511e@yahoo.com>
ac629e62 31;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
a83e2a01 32;;; Copyright © 2019 Timotej Lazar <timotej.lazar@araneo.si>
b72c22c0 33;;; Copyright © 2019 Brice Waegeneire <brice@waegenei.re>
b080b6d9 34;;; Copyright © 2019 Tonton <tonton@riseup.net>
079ec547 35;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
13d79b64 36;;; Copyright © 2019 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
ad54d6c9 37;;; Copyright © 2019 Daniel Schaefer <git@danielschaefer.me>
a0993c29 38;;; Copyright © 2019 Diego N. Barbato <dnbarbato@posteo.de>
b51863d2 39;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
96945cab 40;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
f6d9b3de
LC
41;;;
42;;; This file is part of GNU Guix.
43;;;
44;;; GNU Guix is free software; you can redistribute it and/or modify it
45;;; under the terms of the GNU General Public License as published by
46;;; the Free Software Foundation; either version 3 of the License, or (at
47;;; your option) any later version.
48;;;
49;;; GNU Guix is distributed in the hope that it will be useful, but
50;;; WITHOUT ANY WARRANTY; without even the implied warranty of
51;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
52;;; GNU General Public License for more details.
53;;;
54;;; You should have received a copy of the GNU General Public License
55;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
56
8a413bca 57(define-module (gnu packages networking)
f6d9b3de
LC
58 #:use-module ((guix licenses) #:prefix license:)
59 #:use-module (guix packages)
60 #:use-module (guix download)
491f7fc0 61 #:use-module (guix git-download)
167a541f 62 #:use-module (guix build-system cmake)
834a2fc1 63 #:use-module (guix build-system glib-or-gtk)
f6d9b3de 64 #:use-module (guix build-system gnu)
523533ed 65 #:use-module (guix build-system go)
af5faef9 66 #:use-module (guix build-system perl)
9e6c7c42 67 #:use-module (guix build-system python)
ad54d6c9 68 #:use-module (guix build-system trivial)
96945cab 69 #:use-module (guix utils)
8d60dd71 70 #:use-module (gnu packages)
834a2fc1
NG
71 #:use-module (gnu packages admin)
72 #:use-module (gnu packages adns)
82ee141b 73 #:use-module (gnu packages algebra)
834a2fc1 74 #:use-module (gnu packages audio)
de5308f5 75 #:use-module (gnu packages autotools)
5f645557 76 #:use-module (gnu packages base)
834a2fc1 77 #:use-module (gnu packages bison)
d597dda6 78 #:use-module (gnu packages boost)
998afc36 79 #:use-module (gnu packages check)
4fb5f830 80 #:use-module (gnu packages code)
834a2fc1 81 #:use-module (gnu packages compression)
13d79b64 82 #:use-module (gnu packages cpp)
1170198d 83 #:use-module (gnu packages crypto)
9e6c7c42 84 #:use-module (gnu packages curl)
c2700e78 85 #:use-module (gnu packages dejagnu)
de5308f5 86 #:use-module (gnu packages documentation)
834a2fc1 87 #:use-module (gnu packages flex)
82ee141b 88 #:use-module (gnu packages gettext)
961012a0 89 #:use-module (gnu packages glib)
167a541f 90 #:use-module (gnu packages gnome)
834a2fc1
NG
91 #:use-module (gnu packages gnupg)
92 #:use-module (gnu packages gtk)
1170198d 93 #:use-module (gnu packages image)
9c798f90 94 #:use-module (gnu packages libidn)
834a2fc1
NG
95 #:use-module (gnu packages linux)
96 #:use-module (gnu packages lua)
5f645557 97 #:use-module (gnu packages multiprecision)
89e34644 98 #:use-module (gnu packages kerberos)
834a2fc1 99 #:use-module (gnu packages ncurses)
e0fa6413
PN
100 #:use-module (gnu packages nettle)
101 #:use-module (gnu packages password-utils)
d85b398b 102 #:use-module (gnu packages pcre)
834a2fc1 103 #:use-module (gnu packages perl)
5ccde207 104 #:use-module (gnu packages perl-check)
998afc36 105 #:use-module (gnu packages pkg-config)
13d79b64 106 #:use-module (gnu packages pretty-print)
834a2fc1 107 #:use-module (gnu packages python)
a68b4514 108 #:use-module (gnu packages python-web)
44d10b1f 109 #:use-module (gnu packages python-xyz)
d016b60f 110 #:use-module (gnu packages qt)
c2700e78 111 #:use-module (gnu packages readline)
e0fa6413 112 #:use-module (gnu packages serialization)
cd0322a3 113 #:use-module (gnu packages sqlite)
d016b60f 114 #:use-module (gnu packages ssh)
4fb5f830
TGR
115 #:use-module (gnu packages textutils)
116 #:use-module (gnu packages tls)
af5faef9 117 #:use-module (gnu packages valgrind)
dbf87ecb 118 #:use-module (gnu packages web)
1170198d 119 #:use-module (gnu packages wxwidgets)
b3623b6f 120 #:use-module (gnu packages xml)
af5faef9 121 #:use-module (ice-9 match))
f6d9b3de 122
f3fda298
TGR
123;; The gnu.org ‘home’ for this GNU project is a directory listing with 1.6.0 as
124;; the latest version. The author's git repository, mentioned in the 1.6.0
125;; README and otherwise legit-looking, contains a proper 1.7.0 release tarball
126;; with many OUI updates. Use it, even though it's also several years old now.
c791efde
JD
127(define-public macchanger
128 (package
129 (name "macchanger")
f3fda298
TGR
130 (version "1.7.0")
131 (source
132 (origin
133 (method url-fetch)
134 (uri (string-append "https://github.com/alobbs/macchanger/"
135 "releases/download/" version "/"
136 name "-" version ".tar.gz"))
137 (sha256
138 (base32 "1gs5m0jxyprdp00w2qkbnaqm3ilkjz0q1gqdg4nzdm8g4xy73qns"))))
c791efde 139 (build-system gnu-build-system)
6fd52309 140 (home-page "https://www.gnu.org/software/macchanger/")
a3947cb1 141 (synopsis "Viewing and manipulating MAC addresses of network interfaces")
c791efde
JD
142 (description "GNU MAC Changer is a utility for viewing and changing MAC
143addresses of networking devices. New addresses may be set explicitly or
144randomly. They can include MAC addresses of the same or other hardware vendors
38510546 145or, more generally, MAC addresses of the same category of hardware.")
c791efde
JD
146 (license license:gpl2+)))
147
1e61e22f
TUBK
148(define-public miredo
149 (package
150 (name "miredo")
151 (version "1.2.6")
152 (source (origin
153 (method url-fetch)
154 (uri (string-append "http://www.remlab.net/files/miredo/miredo-"
155 version ".tar.xz"))
156 (sha256
157 (base32
158 "0j9ilig570snbmj48230hf7ms8kvcwi2wblycqrmhh85lksd49ps"))))
159 (build-system gnu-build-system)
160 (arguments
161 '(#:phases
162 (modify-phases %standard-phases
163 ;; The checkconf test in src/ requires network access.
164 (add-before
165 'check 'disable-checkconf-test
166 (lambda _
167 (substitute* "src/Makefile"
366c1cbb
MW
168 (("^TESTS = .*") "TESTS = \n"))
169 #t)))))
1e61e22f
TUBK
170 (home-page "http://www.remlab.net/miredo/")
171 (synopsis "Teredo IPv6 tunneling software")
172 (description
173 "Miredo is an implementation (client, relay, server) of the Teredo
174specification, which provides IPv6 Internet connectivity to IPv6 enabled hosts
175residing in IPv4-only networks, even when they are behind a NAT device.")
176 (license license:gpl2+)))
177
f6d9b3de
LC
178(define-public socat
179 (package
180 (name "socat")
e1926802 181 (version "1.7.3.4")
f6d9b3de
LC
182 (source (origin
183 (method url-fetch)
184 (uri (string-append
185 "http://www.dest-unreach.org/socat/download/socat-"
186 version ".tar.bz2"))
187 (sha256
188 (base32
e1926802 189 "1z7xgnwiqpcv1j6aghhj9nqbx7cg3gpc4n9j7vi9hm7nhv5788wp"))))
f6d9b3de 190 (build-system gnu-build-system)
e1926802 191 (arguments '(#:tests? #f)) ; no test suite
f6d9b3de
LC
192 (inputs `(("openssl" ,openssl)))
193 (home-page "http://www.dest-unreach.org/socat/")
194 (synopsis
195 "Open bidirectional communication channels from the command line")
196 (description
197 "socat is a relay for bidirectional data transfer between two independent
198data channels---files, pipes, devices, sockets, etc. It can create
199\"listening\" sockets, named pipes, and pseudo terminals.
200
201socat can be used, for instance, as TCP port forwarder, as a shell interface
202to UNIX sockets, IPv6 relay, for redirecting TCP oriented programs to a serial
203line, to logically connect serial lines on different computers, or to
204establish a relatively secure environment (su and chroot) for running client
e881752c 205or server shell scripts with network connections.")
f6d9b3de 206 (license license:gpl2)))
603090d8 207
c4947d0e
JD
208(define-public tcp-wrappers
209 (package
210 (name "tcp-wrappers")
211 (version "7.6")
212 (source (origin
213 (method url-fetch)
214 (uri (string-append
215 "ftp://ftp.porcupine.org/pub/security/tcp_wrappers_"
216 version ".tar.gz"))
217 (sha256
218 (base32
219 "0p9ilj4v96q32klavx0phw9va21fjp8vpk11nbh6v2ppxnnxfhwm"))))
220 (build-system gnu-build-system)
221 (arguments
222 `(#:phases
223 (modify-phases %standard-phases
224 (delete 'configure) ; there is no configure script
225 (delete 'check) ; there are no tests
226 (replace 'build
227 (lambda _
228 (chmod "." #o755)
229 ;; Upstream doesn't generate a shared library. So we have to do it.
230 (setenv "CC" "gcc -fno-builtin -fPIC")
231 (substitute* "Makefile"
232 (("^(all[^\n]*)" line) (string-append line " libwrap.so\n
233libwrap.so: $(LIB_OBJ)\n
234\tgcc -shared $^ -o $@\n")))
235 ;; Deal with some gcc breakage.
236 (substitute* "percent_m.c"
237 (("extern char .sys_errlist.*;") ""))
238 (substitute* "scaffold.c"
239 (("extern char .malloc.*;") ""))
240 ;; This, believe it or not, is the recommended way to build!
366c1cbb 241 (invoke "make" "REAL_DAEMON_DIR=/etc" "linux")))
c4947d0e
JD
242 ;; There is no make install stage, so we have to do it ourselves.
243 (replace 'install
244 (lambda _
245 (let ((out (assoc-ref %outputs "out"))
246 (man-pages `("hosts_access.3"
247 "hosts_access.5"
248 "hosts_options.5"
249 "tcpd.8"
250 "tcpdchk.8"
251 "tcpdmatch.8"))
252 (libs `("libwrap.a"
253 "libwrap.so"))
254 (headers `("tcpd.h"))
255 (bins `("safe_finger"
256 "tcpd"
257 "tcpdchk"
258 "tcpdmatch"
259 "try-from")))
260 (for-each
261 (lambda (x)
262 (install-file x (string-append out "/include")))
263 headers)
264 (for-each
265 (lambda (x)
266 (install-file x (string-append out "/share/man/man"
267 (string-take-right x 1))))
268 man-pages)
269 (for-each
270 (lambda (x)
271 (install-file x (string-append out "/lib/")))
272 libs)
273 (for-each
274 (lambda (x)
275 (install-file x (string-append out "/bin/")))
366c1cbb
MW
276 bins))
277 #t)))))
c4947d0e
JD
278 (home-page "http://www.porcupine.org")
279 (synopsis "Monitor and filter incoming requests for network services")
280 (description "With this package you can monitor and filter incoming requests for
281network services. It includes a library which may be used by daemons to
282transparently check connection attempts against an access control list.")
283 (license (license:non-copyleft "file://DISCLAIMER"
284 "See the file DISCLAIMER in the distribution."))))
285
286
603090d8
RW
287(define-public zeromq
288 (package
289 (name "zeromq")
5d1f5b30 290 (version "4.3.2")
603090d8
RW
291 (source (origin
292 (method url-fetch)
5d1f5b30
MB
293 (uri (string-append "https://github.com/zeromq/libzmq/releases"
294 "/download/v" version "/zeromq-" version ".tar.gz"))
603090d8
RW
295 (sha256
296 (base32
5d1f5b30 297 "0qzp80ky4y2k7k1ya09v9gkivvfbz2km813snrb8jhnn634bbmzb"))))
603090d8 298 (build-system gnu-build-system)
5fbba846 299 (home-page "https://zeromq.org")
603090d8
RW
300 (synopsis "Library for message-based applications")
301 (description
302 "The 0MQ lightweight messaging kernel is a library which extends the
303standard socket interfaces with features traditionally provided by specialized
304messaging middle-ware products. 0MQ sockets provide an abstraction of
305asynchronous message queues, multiple messaging patterns, message
306filtering (subscriptions), seamless access to multiple transport protocols and
307more.")
308 (license license:lgpl3+)))
a2b2aebe 309
433dc746
CB
310(define-public czmq
311 (package
312 (name "czmq")
f02ab17b 313 (version "4.2.0")
433dc746
CB
314 (source (origin
315 (method url-fetch)
316 (uri (string-append
317 "https://github.com/zeromq/" name
318 "/releases/download/v" version
319 "/" name "-" version ".tar.gz"))
320 (sha256
321 (base32
f02ab17b 322 "1szciz62sk3fm4ga9qjpxz0n0lazvphm32km95bq92ncng12kayg"))))
433dc746
CB
323 (build-system gnu-build-system)
324 (arguments
f02ab17b
MB
325 '(#:configure-flags '("--enable-drafts")
326 #:phases (modify-phases %standard-phases
327 (add-before 'check 'patch-tests
328 (lambda _
329 ;; XXX FIXME: Disable the zproc test, which fails on some
330 ;; hardware: <https://github.com/zeromq/czmq/issues/2007>.
331 (substitute* "src/czmq_selftest.c"
332 (("\\{ \"zproc\", zproc_test.*")
333 ""))
334 #t)))))
433dc746
CB
335 (inputs
336 `(("zeromq" ,zeromq)))
337 (home-page "http://zeromq.org")
338 (synopsis "High-level C bindings for ØMQ")
339 (description
340 "czmq provides bindings for the ØMQ core API that hides the differences
341between different versions of ØMQ.")
342 (license license:mpl2.0)))
343
f6c87714
TF
344(define-public cppzmq
345 (let ((revision "0")
346 (commit "d9f0f016c07046742738c65e1eb84722ae32d7d4"))
347 (package
348 (name "cppzmq")
349 (version (string-append "4.2.2-" revision "."
350 (string-take commit 7)))
351 (source (origin
352 (method git-fetch)
353 (uri (git-reference
354 (url "https://github.com/zeromq/cppzmq")
355 (commit commit)))
356 (sha256
357 (base32
358 "1gmqlm00y6xpa5m6d4ajq3ww63n2w7h4sy997wj81vcqmqx45b1f"))
359 (file-name (string-append name "-" version "-checkout"))))
360 (build-system cmake-build-system)
361 (arguments '(#:tests? #f)) ; No tests.
362 (native-inputs
363 `(("pkg-config" ,pkg-config)))
364 (inputs
365 `(("zeromq" ,zeromq)))
366 (home-page "http://zeromq.org")
367 (synopsis "C++ bindings for the ØMQ messaging library")
368 (description
369 "This package provides header-only C++ bindings for ØMQ. The header
370files contain direct mappings of the abstractions provided by the ØMQ C API.")
371 (license license:expat))))
372
2c1286f4
SB
373(define-public librdkafka
374 (package
375 (name "librdkafka")
376 (version "0.9.1")
377 (source (origin
378 (method url-fetch)
379 (uri (string-append
380 "https://github.com/edenhill/librdkafka/archive/"
381 version ".tar.gz"))
382 (file-name (string-append name "-" version ".tar.gz"))
383 (sha256
384 (base32
385 "10ldx7g7ymmg17snzx78vy4n8ma1rjx0agzi34g15j2fk867xmas"))))
386 (build-system gnu-build-system)
387 (arguments
388 '(#:phases
389 (modify-phases %standard-phases
390 (replace 'configure
391 ;; its custom configure script doesn't understand 'CONFIG_SHELL'.
392 (lambda* (#:key outputs #:allow-other-keys)
393 (let ((out (assoc-ref outputs "out")))
394 ;; librdkafka++.so lacks RUNPATH for librdkafka.so
395 (setenv "LDFLAGS"
396 (string-append "-Wl,-rpath=" out "/lib"))
366c1cbb
MW
397 (invoke "./configure"
398 (string-append "--prefix=" out))))))))
2c1286f4
SB
399 (native-inputs
400 `(("python" ,python-wrapper)))
401 (propagated-inputs
402 `(("zlib" ,zlib))) ; in the Libs.private field of rdkafka.pc
403 (home-page "https://github.com/edenhill/librdkafka")
404 (synopsis "Apache Kafka C/C++ client library")
405 (description
406 "librdkafka is a C library implementation of the Apache Kafka protocol,
407containing both Producer and Consumer support.")
408 (license license:bsd-2)))
409
a2b2aebe
MW
410(define-public libndp
411 (package
412 (name "libndp")
9526d861 413 (version "1.7")
a2b2aebe
MW
414 (source (origin
415 (method url-fetch)
416 (uri (string-append "http://libndp.org/files/"
417 name "-" version ".tar.gz"))
418 (sha256
419 (base32
9526d861 420 "1dlinhl39va00v55qygjc9ap77yqf7xvn4rwmvdr49xhzzxhlj1c"))))
a2b2aebe
MW
421 (build-system gnu-build-system)
422 (home-page "http://libndp.org/")
423 (synopsis "Library for Neighbor Discovery Protocol")
424 (description
425 "libndp contains a library which provides a wrapper for IPv6 Neighbor
426Discovery Protocol. It also provides a tool named ndptool for sending and
427receiving NDP messages.")
428 (license license:lgpl2.1+)))
5df2316d
MW
429
430(define-public ethtool
431 (package
432 (name "ethtool")
070dc950 433 (version "5.4")
5df2316d
MW
434 (source (origin
435 (method url-fetch)
436 (uri (string-append "mirror://kernel.org/software/network/"
956a14b4 437 "ethtool/ethtool-" version ".tar.xz"))
5df2316d
MW
438 (sha256
439 (base32
070dc950 440 "0srbqp4a3x9ryrbm5q854375y04ni8j0bmsrl89nmsyn4x4ixy12"))))
5df2316d
MW
441 (build-system gnu-build-system)
442 (home-page "https://www.kernel.org/pub/software/network/ethtool/")
443 (synopsis "Display or change Ethernet device settings")
444 (description
445 "ethtool can be used to query and change settings such as speed,
446auto-negotiation and checksum offload on many network devices, especially
447Ethernet devices.")
448 (license license:gpl2)))
24a848c8
SR
449
450(define-public ifstatus
451 (package
452 (name "ifstatus")
453 (version "1.1.0")
454 (source (origin
455 (method url-fetch)
de67e922
LF
456 (uri (string-append "mirror://sourceforge/ifstatus/ifstatus/"
457 "ifstatus%20v" version "/ifstatus-v"
24a848c8
SR
458 version ".tar.gz"))
459 (sha256
460 (base32
461 "045cbsq9ps32j24v8y5hpyqxnqn9mpaf3mgvirlhgpqyb9jsia0c"))
462 (modules '((guix build utils)))
463 (snippet
6cbee49d
MW
464 '(begin
465 (substitute* "Main.h"
466 (("#include <stdio.h>")
467 "#include <stdio.h>\n#include <stdlib.h>"))
468 #t))))
24a848c8
SR
469 (build-system gnu-build-system)
470 (arguments
471 '(#:tests? #f ; no "check" target
472 #:phases
473 (modify-phases %standard-phases
474 (delete 'configure) ; no configure script
475 (replace 'install
476 (lambda* (#:key outputs #:allow-other-keys)
477 (let* ((out (assoc-ref outputs "out"))
478 (bin (string-append out "/bin")))
479 (mkdir-p bin)
480 (copy-file "ifstatus"
366c1cbb
MW
481 (string-append bin "/ifstatus")))
482 #t)))))
24a848c8
SR
483 (inputs `(("ncurses" ,ncurses)))
484 (home-page "http://ifstatus.sourceforge.net/graphic/index.html")
485 (synopsis "Text based network interface status monitor")
486 (description
487 "IFStatus is a simple, easy-to-use program for displaying commonly
8874f766 488needed/wanted real-time traffic statistics of multiple network
24a848c8
SR
489interfaces, with a simple and efficient view on the command line. It is
490intended as a substitute for the PPPStatus and EthStatus projects.")
8874f766 491 (license license:gpl2+)))
95146623
RG
492
493(define-public nload
494 (package
495 (name "nload")
496 (version "0.7.4")
497 (source (origin
498 (method url-fetch)
de67e922
LF
499 (uri (string-append "mirror://sourceforge/nload/nload/" version
500 "/nload-" version ".tar.gz"))
95146623
RG
501 (sha256
502 (base32
503 "1rb9skch2kgqzigf19x8bzk211jdfjfdkrcvaqyj89jy2pkm3h61"))))
504 (build-system gnu-build-system)
505 (inputs `(("ncurses" ,ncurses)))
506 (home-page "http://www.roland-riegel.de/nload/")
507 (synopsis "Realtime console network usage monitor")
508 (description
509 "Nload is a console application which monitors network traffic and
510bandwidth usage in real time. It visualizes the in- and outgoing traffic using
d1e4ad1b 511two graphs, and provides additional info like total amount of transferred data
95146623
RG
512and min/max network usage.")
513 (license license:gpl2+)))
998afc36
TGR
514
515(define-public iodine
516 (package
517 (name "iodine")
518 (version "0.7.0")
519 (source (origin
520 (method url-fetch)
521 (uri (string-append "http://code.kryo.se/" name "/"
522 name "-" version ".tar.gz"))
523 (sha256
524 (base32
525 "0gh17kcxxi37k65zm4gqsvbk3aw7yphcs3c02pn1c4s2y6n40axd"))))
526 (build-system gnu-build-system)
527 (arguments
528 '(#:phases
529 (modify-phases %standard-phases
530 (delete 'configure)
60880ac5
TGR
531 (add-before 'build 'fix-ifconfig-path
532 ;; This package works only with the net-tools version of ifconfig.
533 (lambda* (#:key inputs #:allow-other-keys)
534 (substitute* "src/tun.c"
535 (("PATH=[^ ]* ")
366c1cbb
MW
536 (string-append (assoc-ref inputs "net-tools") "/bin/")))
537 #t))
998afc36 538 (add-before 'check 'delete-failing-tests
60880ac5 539 ;; Avoid https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=802105.
998afc36
TGR
540 (lambda _
541 (substitute* "tests/common.c"
542 (("tcase_add_test\\(tc, \
543test_parse_format_ipv(4(|_listen_all|_mapped_ipv6)|6)\\);")
366c1cbb
MW
544 ""))
545 #t)))
998afc36
TGR
546 #:make-flags (list "CC=gcc"
547 (string-append "prefix=" (assoc-ref %outputs "out")))
548 #:test-target "test"))
60880ac5
TGR
549 (inputs `(("net-tools" ,net-tools)
550 ("zlib" ,zlib)))
998afc36
TGR
551 (native-inputs `(("check" ,check)
552 ("pkg-config" ,pkg-config)))
553 (home-page "http://code.kryo.se/iodine/")
554 (synopsis "Tunnel IPv4 data through a DNS server")
555 (description "Iodine tunnels IPv4 data through a DNS server. This
556can be useful in different situations where internet access is firewalled, but
557DNS queries are allowed. The bandwidth is asymmetrical, with limited upstream
558and up to 1 Mbit/s downstream.")
559 ;; src/md5.[ch] is released under the zlib license
560 (license (list license:isc license:zlib))))
834a2fc1 561
9c798f90 562(define-public whois
563 (package
564 (name "whois")
efd9742b 565 (version "5.5.6")
9c798f90 566 (source
567 (origin
568 (method url-fetch)
569 (uri (string-append "mirror://debian/pool/main/w/whois/"
cc08576d 570 "whois_" version ".tar.xz"))
9c798f90 571 (sha256
efd9742b 572 (base32 "0kpi981zjczvdcxfcq455c529vlaxa73x8kbm530z5b01h0fk8fb"))))
9c798f90 573 (build-system gnu-build-system)
9c798f90 574 (arguments
5ac1143d 575 `(#:tests? #f ; no test suite
9c798f90 576 #:make-flags (list "CC=gcc"
577 (string-append "prefix=" (assoc-ref %outputs "out")))
578 #:phases
579 (modify-phases %standard-phases
5ac1143d 580 (delete 'configure) ; no configure script
9c798f90 581 (add-before 'build 'setenv
582 (lambda _
583 (setenv "HAVE_ICONV" "1")
268b3802 584 #t)))))
9c798f90 585 (inputs
6ce76bdc 586 `(("libidn2" ,libidn2)))
9c798f90 587 (native-inputs
7c90d0f4 588 `(("gettext" ,gettext-minimal)
eb6263f2
MB
589 ("perl" ,perl)
590 ("pkg-config" ,pkg-config)))
5ac1143d
TGR
591 (synopsis "Intelligent client for the WHOIS directory service")
592 (description
593 "whois searches for an object in a @dfn{WHOIS} (RFC 3912) database.
594It is commonly used to look up the registered users or assignees of an Internet
595resource, such as a domain name, an IP address block, or an autonomous system.
596It can automatically select the appropriate server for most queries.
597
598For historical reasons, this package also includes @command{mkpasswd}, which
599encrypts passwords using @code{crypt(3)} and is unrelated to the Expect command
600of the same name.")
9c798f90 601 (home-page "https://github.com/rfc1036/whois")
602 (license license:gpl2+)))
603
834a2fc1
NG
604(define-public wireshark
605 (package
606 (name "wireshark")
dad3645b 607 (version "3.2.2")
834a2fc1
NG
608 (source
609 (origin
610 (method url-fetch)
611 (uri (string-append "https://www.wireshark.org/download/src/wireshark-"
d016b60f 612 version ".tar.xz"))
834a2fc1 613 (sha256
dad3645b 614 (base32 "0ygdxpz0i4jxp55fg9x4xcan093wycjb66yas073gviz9kpj6naz"))))
2b6ab17f 615 (build-system cmake-build-system)
834a2fc1 616 (arguments
2b6ab17f 617 `(#:phases
a234ae38 618 (modify-phases %standard-phases
2b6ab17f
NG
619 (add-after 'unpack 'remove-failing-test
620 ;; Test 31/32 fails with errors like "Program reassemble_test is
621 ;; not available". Skipping it for now.
a234ae38 622 (lambda _
2b6ab17f
NG
623 (substitute* "CMakeLists.txt"
624 (("suite_unittests" all) (string-append "# " all)))
625 #t)))
626 ;; Build process chokes during `validate-runpath' phase.
627 ;;
628 ;; Errors are like the following:
629 ;; "/gnu/store/...wireshark-3.0.0/lib/wireshark/plugins/3.0/epan/ethercat.so:
630 ;; error: depends on 'libwireshark.so.12', which cannot be found in
631 ;; RUNPATH". That is, "/gnu/store/...wireshark-3.0.0./lib" doesn't
632 ;; belong to RUNPATH.
633 ;;
634 ;; That’s not a problem in practice because "ethercat.so" is a plugin,
635 ;; so it’s dlopen’d by a process that already provides "libwireshark".
636 ;; For now, we disable this phase.
637 #:validate-runpath? #f))
638 (inputs
639 `(("c-ares" ,c-ares)
640 ("glib" ,glib)
641 ("gnutls" ,gnutls)
642 ("libcap" ,libcap)
643 ("libgcrypt" ,libgcrypt)
644 ("libnl" ,libnl)
645 ("libpcap" ,libpcap)
646 ("libssh" ,libssh)
647 ("libxml2" ,libxml2)
648 ("lz4" ,lz4)
649 ("lua" ,lua-5.2) ;Lua 5.3 unsupported
650 ("krb5" ,mit-krb5)
651 ("qtbase" ,qtbase)
652 ("qtmultimedia" ,qtmultimedia)
653 ("qtsvg" ,qtsvg)
654 ("sbc" ,sbc)
655 ("snappy" ,snappy)
656 ("zlib" ,zlib)))
657 (native-inputs
658 `(("bison" ,bison)
659 ("doxygen" ,doxygen)
660 ("flex" ,flex)
661 ("gettext" ,gettext-minimal)
662 ("perl" ,perl)
663 ("pkg-config" ,pkg-config)
664 ("python" ,python-wrapper)
665 ("qttools" ,qttools)))
d016b60f 666 (synopsis "Network traffic analyzer")
834a2fc1
NG
667 (description "Wireshark is a network protocol analyzer, or @dfn{packet
668sniffer}, that lets you capture and interactively browse the contents of
669network frames.")
d016b60f
NG
670 (home-page "https://www.wireshark.org/")
671 (license license:gpl2+)))
82ee141b 672
61253c4f
SR
673(define-public fping
674 (package
675 (name "fping")
bc9c3dc3 676 (version "4.2")
61253c4f
SR
677 (source
678 (origin
679 (method url-fetch)
680 (uri (string-append "https://fping.org/dist/fping-"
681 version ".tar.gz"))
682 (sha256
bc9c3dc3 683 (base32 "0jmnf4vmr43aiwk3h2b5qdsb95gxar8gz1yli8fswnm9nrs9ccvx"))))
61253c4f 684 (build-system gnu-build-system)
25706b8f 685 (home-page "https://fping.org/")
61253c4f
SR
686 (synopsis "Send ICMP ECHO_REQUEST packets to network hosts")
687 (description
688 "fping is a ping like program which uses the Internet Control Message
689Protocol (ICMP) echo request to determine if a target host is responding.
690fping differs from ping in that you can specify any number of targets on the
691command line, or specify a file containing the lists of targets to ping.
692Instead of sending to one target until it times out or replies, fping will
693send out a ping packet and move on to the next target in a round-robin
694fashion.")
695 (license license:expat)))
696
a68b4514
TGR
697(define-public gandi.cli
698 (package
699 (name "gandi.cli")
55c08305 700 (version "1.5")
a68b4514
TGR
701 (source
702 (origin
703 (method url-fetch)
704 (uri (pypi-uri name version))
705 (sha256
55c08305 706 (base32 "110wc9zgxsrvw4yzp21p0ian5lcf7vhcpxhnmsc4fg9pzl2bwxd5"))))
a68b4514
TGR
707 (build-system python-build-system)
708 (arguments
709 `(#:phases
710 (modify-phases %standard-phases
711 (add-after 'unpack 'embed-store-file-names
712 (lambda _
713 (substitute* (list "gandi/cli/modules/cert.py"
714 "gandi/cli/tests/commands/test_certificate.py")
715 (("openssl") (which "openssl")))
716 #t))
717 (add-after 'install 'install-documentation
718 ;; The included man page may be outdated but we install it anyway,
719 ;; since it's mentioned in 'gandi --help' and better than nothing.
720 (lambda* (#:key outputs #:allow-other-keys)
721 (let* ((out (assoc-ref outputs "out"))
722 (man1 (string-append out "/share/man/man1")))
723 (mkdir-p man1)
724 (with-output-to-file (string-append man1 "/gandi.1")
725 (lambda _
726 (invoke "rst2man.py" "gandicli.man.rst")))
727 #t))))))
728 (native-inputs
729 `(("python-docutils" ,python-docutils) ; for rst2man.py
730 ("python-pytest-cov" ,python-pytest-cov)
731 ("python-tox" ,python-tox)))
732 (inputs
733 `(("openssl" ,openssl)
734 ("python-click" ,python-click)
735 ("python-ipy" ,python-ipy)
736 ("python-pyyaml" ,python-pyyaml)
737 ("python-requests" ,python-requests)))
738 (home-page "https://cli.gandi.net")
739 (synopsis "Command-line interface to the Gandi.net Web API")
740 (description
741 "This package provides a command-line client (@command{gandi}) to buy,
742manage, and delete Internet resources from Gandi.net such as domain names,
743virtual machines, and certificates.")
744 (license license:gpl3+)))
745
03981f90
MC
746(define-public go-netns
747 (let ((commit "13995c7128ccc8e51e9a6bd2b551020a27180abd")
748 (revision "1"))
749 (package
750 (name "go-netns")
751 (version (git-version "0.0.0" revision commit))
752 (source (origin
753 (method git-fetch)
754 (uri (git-reference
755 (url "https://github.com/vishvananda/netns.git")
756 (commit commit)))
757 (file-name (git-file-name name version))
758 (sha256
759 (base32
760 "1zk6w8158qi4niva5rijchbv9ixgmijsgqshh54wdaav4xrhjshn"))))
761 (build-system go-build-system)
762 (arguments
763 `(#:import-path "github.com/vishvananda/netns"
764 #:tests? #f)) ;tests require root privileges
765 (home-page "https://github.com/vishvananda/netns")
766 (synopsis "Simple network namespace handling for Go")
767 (description "The netns package provides a simple interface for
768handling network namespaces in Go.")
769 (license license:asl2.0))))
770
523533ed
MC
771(define-public go-sctp
772 ;; docker-libnetwork-cmd-proxy requires this exact commit.
773 (let ((commit "07191f837fedd2f13d1ec7b5f885f0f3ec54b1cb")
774 (revision "1"))
775 (package
776 (name "go-sctp")
777 (version (git-version "0.0.0" revision commit))
778 (source (origin
779 (method git-fetch)
780 (uri (git-reference
781 (url "https://github.com/ishidawataru/sctp.git")
782 (commit commit)))
783 (file-name (git-file-name name version))
784 (sha256
785 (base32
786 "1mk9ncm10gwi5pn5wcw4skbyf4qg7n5qdf1mim4gf3mrckvi6g6h"))))
787 (build-system go-build-system)
788 (arguments
789 `(#:import-path "github.com/ishidawataru/sctp"))
790 (home-page "https://github.com/ishidawataru/sctp")
791 (synopsis "SCTP library for the Go programming language")
792 (description "This library provides methods for using the stream control
793transmission protocol (SCTP) in a Go application.")
794 (license license:asl2.0))))
795
82ee141b
TGR
796(define-public httping
797 (package
798 (name "httping")
2f968727 799 (version "2.5")
82ee141b
TGR
800 (source
801 (origin
802 (method url-fetch)
803 (uri (string-append "https://www.vanheusden.com/httping/httping-"
804 version ".tgz"))
805 (sha256
806 (base32
2f968727 807 "1y7sbgkhgadmd93x1zafqc4yp26ssiv16ni5bbi9vmvvdl55m29y"))))
82ee141b
TGR
808 (build-system gnu-build-system)
809 (native-inputs
b94a6ca0 810 `(("gettext" ,gettext-minimal)))
82ee141b
TGR
811 (inputs
812 `(("fftw" ,fftw)
813 ("ncurses" ,ncurses)
814 ("openssl" ,openssl)))
815 (arguments
816 `(#:make-flags (list "CC=gcc"
817 (string-append "DESTDIR=" (assoc-ref %outputs "out"))
818 "PREFIX=")
819 #:tests? #f)) ; no tests
820 (home-page "https://www.vanheusden.com/httping/")
821 (synopsis "Web server latency and throughput monitor")
822 (description
823 "httping measures how long it takes to connect to a web server, send an
824HTTP(S) request, and receive the reply headers. It is somewhat similar to
825@command{ping}, but can be used even in cases where ICMP traffic is blocked
826by firewalls or when you want to monitor the response time of the actual web
827application stack itself.")
828 (license license:gpl2))) ; with permission to link with OpenSSL
68b14f2e 829
9e6c7c42
SR
830(define-public httpstat
831 (package
832 (name "httpstat")
833 (version "1.2.1")
834 (source
835 (origin
836 (method url-fetch)
837 (uri (pypi-uri "httpstat" version))
838 (sha256
839 (base32
840 "1chw2nk56vaq87aba012a270k9na06hfx1pfbsrc3jfvlc2kb9hb"))))
841 (build-system python-build-system)
842 (inputs `(("curl" ,curl)))
843 (arguments
844 '(#:phases
845 (modify-phases %standard-phases
846 (add-before 'build 'fix-curl-path
847 (lambda* (#:key inputs #:allow-other-keys)
848 (substitute* "httpstat.py"
849 (("ENV_CURL_BIN.get\\('curl'\\)")
850 (string-append "ENV_CURL_BIN.get('"
851 (assoc-ref inputs "curl")
366c1cbb
MW
852 "/bin/curl')")))
853 #t)))))
9e6c7c42
SR
854 (home-page "https://github.com/reorx/httpstat")
855 (synopsis "Visualize curl statistics")
856 (description
857 "@command{httpstat} is a tool to visualize statistics from the
858@command{curl} HTTP client. It acts as a wrapper for @command{curl} and
859prints timing information for each step of the HTTP request (DNS lookup,
860TCP connection, TLS handshake and so on) in the terminal.")
861 (license license:expat)))
862
be9f3a83
AI
863(define-public bwm-ng
864 (package
865 (name "bwm-ng")
01d7cafe 866 (version "0.6.2")
be9f3a83
AI
867 (source
868 (origin
01d7cafe
TGR
869 (method git-fetch)
870 (uri (git-reference
871 (url "https://github.com/vgropp/bwm-ng.git")
872 (commit (string-append "v" version))))
873 (file-name (git-file-name name version))
be9f3a83 874 (sha256
01d7cafe 875 (base32 "0k906wb4pw3dcqpcwnni78lahzi3bva483f8c17sjykic7as4y5n"))))
be9f3a83 876 (build-system gnu-build-system)
01d7cafe
TGR
877 (arguments
878 `(#:phases
879 (modify-phases %standard-phases
880 (add-after 'unpack 'disable-premature-./configure
881 (lambda _
882 (substitute* "autogen.sh"
883 (("\\$srcdir/configure")
884 "true"))
885 #t)))))
886 (native-inputs
887 `(("autoconf" ,autoconf)
888 ("automake" ,automake)))
889 (inputs
890 `(("ncurses" ,ncurses)))
be9f3a83
AI
891 (synopsis "Console based live network and disk I/O bandwidth monitor")
892 (description "Bandwidth Monitor NG is a small and simple console based
893live network and disk I/O bandwidth monitor.")
894 (home-page "https://www.gropp.org/?id=projects&sub=bwm-ng")
895 (license license:gpl2)))
896
d85b398b
EB
897(define-public aircrack-ng
898 (package
899 (name "aircrack-ng")
2e8c912f 900 (version "1.5.2")
d85b398b
EB
901 (source
902 (origin
903 (method url-fetch)
6930ea33 904 (uri (string-append "https://download.aircrack-ng.org/aircrack-ng-"
d85b398b
EB
905 version ".tar.gz"))
906 (sha256
907 (base32
2e8c912f 908 "0hc2x17bxk2n00z8jj5jfwq3z41681fd19n018724il0cpkjyncy"))))
d85b398b
EB
909 (build-system gnu-build-system)
910 (native-inputs
b9114ccb
TGR
911 `(("autoconf" ,autoconf)
912 ("automake" ,automake)
913 ("libtool" ,libtool)
914 ("pkg-config" ,pkg-config)
915 ("which" ,which)))
d85b398b
EB
916 (inputs
917 `(("libgcrypt" ,libgcrypt)
918 ("libnl" ,libnl)
b9114ccb 919 ("libpcap" ,libpcap)
d85b398b
EB
920 ("ethtool" ,ethtool)
921 ("pcre" ,pcre)
922 ("sqlite" ,sqlite)
923 ("zlib" ,zlib)))
924 (arguments
b9114ccb
TGR
925 `(#:configure-flags
926 (list "--with-experimental=yes" ; build wesside-ng, etc.
927 "--with-gcrypt") ; openssl's the default
d85b398b 928 #:phases (modify-phases %standard-phases
b9114ccb
TGR
929 (add-before 'bootstrap 'patch-evalrev
930 (lambda _
931 ;; Called by ./autogen.sh below, before the default
932 ;; ‘patch-shebangs’ phase has had a chance to run.
933 (substitute* "evalrev"
934 (("/bin/sh")
935 (which "sh")))
936 #t))
937 (replace 'bootstrap
938 (lambda _
939 ;; Patch shebangs in generated files before running
940 ;; ./configure.
941 (setenv "NOCONFIGURE" "please")
942 (invoke "bash" "./autogen.sh")))
d85b398b
EB
943 (add-after 'build 'absolutize-tools
944 (lambda* (#:key inputs #:allow-other-keys)
945 (let ((ethtool (string-append (assoc-ref inputs "ethtool")
946 "/sbin/ethtool")))
947 (substitute* "scripts/airmon-ng"
b9114ccb
TGR
948 (("ethtool ")
949 (string-append ethtool " ")))
d85b398b 950 #t))))))
6930ea33 951 (home-page "https://www.aircrack-ng.org")
d85b398b
EB
952 (synopsis "Assess WiFi network security")
953 (description
954 "Aircrack-ng is a complete suite of tools to assess WiFi network
955security. It focuses on different areas of WiFi security: monitoring,
956attacking, testing, and cracking. All tools are command-line driven, which
957allows for heavy scripting.")
958 (license (list license:gpl2+ license:bsd-3))))
959
a83e2a01
TL
960(define-public pixiewps
961 (package
962 (name "pixiewps")
963 (version "1.4.2")
964 (source (origin
965 (method url-fetch)
966 (uri (string-append
967 "https://github.com/wiire-a/pixiewps/releases/"
968 "download/v" version "/" name "-" version ".tar.xz"))
969 (sha256
970 (base32
971 "07nym6bqml0k9v29vnj003nrgnwrywgjvnljb7cdpsvnwilhbp64"))))
972 (build-system gnu-build-system)
973 (arguments
974 '(#:make-flags
975 (list "CC=gcc"
976 (string-append "PREFIX=" (assoc-ref %outputs "out")))
977 #:phases
978 (modify-phases %standard-phases
979 (delete 'configure)) ; no configure script
980 #:tests? #f)) ; there are no tests
981 (home-page "https://github.com/wiire-a/pixiewps/")
982 (synopsis "Offline brute-force tool for Wi-Fi Protected Setup")
983 (description "Pixiewps implements the pixie-dust attack to brute
984force the Wi-Fi Protected Setup (WPS) PIN by exploiting the low or
985non-existing entropy of some access points.")
986 (license license:gpl3+)))
5094da0b
TL
987
988(define-public reaver
989 (package
990 (name "reaver")
991 (version "1.6.5")
992 (source (origin
993 (method url-fetch)
994 (uri (string-append
995 "https://github.com/t6x/reaver-wps-fork-t6x/releases/"
996 "download/v" version "/" name "-" version ".tar.xz"))
997 (sha256
998 (base32
999 "0sva3g0kwgv143n9l3lg4qp5iiqz7nk76nr0hwivsnglbhk9sbil"))))
1000 (build-system gnu-build-system)
1001 (arguments
1002 `(#:configure-flags
1003 ;; Save session files to current directory instead of /var.
1004 (list "--enable-savetocurrent"
1005 "--localstatedir=/tmp/dummy") ; prevent creating /var during install
1006 #:phases
1007 (modify-phases %standard-phases
1008 (add-before 'configure 'change-directory
1009 (lambda _
1010 (chdir "src")
1011 #t))
1012 (add-after 'install 'install-doc
1013 (lambda* (#:key outputs #:allow-other-keys)
1014 (chdir "../docs")
1015 (let* ((out (assoc-ref outputs "out"))
1016 (doc (string-append out "/share/doc/" ,name "-" ,version))
1017 (man1 (string-append out "/share/man/man1")))
1018 (for-each (lambda (file) (install-file file doc))
1019 (find-files "." "README.*"))
1020 (install-file "reaver.1" man1)
1021 #t))))
1022 #:tests? #f)) ; there are no tests
1023 (inputs
1024 `(("libpcap" ,libpcap)))
1025 (propagated-inputs
1026 `(("aircrack-ng" ,aircrack-ng)
1027 ("pixiewps" ,pixiewps)))
1028 (home-page "https://github.com/t6x/reaver-wps-fork-t6x/")
1029 (synopsis "Attack tool for Wi-Fi Protected Setup")
1030 (description "Reaver performs a brute force attack against an access
1031point's Wi-Fi Protected Setup (WPS) PIN. Once the PIN is found, the WPA
1032passphrase can be recovered and the AP's wireless settings can be
1033reconfigured.")
1034 (license license:gpl2+)))
d85b398b 1035
49cb1cf9
SB
1036(define-public perl-danga-socket
1037 (package
1038 (name "perl-danga-socket")
d4c9543f 1039 (version "1.62")
49cb1cf9
SB
1040 (source
1041 (origin
1042 (method url-fetch)
d4c9543f 1043 (uri (string-append "mirror://cpan/authors/id/N/NM/NML/"
49cb1cf9
SB
1044 "Danga-Socket-" version ".tar.gz"))
1045 (sha256
d4c9543f 1046 (base32 "0x4bvirmf0kphks19jwgva00zz73zx344218dfaiv8gigrw3yg4m"))))
49cb1cf9 1047 (build-system perl-build-system)
d4c9543f
TGR
1048 (native-inputs
1049 `(("perl-test-tcp" ,perl-test-tcp)))
49cb1cf9
SB
1050 (propagated-inputs
1051 `(("perl-sys-syscall" ,perl-sys-syscall)))
1052 (home-page "https://metacpan.org/release/Danga-Socket")
1053 (synopsis "Event loop and event-driven async socket base class")
1054 (description
1055 "Danga::Socket is an abstract base class for objects backed by a socket
1056which provides the basic framework for event-driven asynchronous IO, designed
1057to be fast. Danga::Socket is both a base class for objects, and an event
1058loop.")
1059 (license license:perl-license)))
1060
c7727a8b
TGR
1061(define-public perl-data-validate-ip
1062 (package
1063 (name "perl-data-validate-ip")
1064 (version "0.27")
1065 (source
1066 (origin
1067 (method url-fetch)
1068 (uri (string-append
1069 "mirror://cpan/authors/id/D/DR/DROLSKY/Data-Validate-IP-"
1070 version ".tar.gz"))
1071 (sha256
1072 (base32 "1mmppyzsh1w2z2h86kvzqxy56wxgs62a3kf8nvcnz76bblir5ap1"))))
1073 (build-system perl-build-system)
1074 (native-inputs
1075 `(("perl-test-requires" ,perl-test-requires)))
1076 (propagated-inputs
1077 `(("perl-netaddr-ip" ,perl-netaddr-ip)))
1078 (home-page "https://metacpan.org/release/Data-Validate-IP")
1079 (synopsis "IPv4 and IPv6 validation methods")
1080 (description
1081 "This module provides several IP address validation subroutines that both
1082validate and untaint their input. This includes both basic validation
1083(@code{is_ipv4()} and @code{is_ipv6()}) and special cases like checking whether
1084an address belongs to a specific network or whether an address is public or
1085private (reserved).")
1086 (license license:perl-license)))
1087
68b14f2e
DM
1088(define-public perl-net-dns
1089 (package
1090 (name "perl-net-dns")
803b9736 1091 (version "1.21")
68b14f2e
DM
1092 (source
1093 (origin
1094 (method url-fetch)
8faa9df7
TGR
1095 (uri
1096 (list
1097 (string-append "https://www.net-dns.org/download/Net-DNS-"
1098 version ".tar.gz")
1099 (string-append "mirror://cpan/authors/id/N/NL/NLNETLABS/Net-DNS-"
1100 version ".tar.gz")))
68b14f2e 1101 (sha256
803b9736 1102 (base32 "0yknrsh0wqr9s43c0wf3dyzrsi2r7k0v75hay74gqkq850xy3vyx"))))
68b14f2e
DM
1103 (build-system perl-build-system)
1104 (inputs
1105 `(("perl-digest-hmac" ,perl-digest-hmac)))
8faa9df7 1106 (home-page "https://www.net-dns.org/")
68b14f2e
DM
1107 (synopsis
1108 "Perl Interface to the Domain Name System")
1109 (description "Net::DNS is the Perl Interface to the Domain Name System.")
1110 (license license:x11)))
87b14091
DM
1111
1112(define-public perl-socket6
1113 (package
1114 (name "perl-socket6")
538b71a9 1115 (version "0.29")
87b14091
DM
1116 (source
1117 (origin
1118 (method url-fetch)
1119 (uri (string-append
1120 "mirror://cpan/authors/id/U/UM/UMEMOTO/Socket6-"
1121 version
1122 ".tar.gz"))
1123 (sha256
1124 (base32
538b71a9 1125 "054izici8klfxs8hr5rljib28plijpsfymy99xbzdp047bx1b2a6"))))
87b14091
DM
1126 (build-system perl-build-system)
1127 (arguments
1128 `(#:phases
1129 (modify-phases %standard-phases
1130 (replace 'configure
1131 (lambda* (#:key outputs #:allow-other-keys)
1132 (let* ((out (assoc-ref outputs "out"))
1133 (args `("Makefile.PL"
1134 ,(string-append "PREFIX=" out)
1135 "INSTALLDIRS=site")))
1136 (setenv "CONFIG_SHELL" (which "sh"))
366c1cbb 1137 (apply invoke "perl" args)))))))
9aba9b12 1138 (home-page "https://metacpan.org/release/Socket6")
87b14091
DM
1139 (synopsis
1140 "IPv6 related part of the C socket.h defines and structure manipulators for Perl")
1141 (description "Socket6 binds the IPv6 related part of the C socket header
1142definitions and structure manipulators for Perl.")
1143 (license license:bsd-3)))
8d60dd71
DM
1144
1145(define-public perl-net-dns-resolver-programmable
1146 (package
1147 (name "perl-net-dns-resolver-programmable")
1148 (version "v0.003")
1149 (source
1150 (origin
1151 (method url-fetch)
1152 (uri (string-append
1153 "mirror://cpan/authors/id/J/JM/JMEHNLE/net-dns-resolver-programmable/"
1154 "Net-DNS-Resolver-Programmable-" version ".tar.gz"))
1155 (sha256
1156 (base32
1157 "1v3nl2kaj4fs55n1617n53q8sa3mir06898vpy1rq98zjih24h4d"))
1158 (patches
1d248adb 1159 (search-patches "perl-net-dns-resolver-programmable-fix.patch"))))
8d60dd71
DM
1160 (build-system perl-build-system)
1161 (native-inputs
1162 `(("perl-module-build" ,perl-module-build)))
1163 (inputs `(("perl-net-dns" ,perl-net-dns)))
1164 (home-page
9aba9b12 1165 "https://metacpan.org/release/Net-DNS-Resolver-Programmable")
8d60dd71
DM
1166 (synopsis
1167 "Programmable DNS resolver class for offline emulation of DNS")
1168 (description "Net::DNS::Resolver::Programmable is a programmable DNS resolver for
1169offline emulation of DNS.")
2f3108ad 1170 (license license:perl-license)))
1201eab9 1171
ac629e62
JL
1172(define-public perl-net-dns-resolver-mock
1173 (package
1174 (name "perl-net-dns-resolver-mock")
1175 (version "1.20171219")
1176 (source (origin
1177 (method url-fetch)
1178 (uri (string-append
1179 "mirror://cpan/authors/id/M/MB/MBRADSHAW/"
1180 "Net-DNS-Resolver-Mock-" version ".tar.gz"))
1181 (sha256
1182 (base32
1183 "0m3rxpkv1b9121srvbqkrgzg4m8mnydiydqv34in1i1ixwrl6jn9"))))
1184 (build-system perl-build-system)
ce3a71c6 1185 (inputs
ac629e62
JL
1186 `(("perl-net-dns" ,perl-net-dns)))
1187 (home-page "https://metacpan.org/release/Net-DNS-Resolver-Mock")
858be794
TGR
1188 (synopsis "Mock DNS Resolver object for testing")
1189 (description
1190 "Net::DNS::Resolver::Mock is a subclass of Net::DNS::Resolver, but returns
1191static data from any provided DNS zone file instead of querying the network.
1192It is intended primarily for use in testing.")
ac629e62
JL
1193 (license license:perl-license)))
1194
1201eab9
DM
1195(define-public perl-netaddr-ip
1196 (package
1197 (name "perl-netaddr-ip")
1198 (version "4.079")
1199 (source
1200 (origin
1201 (method url-fetch)
1202 (uri (string-append
1203 "mirror://cpan/authors/id/M/MI/MIKER/NetAddr-IP-"
1204 version
1205 ".tar.gz"))
1206 (sha256
1207 (base32
1208 "1rx0dinrz9fk9qcg4rwqq5n1dm3xv2arymixpclcv2q2nzgq4npc"))))
1209 (build-system perl-build-system)
1210 (arguments
1211 `(#:phases
1212 (modify-phases %standard-phases
1213 (replace 'configure
1214 (lambda* (#:key outputs #:allow-other-keys)
1215 (let* ((out (assoc-ref outputs "out"))
1216 (args `("Makefile.PL"
1217 ,(string-append "PREFIX=" out)
1218 "INSTALLDIRS=site")))
1219 (setenv "CONFIG_SHELL" (which "sh"))
366c1cbb 1220 (apply invoke "perl" args)))))))
1201eab9 1221 (home-page
9aba9b12 1222 "https://metacpan.org/release/NetAddr-IP")
1201eab9
DM
1223 (synopsis
1224 "Manages IPv4 and IPv6 addresses and subnets")
1225 (description "NetAddr::IP manages IPv4 and IPv6 addresses and subsets.")
2f3108ad 1226 (license license:perl-license)))
3ed361ea
DM
1227
1228(define-public perl-net-patricia
1229 (package
1230 (name "perl-net-patricia")
1231 (version "1.22")
1232 (source
1233 (origin
1234 (method url-fetch)
1235 (uri (string-append
1236 "mirror://cpan/authors/id/G/GR/GRUBER/Net-Patricia-"
1237 version
1238 ".tar.gz"))
1239 (sha256
1240 (base32
1241 "0ln5f57vc8388kyh9vhx2infrdzfhbpgyby74h1qsnhwds95m0vh"))))
1242 (build-system perl-build-system)
2ff17f06
EF
1243 (arguments
1244 '(#:phases
1245 (modify-phases %standard-phases
1246 (add-after 'unpack 'dont-link-with-nsl ; Borrowed from Debian.
1247 (lambda _
1248 (substitute* "Makefile.PL"
1249 (("-lnsl") ""))
1250 #t)))))
3ed361ea
DM
1251 (inputs
1252 `(("perl-net-cidr-lite" ,perl-net-cidr-lite)
1253 ("perl-socket6" ,perl-socket6)))
1254 (home-page
9aba9b12 1255 "https://metacpan.org/release/Net-Patricia")
3ed361ea
DM
1256 (synopsis
1257 "Patricia Trie Perl module for fast IP address lookups")
1258 (description
1259 "Net::Patricia does IP address lookups quickly in Perl.")
1260 ;; The bindings are licensed under GPL2 or later.
1261 ;; libpatricia is licensed under 2-clause BSD.
1262 (license (list license:gpl2+ license:bsd-2))))
b09a8b6f
DM
1263
1264(define-public perl-net-cidr-lite
1265 (package
1266 (name "perl-net-cidr-lite")
1267 (version "0.21")
1268 (source
1269 (origin
1270 (method url-fetch)
1271 (uri (string-append
1272 "mirror://cpan/authors/id/D/DO/DOUGW/Net-CIDR-Lite-"
1273 version
1274 ".tar.gz"))
1275 (sha256
1276 (base32
1277 "14shj73zbqmfjbp0qz1fs9j4p2dpvz5hfkm4qfdjbydflbl2b8fg"))))
1278 (build-system perl-build-system)
1279 (home-page
9aba9b12 1280 "https://metacpan.org/release/Net-CIDR-Lite")
b09a8b6f
DM
1281 (synopsis
1282 "Perl extension for merging IPv4 or IPv6 CIDR addresses")
1283 (description "Net::CIDR::Lite merges IPv4 or IPv6 CIDR addresses.")
1284 (license license:gpl1+)))
e741c4e4
DM
1285
1286;; TODO: Use the geolite-mirror-simple.pl script from the example
1287;; directory to stay current with the databases. How?
1288(define-public perl-geo-ip
1289 (package
1290 (name "perl-geo-ip")
b2799117 1291 (version "1.51")
e741c4e4
DM
1292 (source
1293 (origin
1294 (method url-fetch)
1295 (uri (string-append
1296 "mirror://cpan/authors/id/M/MA/MAXMIND/Geo-IP-"
1297 version
1298 ".tar.gz"))
1299 (sha256
1300 (base32
b2799117 1301 "1fka8fr7fw6sh3xa9glhs1zjg3s2gfkhi7n7da1l2m2wblqj0c0n"))))
e741c4e4 1302 (build-system perl-build-system)
9aba9b12 1303 (home-page "https://metacpan.org/release/Geo-IP")
e741c4e4
DM
1304 (synopsis
1305 "Look up location and network information by IP Address in Perl")
36a4366d
EF
1306 (description "The Perl module @code{Geo::IP}. It looks up location and
1307network information by IP Address.")
2f3108ad 1308 (license license:perl-license)))
e818f321
DM
1309
1310(define-public perl-io-socket-inet6
1311 (package
1312 (name "perl-io-socket-inet6")
1313 (version "2.72")
1314 (source
1315 (origin
1316 (method url-fetch)
1317 (uri (string-append
1318 "mirror://cpan/authors/id/S/SH/SHLOMIF/IO-Socket-INET6-"
1319 version
1320 ".tar.gz"))
1321 (sha256
1322 (base32
1323 "1fqypz6qa5rw2d5y2zq7f49frwra0aln13nhq5gi514j2zx21q45"))))
1324 (build-system perl-build-system)
1325 (native-inputs
1326 `(("perl-module-build" ,perl-module-build)
1327 ("perl-test-pod" ,perl-test-pod)
1328 ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
1329 (inputs `(("perl-socket6" ,perl-socket6)))
1330 (arguments `(;; Need network socket API
1331 #:tests? #f))
1332 (home-page
9aba9b12 1333 "https://metacpan.org/release/IO-Socket-INET6")
e818f321
DM
1334 (synopsis
1335 "Perl object interface for AF_INET/AF_INET6 domain sockets")
1336 (description "IO::Socket::INET6 is an interface for AF_INET/AF_INET6 domain
1337sockets in Perl.")
2f3108ad 1338 (license license:perl-license)))
a1c83fef 1339
167a541f
TD
1340(define-public libproxy
1341 (package
1342 (name "libproxy")
1343 (version "0.4.15")
1344 (source (origin
1345 (method url-fetch)
1346 (uri (string-append "https://github.com/libproxy/libproxy/"
1347 "releases/download/" version "/libproxy-"
1348 version ".tar.xz"))
1349 (sha256
1350 (base32
1351 "0kvdrazlzwia876w988cmlypp253gwy6idlh8mjk958c29jb8kb5"))))
1352 (build-system cmake-build-system)
1353 (native-inputs
1354 `(("pkg-config" ,pkg-config)))
1355 (inputs
1356 `(("dbus" ,dbus)
5ba17819 1357 ("zlib" ,zlib)))
167a541f
TD
1358 (arguments
1359 `(#:phases
1360 (modify-phases %standard-phases
1361 (replace 'check
1362 (lambda _
366c1cbb 1363 (invoke "ctest" "-E" "url-test"))))))
167a541f
TD
1364 (synopsis "Library providing automatic proxy configuration management")
1365 (description "Libproxy handles the details of HTTP/HTTPS proxy
1366configuration for applications across all scenarios. Applications using
1367libproxy only have to specify which proxy to use.")
1368 (home-page "https://libproxy.github.io/libproxy")
1369 (license license:lgpl2.1+)))
1370
a1c83fef 1371(define-public proxychains-ng
1372 (package
1373 (name "proxychains-ng")
223ef546 1374 (version "4.14")
a0b5c998
TGR
1375 (source
1376 (origin
1377 (method url-fetch)
1378 (uri (string-append "http://ftp.barfooze.de/pub/sabotage/tarballs/"
110387f8 1379 "proxychains-ng-" version ".tar.xz"))
a0b5c998 1380 (sha256
223ef546 1381 (base32 "1bmhfbl1bzc87vl0xwr1wh5xvslfyc41nl2hqzhbj258p0sy004x"))))
a1c83fef 1382 (build-system gnu-build-system)
1383 (arguments
223ef546 1384 `(#:tests? #f ; there are no tests
a1c83fef 1385 #:phases
1386 (modify-phases %standard-phases
1387 (add-after 'unpack 'fix-configure-script
1388 (lambda _
1389 ;; The configure script is very intolerant to unknown arguments,
1390 ;; such as "CONFIG_SHELL".
1391 (substitute* "configure"
1392 (("\\*\\) break ;;" line)
1393 (string-append "[A-Z]*) shift ;;\n"
1394 line)))
a0b5c998
TGR
1395 #t))
1396 (add-before 'configure 'set-up-environment
1397 (lambda _
1398 (setenv "CC" "gcc")
a1c83fef 1399 #t)))))
1400 (synopsis "Redirect any TCP connection through a proxy or proxy chain")
1401 (description "Proxychains-ng is a preloader which hooks calls to sockets
1402in dynamically linked programs and redirects them through one or more SOCKS or
1403HTTP proxies.")
1404 (home-page "https://github.com/rofl0r/proxychains-ng")
1405 (license license:gpl2+)))
93666cf7 1406
1407(define-public enet
1408 (package
1409 (name "enet")
3b990922 1410 (version "1.3.14")
93666cf7 1411 (source (origin
1412 (method url-fetch)
1413 (uri (string-append "http://enet.bespin.org/download/"
9aed8a1e 1414 "enet-" version ".tar.gz"))
93666cf7 1415 (sha256
1416 (base32
3b990922 1417 "0w780zc6cy8yq4cskpphx0f91lzh51vh9lwyc5ll8hhamdxgbxlq"))))
93666cf7 1418 (build-system gnu-build-system)
1419 (native-inputs
1420 `(("pkg-config" ,pkg-config)))
3b990922 1421 (synopsis "Network communication layer on top of UDP")
93666cf7 1422 (description
1423 "ENet's purpose is to provide a relatively thin, simple and robust network
1424communication layer on top of UDP. The primary feature it provides is optional
1425reliable, in-order delivery of packets. ENet omits certain higher level
1426networking features such as authentication, server discovery, encryption, or
1427other similar tasks that are particularly application specific so that the
1428library remains flexible, portable, and easily embeddable.")
1429 (home-page "http://enet.bespin.org")
1430 (license license:expat)))
4fb5f830
TGR
1431
1432(define-public sslh
1433 (package
1434 (name "sslh")
2fe29c84 1435 (version "1.20")
925926ba
TGR
1436 (source
1437 (origin
1438 (method git-fetch)
1439 (uri (git-reference
1440 (url "https://github.com/yrutschle/sslh.git")
1441 (commit (string-append "v" version))))
1442 (file-name (git-file-name name version))
1443 (sha256
2fe29c84 1444 (base32 "18zhkqlwfh6f5dg1a41a4p7p9g94dgb9nwls1ksy9r5yz174i2fx"))))
4fb5f830
TGR
1445 (build-system gnu-build-system)
1446 (native-inputs
7eaa37a1 1447 `(;; Test dependencies.
4fb5f830
TGR
1448 ("lcov" ,lcov)
1449 ("perl" ,perl)
2fe29c84 1450 ("perl-conf-libconfig" ,perl-conf-libconfig)
4fb5f830
TGR
1451 ("perl-io-socket-inet6" ,perl-io-socket-inet6)
1452 ("perl-socket6" ,perl-socket6)
2fe29c84 1453 ("psmisc" ,psmisc))) ; for ‘killall’
4fb5f830
TGR
1454 (inputs
1455 `(("libcap" ,libcap)
1456 ("libconfig" ,libconfig)
7eaa37a1 1457 ("pcre" ,pcre)
4fb5f830
TGR
1458 ("tcp-wrappers" ,tcp-wrappers)))
1459 (arguments
1460 '(#:phases
1461 (modify-phases %standard-phases
1462 (delete 'configure) ; no configure script
1463 (add-before 'check 'fix-tests
2fe29c84
TGR
1464 (lambda _
1465 (substitute* "./t"
1466 (("\"/tmp") "$ENV{\"TMPDIR\"} . \"")
1467 ;; The Guix build environment lacks ‘ip6-localhost’.
1468 (("ip6-localhost") "localhost"))
1469 #t))
4fb5f830
TGR
1470 ;; Many of these files are mentioned in the man page. Install them.
1471 (add-after 'install 'install-documentation
2fe29c84
TGR
1472 (lambda* (#:key outputs #:allow-other-keys)
1473 (let* ((out (assoc-ref outputs "out"))
1474 (doc (string-append out "/share/doc/sslh")))
1475 (install-file "README.md" doc)
1476 (for-each
1477 (lambda (file)
1478 (install-file file (string-append doc "/examples")))
1479 (append (find-files "." "\\.cfg")
1480 (find-files "scripts"))))
1481 #t)))
4fb5f830
TGR
1482 #:make-flags (list "CC=gcc"
1483 "USELIBCAP=1"
1484 "USELIBWRAP=1"
1485 (string-append "PREFIX=" (assoc-ref %outputs "out")))
1486 #:test-target "test"))
7eaa37a1 1487 (home-page "https://www.rutschle.net/tech/sslh/README.html")
4fb5f830
TGR
1488 (synopsis "Applicative network protocol demultiplexer")
1489 (description
1490 "sslh is a network protocol demultiplexer. It acts like a switchboard,
1491accepting connections from clients on one port and forwarding them to different
1492servers based on the contents of the first received data packet. Detection of
1493common protocols like HTTP(S), SSL, SSH, OpenVPN, tinc, and XMPP is already
1494implemented, but any other protocol that matches a regular expression can be
1495added. sslh's name comes from its original application of serving both SSH and
1496HTTPS on port 443, allowing SSH connections from inside corporate firewalls
1497that block port 22.")
1498 (license (list license:bsd-2 ; tls.[ch]
1499 license:gpl2+)))) ; everything else
b747718e
BS
1500
1501(define-public iperf
1502 (package
1503 (name "iperf")
8daa8326 1504 (version "3.7")
b747718e
BS
1505 (source (origin
1506 (method url-fetch)
1507 (uri (string-append "http://downloads.es.net/pub/iperf"
1508 "/iperf-" version ".tar.gz"))
1509 (sha256
1510 (base32
8daa8326 1511 "033is7b5grfbiil98jxlz4ixp9shm44x6hy8flpsyz1i4h108inq"))))
b747718e
BS
1512 (build-system gnu-build-system)
1513 (synopsis "TCP, UDP and SCTP bandwidth measurement tool")
1514 (description
1515 "iPerf is a tool to measure achievable bandwidth on IP networks. It
1516supports tuning of various parameters related to timing, buffers and
1517protocols (TCP, UDP, SCTP with IPv4 and IPv6). For each test it reports
1518the bandwidth, loss, and other parameters.")
1519 (home-page "http://software.es.net/iperf/")
1520 (license (list license:bsd-3 ; Main distribution.
1521 license:ncsa ; src/{units,iperf_locale,tcp_window_size}.c
1522 license:expat ; src/{cjson,net}.[ch]
1523 license:public-domain)))) ; src/portable_endian.h
b7f3cf2c
AI
1524
1525(define-public nethogs
1526 (package
1527 (name "nethogs")
1528 (version "0.8.5")
1529 (source (origin
1530 (method url-fetch)
1531 (uri (string-append "https://github.com/raboof/nethogs/archive/v"
1532 version ".tar.gz"))
1533 (sha256
1534 (base32
1535 "1k4x8r7s4dgcb6n2rjn28h2yyij92mwm69phncl3597cdxr954va"))
1536 (file-name (string-append name "-" version ".tar.gz"))))
1537 (build-system gnu-build-system)
1538 (inputs
1539 `(("libpcap" ,libpcap)
1540 ("ncurses" ,ncurses)))
1541 (arguments
1542 `(#:make-flags `("CC=gcc"
1543 ,(string-append "PREFIX=" %output))
1544 #:phases
1545 (modify-phases %standard-phases
1546 (delete 'configure)))) ; No ./configure script.
1547 (home-page "https://github.com/raboof/nethogs")
1548 (synopsis "Per-process bandwidth monitor")
1549 (description "NetHogs is a small 'net top' tool for Linux. Instead of
1550breaking the traffic down per protocol or per subnet, like most tools do, it
1551groups bandwidth by process.
1552
1553NetHogs does not rely on a special kernel module to be loaded. If there's
1554suddenly a lot of network traffic, you can fire up NetHogs and immediately see
1555which PID is causing this. This makes it easy to identify programs that have
1556gone wild and are suddenly taking up your bandwidth.")
1557 (license license:gpl2+)))
92ac2cff 1558
b3623b6f
RH
1559(define-public nzbget
1560 (package
1561 (name "nzbget")
39a20acc 1562 (version "21.0")
b3623b6f
RH
1563 (source
1564 (origin
1565 (method url-fetch)
1566 (uri (string-append "https://github.com/nzbget/nzbget/archive/v"
1567 version ".tar.gz"))
1568 (file-name (string-append name "-" version ".tar.gz"))
1569 (sha256
1570 (base32
39a20acc 1571 "0l3dzxz7d7jf6cyach41zirvsx1x0vs4nh053c0miycv7zjyrly7"))
657f1815
TGR
1572 (modules '((guix build utils)))
1573 (snippet
1574 ;; Reported upstream as <https://github.com/nzbget/nzbget/pull/414>.
1575 '(begin
1576 (substitute* "daemon/connect/TlsSocket.cpp"
1577 (("gnutls_certificate-verification_status_print")
1578 "gnutls_certificate_verification_status_print"))
1579 #t))))
b3623b6f
RH
1580 (arguments
1581 `(#:configure-flags
1582 (list
657f1815
TGR
1583 (string-append "--with-libcurses-includes="
1584 (assoc-ref %build-inputs "ncurses") "/include")
1585 (string-append "--with-libcurses-libraries="
1586 (assoc-ref %build-inputs "ncurses") "/lib")
b3623b6f
RH
1587 (string-append "--with-tlslib=GnuTLS"))))
1588 (build-system gnu-build-system)
c695fb76
TGR
1589 (inputs `(("gnutls" ,gnutls)
1590 ("libxml2" ,libxml2)
1591 ("ncurses" ,ncurses)
1592 ("zlib" ,zlib)))
1593 (native-inputs `(("pkg-config" ,pkg-config)))
b3623b6f
RH
1594 (home-page "https://github.com/nzbget/nzbget")
1595 (synopsis "Usenet binary file downloader")
1596 (description
1597 "NZBGet is a binary newsgrabber, which downloads files from Usenet based
1598on information given in @code{nzb} files. NZBGet can be used in standalone
1599and in server/client modes. In standalone mode, you pass NZBGet @command{nzb}
1600files as command-line parameters and it downloads them and exits. NZBGet also
1601contains a Web interface. Its server can be controlled through remote
1602procedure calls (RPCs).")
1603 (license license:gpl2+)))
1604
92ac2cff
SB
1605(define-public openvswitch
1606 (package
1607 (name "openvswitch")
b174cc4b 1608 (version "2.12.0")
92ac2cff
SB
1609 (source (origin
1610 (method url-fetch)
1611 (uri (string-append
034db237 1612 "https://www.openvswitch.org/releases/openvswitch-"
92ac2cff
SB
1613 version ".tar.gz"))
1614 (sha256
1615 (base32
b174cc4b 1616 "1y78ix5inhhcvicbvyy2ij38am1215nr55vydhab3d4065q45z8k"))))
92ac2cff
SB
1617 (build-system gnu-build-system)
1618 (arguments
1619 '(;; FIXME: many tests fail with:
1620 ;; […]
1621 ;; test -e $OVS_RUNDIR/ovs-vswitchd.pid
1622 ;; ovs-appctl -t ovs-vswitchd exit
1623 ;; hard failure
1624 #:tests? #f
1625 #:configure-flags
1626 '("--enable-shared"
1627 "--localstatedir=/var"
1628 "--with-dbdir=/var/lib/openvswitch")
1629 #:phases
1630 (modify-phases %standard-phases
1631 (replace 'install
1632 (lambda _
366c1cbb
MW
1633 (invoke "make"
1634 ;; Don't try to create directories under /var.
1635 "RUNDIR=/tmp"
1636 "PKIDIR=/tmp"
1637 "LOGDIR=/tmp"
1638 "DBDIR=/tmp"
1639 "install"))))))
92ac2cff
SB
1640 (native-inputs
1641 `(("perl" ,perl)
1642 ("pkg-config" ,pkg-config)
1643 ("python" ,python-2)
1644 ;; for testing
1645 ("util-linux" ,util-linux)))
1646 (propagated-inputs
1647 `(("python-six" ,python2-six)))
1648 (inputs
1649 `(("libcap-ng" ,libcap-ng)
1650 ("openssl" ,openssl)))
1651 (synopsis "Virtual network switch")
034db237 1652 (home-page "https://www.openvswitch.org/")
92ac2cff
SB
1653 (description
1654 "Open vSwitch is a multilayer virtual switch. It is designed to enable
1655massive network automation through programmatic extension, while still
1656supporting standard management interfaces and protocols (e.g. NetFlow, sFlow,
1657IPFIX, RSPAN, CLI, LACP, 802.1ag).")
1658 (license ; see debian/copyright for detail
1659 (list license:lgpl2.1 ; xenserver and utilities/bugtool
1660 license:gpl2 ; datapath
1661 license:bsd-2 license:bsd-3
1662 license:asl2.0)))) ; all other
38510546 1663
42c939a8
RW
1664(define-public python-ipy
1665 (package
1666 (name "python-ipy")
47982ca9 1667 (version "1.00")
42c939a8
RW
1668 (source (origin
1669 (method url-fetch)
1670 (uri (pypi-uri "IPy" version))
1671 (sha256
1672 (base32
47982ca9 1673 "08d6kcacj67mvh0b6y765ipccy6gi4w2ndd4v1l3im2qm1cgcarg"))))
42c939a8
RW
1674 (build-system python-build-system)
1675 (home-page "https://github.com/autocracy/python-ipy/")
1676 (synopsis "Python class and tools for handling IP addresses and networks")
1677 (description "The @code{IP} class allows a comfortable parsing and
1678handling for most notations in use for IPv4 and IPv6 addresses and
1679networks.")
1680 (license license:bsd-3)))
1681
a4e7215d
DM
1682(define-public python2-ipy
1683 (package-with-python2 python-ipy))
1684
38510546
PP
1685(define-public speedtest-cli
1686 (package
1687 (name "speedtest-cli")
d8a079e2 1688 (version "2.1.2")
38510546
PP
1689 (source
1690 (origin
b3740474
EF
1691 (method git-fetch)
1692 (uri (git-reference
1693 (url "https://github.com/sivel/speedtest-cli")
1694 (commit (string-append "v" version))))
1695 (file-name (git-file-name name version))
38510546 1696 (sha256
d8a079e2 1697 (base32 "1456yly6iym2c9bl6pi4sz8xbw34bm2dxm1vzpydsd6jazwpmy26"))))
38510546
PP
1698 (build-system python-build-system)
1699 (home-page "https://github.com/sivel/speedtest-cli")
1700 (synopsis "Internet bandwidth tester")
1701 (description
1702 "Command line interface for testing internet bandwidth using
1703speedtest.net.")
1704 (license license:asl2.0)))
5b5cf3c7
GB
1705
1706(define-public tftp-hpa
1707 (package
1708 (name "tftp-hpa")
1709 (version "5.2")
1710 (source (origin
1711 (method url-fetch)
1712 (uri (string-append "mirror://kernel.org/software/"
1713 "network/tftp/tftp-hpa/tftp-hpa-" version
1714 ".tar.xz"))
1715 (sha256
1716 (base32
1717 "12vidchglhyc20znq5wdsbhi9mqg90jnl7qr9qs8hbvaz4fkdvmg"))))
1718 (build-system gnu-build-system)
1719 (arguments `(#:tests? #f)) ; no test target
1720 (synopsis "HPA's tftp client")
1721 (description
1722 "This is a tftp client derived from OpenBSD tftp with some extra options
1723added and bugs fixed. The source includes readline support but it is not
1724enabled due to license conflicts between the BSD advertising clause and the GPL.")
1725 (home-page "http://git.kernel.org/cgit/network/tftp/tftp-hpa.git/about/")
1726 ;; Some source files are distributed under a 3-clause BSD license, and
1727 ;; others under a 4-clause BSD license. Refer to the files in the source
1728 ;; distribution for clarification.
1729 (license (list license:bsd-3 license:bsd-4))))
cc24bf98 1730
f2e12718 1731(define-public pidentd
1732 (package
1733 (name "pidentd")
1734 (version "3.0.19")
1735 (source
1736 (origin
1737 (method url-fetch)
1738 (uri (string-append "https://github.com/ptrrkssn/pidentd/archive/"
1739 "v" version ".tar.gz"))
1740 (file-name (string-append name "-" version ".tar.gz"))
1741 (sha256
1742 (base32
1743 "0y3kd1bkydqkpc1qdff24yswysamsqivvadjy0468qri5730izgc"))))
1744 (build-system gnu-build-system)
1745 (arguments
1746 `(#:tests? #f)) ; No tests are included
1747 (inputs
3401526f 1748 `(("openssl" ,openssl-1.0))) ;for the DES library
f2e12718 1749 (home-page "https://www.lysator.liu.se/~pen/pidentd/")
1750 (synopsis "Small Ident Daemon")
1751 (description
1752 "@dfn{Pidentd} (Peter's Ident Daemon) is a identd, which implements a
1753identification server. Pidentd looks up specific TCP/IP connections and
1754returns the user name and other information about the connection.")
1755 (license license:public-domain)))
1756
cc24bf98
LF
1757(define-public spiped
1758 (package
1759 (name "spiped")
1760 (version "1.6.0")
1761 (source (origin
1762 (method url-fetch)
1763 (uri (string-append "https://www.tarsnap.com/spiped/spiped-"
1764 version ".tgz"))
1765 (sha256
1766 (base32
1767 "1r51rdcl7nib1yv3yvgd5alwlkkwmr387brqavaklb0p2bwzixz6"))))
1768 (build-system gnu-build-system)
1769 (arguments
1770 '(#:test-target "test"
1771 #:make-flags (let* ((out (assoc-ref %outputs "out"))
1772 (bindir (string-append out "/bin"))
1773 (man1dir (string-append out "/share/man/man1")))
1774 (list "CC=gcc" ; It tries to invoke `c99`.
1775 (string-append "BINDIR=" bindir)
1776 (string-append "MAN1DIR=" man1dir)))
1777 #:phases
1778 (modify-phases %standard-phases
1779 (add-after 'unpack 'patch-command-invocations
1780 (lambda _
1781 (substitute* '("Makefile"
1782 "libcperciva/cpusupport/Build/cpusupport.sh"
1783 "libcperciva/POSIX/posix-cflags.sh"
1784 "libcperciva/POSIX/posix-l.sh")
1785 (("command -p") ""))
1786 #t))
1787 (delete 'configure) ; No ./configure script.
1788 (add-after 'install 'install-more-docs
1789 (lambda* (#:key outputs #:allow-other-keys)
1790 (let* ((out (assoc-ref %outputs "out"))
1791 (misc (string-append out "/share/doc/spiped")))
1792 (install-file "DESIGN.md" misc)
1793 #t))))))
1794 (native-inputs
1795 `(("procps" ,procps))) ; `ps` is used by the test suite.
1796 (inputs
1797 `(("openssl" ,openssl)))
1798 (home-page "https://www.tarsnap.com/spiped.html")
1799 (synopsis "Create secure pipes between sockets")
1800 (description "Spiped (pronounced \"ess-pipe-dee\") is a utility for creating
1801symmetrically encrypted and authenticated pipes between socket addresses, so
1802that one may connect to one address (e.g., a UNIX socket on localhost) and
1803transparently have a connection established to another address (e.g., a UNIX
1804socket on a different system). This is similar to 'ssh -L' functionality, but
1805does not use SSH and requires a pre-shared symmetric key.")
1806 (license license:bsd-2)))
c2700e78
GB
1807
1808(define-public quagga
1809 (package
1810 (name "quagga")
75377c6c 1811 (version "1.2.4")
c2700e78
GB
1812 (source (origin
1813 (method url-fetch)
1814 (uri (string-append "mirror://savannah/quagga/quagga-"
1815 version ".tar.gz"))
1816 (sha256
1817 (base32
75377c6c 1818 "1lsksqxij5f1llqn86pkygrf5672kvrqn1kvxghi169hqf1c0r73"))
c2700e78
GB
1819 (patches
1820 (search-patches "quagga-reproducible-build.patch"))))
1821 (build-system gnu-build-system)
c695fb76
TGR
1822 (native-inputs `(("pkg-config" ,pkg-config)
1823 ("perl" ,perl)
1824 ("dejagnu" ,dejagnu)))
1825 (inputs `(("readline" ,readline)
1826 ("c-ares" ,c-ares)))
c2700e78
GB
1827 (synopsis "Routing Software Suite")
1828 (description "Quagga is a routing software suite, providing implementations
1829of OSPFv2, OSPFv3, RIP v1 and v2, RIPng and BGP-4 for Unix platforms.
1830
1831The Quagga architecture consists of a core daemon, @command{zebra}, which
1832acts as an abstraction layer to the underlying Unix kernel and presents the
1833Zserv API over a Unix or TCP stream to Quagga clients. It is these Zserv
1834clients which typically implement a routing protocol and communicate routing
1835updates to the zebra daemon.")
340978d7 1836 (home-page "https://www.nongnu.org/quagga/")
c2700e78 1837 (license license:gpl2+)))
4d9d9e3f
LF
1838
1839(define-public thc-ipv6
491f7fc0
LF
1840 (let ((revision "0")
1841 (commit "4bb72573e0950ce6f8ca2800a10748477020029e"))
1842 (package
1843 (name "thc-ipv6")
1844 (version (git-version "3.4" revision commit))
1845 (source (origin
1846 (method git-fetch)
1847 (uri (git-reference
1848 (url "https://github.com/vanhauser-thc/thc-ipv6.git")
1849 (commit commit)))
1850 (file-name (git-file-name name version))
1851 (sha256
1852 (base32
1853 "1x5i6vbsddqc2yks7r1a2fw2fk16qxvd6hpzh1lykjfpkal8fdir"))))
1854 (build-system gnu-build-system)
1855 (arguments
1856 `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
1857 #:tests? #f ; No test suite.
1858 #:phases
1859 (modify-phases %standard-phases
1860 (delete 'configure) ; No ./configure script.
1861 (add-before 'build 'patch-paths
1862 (lambda _
1863 (substitute* "Makefile"
1864 (("/bin/echo") "echo"))
1865 #t))
1866 (add-after 'install 'install-more-docs
1867 (lambda* (#:key outputs #:allow-other-keys)
1868 (let* ((out (assoc-ref outputs "out"))
1869 (doc (string-append out "/share/thc-ipv6/doc")))
1870 (install-file "README" doc)
1871 (install-file "HOWTO-INJECT" doc)
1872 #t))))))
1873 ;; TODO Add libnetfilter-queue once packaged.
1874 (inputs
1875 `(("libpcap" ,libpcap)
1876 ("openssl" ,openssl)
1877 ("perl" ,perl)))
1878 (home-page "https://github.com/vanhauser-thc/thc-ipv6")
1879 (synopsis "IPv6 security research toolkit")
1880 (description "The THC IPv6 Toolkit provides command-line tools and a library
4d9d9e3f
LF
1881for researching IPv6 implementations and deployments. It requires Linux 2.6 or
1882newer and only works on Ethernet network interfaces.")
491f7fc0
LF
1883 ;; AGPL 3 with exception for linking with OpenSSL. See the 'LICENSE' file in
1884 ;; the source distribution for more information.
1885 (license license:agpl3))))
cfd6a3b1
AI
1886
1887(define-public bmon
1888 (package
1889 (name "bmon")
1890 (version "4.0")
1891 (source
1892 (origin
1893 (method url-fetch)
1894 (uri (string-append "https://github.com/tgraf/bmon/releases/download/v"
1895 version "/bmon-" version ".tar.gz"))
1896 (sha256
1897 (base32
1898 "0ylzriv4pwh76344abzl1w219x188gshbycbna35gsyfp09c7z82"))))
1899 (build-system gnu-build-system)
1900 (inputs
1901 `(("libconfuse" ,libconfuse)
1902 ("libnl" ,libnl)
1903 ("ncurses" ,ncurses)))
1904 (native-inputs
1905 `(("pkg-config" ,pkg-config)))
1906 (synopsis "Bandwidth monitor")
1907 (description "bmon is a monitoring and debugging tool to capture
1908networking-related statistics and prepare them visually in a human-friendly
1909way. It features various output methods including an interactive curses user
1910interface and a programmable text output for scripting.")
1911 (home-page "https://github.com/tgraf/bmon")
1912 ;; README.md mentions both the 2-clause BSD and expat licenses, but all
1913 ;; the source files only have expat license headers. Upstream has been
1914 ;; contacted for clarification: https://github.com/tgraf/bmon/issues/59
1915 ;; Update the license field when upstream responds.
1916 (license (list license:bsd-2
1917 license:expat))))
de5308f5
RW
1918
1919(define-public libnet
1920 (package
1921 (name "libnet")
3c85058c
RH
1922 (version "1.2-rc3")
1923 (source
1924 (origin
1925 (method git-fetch)
1926 (uri (git-reference
1927 (url "https://github.com/sam-github/libnet")
1928 (commit (string-append "libnet-" version))))
1929 (file-name (git-file-name name version))
1930 (sha256
1931 (base32
1932 "0cy8w4g5rv963v4p6iq3333kxgdddx2lywp70xf62553a25xhhs4"))))
de5308f5
RW
1933 (build-system gnu-build-system)
1934 (arguments
1935 `(#:phases
1936 (modify-phases %standard-phases
1937 (add-after 'unpack 'chdir
1938 (lambda _ (chdir "libnet") #t))
de5308f5
RW
1939 (add-before 'build 'build-doc
1940 (lambda* (#:key make-flags #:allow-other-keys)
366c1cbb
MW
1941 (apply invoke "make" "-C" "doc" "doc"
1942 make-flags))))))
de5308f5
RW
1943 (native-inputs
1944 `(("autoconf" ,autoconf)
1945 ("automake" ,automake)
1946 ("libtool" ,libtool)
1947 ("doxygen" ,doxygen)))
1948 (home-page "https://sourceforge.net/projects/libnet-dev/")
1949 (synopsis "Framework for low-level network packet construction")
1950 (description
1951 "Libnet provides a fairly portable framework for network packet
1952construction and injection. It features portable packet creation interfaces
1953at the IP layer and link layer, as well as a host of supplementary
1954functionality. Using libnet, quick and simple packet assembly applications
1955can be whipped up with little effort.")
1956 (license license:bsd-2)))
b59a8fd4
TGR
1957
1958(define-public mtr
1959 (package
1960 (name "mtr")
a36eba47 1961 (version "0.93")
b59a8fd4
TGR
1962 (source
1963 (origin
1964 (method url-fetch)
3f80d7ce
TGR
1965 (uri (string-append "ftp://ftp.bitwizard.nl/mtr/"
1966 "mtr-" version ".tar.gz"))
b59a8fd4 1967 (sha256
a36eba47 1968 (base32 "03gid8g4r6a9r40855s4345xm1bylj2kfqkicjwxpmvvccyng712"))))
b59a8fd4
TGR
1969 (build-system gnu-build-system)
1970 (inputs
1971 `(("libcap" ,libcap)
1972 ("ncurses" ,ncurses)))
b59a8fd4
TGR
1973 (arguments
1974 `(#:tests? #f)) ; tests require network access
1975 (home-page "https://www.bitwizard.nl/mtr/")
1976 (synopsis "Network diagnostic tool")
1977 (description
30954e61 1978 "@acronym{mtr, My TraceRoute} combines the functionality of the
b59a8fd4 1979@command{traceroute} and @command{ping} programs in a single network diagnostic
63f5656c
TGR
1980tool. @command{mtr} can use several network protocols to detect intermediate
1981routers (or @dfn{hops}) between the local host and a user-specified destination.
1982It then continually measures the response time and packet loss at each hop, and
b59a8fd4
TGR
1983displays the results in real time.")
1984 (license license:gpl2+)))
5f645557
AVY
1985
1986(define-public strongswan
1987 (package
1988 (name "strongswan")
06c62365 1989 (version "5.8.2")
5f645557
AVY
1990 (source
1991 (origin
1992 (method url-fetch)
1993 (uri (string-append "https://download.strongswan.org/strongswan-"
1994 version ".tar.bz2"))
1995 (sha256
06c62365 1996 (base32 "03j3fx357bh89n44a5v9wdc92azdx2d37j7jmlyr4z1kwzdhv446"))))
5f645557
AVY
1997 (build-system gnu-build-system)
1998 (arguments
1999 `(#:phases
2000 (modify-phases %standard-phases
58246f96 2001 (add-before 'build 'patch-command-file-names
5f645557 2002 (lambda* (#:key inputs #:allow-other-keys)
5f645557
AVY
2003 (substitute* "src/libstrongswan/utils/process.c"
2004 (("/bin/sh")
2005 (string-append (assoc-ref inputs "bash") "/bin/sh")))
2006
2007 (substitute* "src/libstrongswan/tests/suites/test_process.c"
2008 (("/bin/sh") (which "sh"))
2009 (("/bin/echo") (which "echo"))
2010 (("cat") (which "cat")))
58246f96
TGR
2011 #t))
2012 (add-before 'check 'set-up-test-environment
2013 (lambda* (#:key inputs #:allow-other-keys)
5f645557
AVY
2014 (setenv "TZDIR" (string-append (assoc-ref inputs "tzdata")
2015 "/share/zoneinfo"))
2016 #t)))
2017 #:configure-flags
2018 (list
08dd5f67 2019 ;; Disable bsd-4 licensed plugins.
5f645557
AVY
2020 "--disable-des"
2021 "--disable-blowfish")))
2022 (inputs
2023 `(("curl" ,curl)
2024 ("gmp" ,gmp)
2025 ("libgcrypt" ,libgcrypt)
2026 ("openssl" ,openssl)))
2027 (native-inputs
2028 `(("coreutils" ,coreutils)
1bab7340 2029 ("tzdata" ,tzdata-for-tests)))
5f645557
AVY
2030 (synopsis "IKEv1/v2 keying daemon")
2031 (description "StrongSwan is an IPsec implementation originally based upon
2032the FreeS/WAN project. It contains support for IKEv1, IKEv2, MOBIKE, IPv6,
2033NAT-T and more.")
2034 (home-page "https://strongswan.org/")
2035 (license
2036 (list license:gpl2+
2037 ;; src/aikgen/*
2038 ;; src/libcharon/plugins/dnscert/*
2039 ;; src/libcharon/plugins/ext_auth/*
2040 ;; src/libcharon/plugins/vici/ruby/*
2041 ;; src/libcharon/plugins/xauth_pam/xauth_pam_listener.[ch]
2042 license:expat
2043 ;; src/inclue/sys/*
2044 license:bsd-3
2045 ;; src/libstrongswan/plugins/sha3/sha3_keccak.c
2046 license:public-domain
2047 ;; src/libstrongswan/plugins/pkcs11/pkcs11.h
2048 (license:non-copyleft
2049 "file://src/libstrongswan/plugins/pkcs11/pkcs11.h"
2050 "pkcs11 contains a unknown permissive license. View the specific
2051file for more details.")
2052 ;; These files are not included in the
2053 ;; build, they are disabled through
2054 ;; options to ./configure
2055 ;;
2056 ;; src/libstrongswan/plugins/blowfish/bf_enc.c
2057 ;; src/libstrongswan/plugins/blowfish/bf_locl.h
2058 ;; src/libstrongswan/plugins/blowfish/bf_pi.h
2059 ;; src/libstrongswan/plugins/blowfish/bf_skey.c
2060 ;; src/libstrongswan/plugins/blowfish/blowfish_crypter.c
2061 ;; src/libstrongswan/plugins/des/des_crypter.c
2062 license:bsd-4))))
1170198d 2063
2064(define-public amule
2065 (package
2066 (name "amule")
2067 (version "2.3.2")
2068 (source (origin
d25a4876
EF
2069 (method git-fetch)
2070 (uri (git-reference
2071 (url "https://github.com/amule-project/amule")
2072 (commit version)))
2073 (file-name (git-file-name name version))
1170198d 2074 (sha256
2075 (base32
d25a4876 2076 "010wxm6g9f92x6fympj501zbnjka32rzbx0sk3a2y4zpih5d2nsn"))
1170198d 2077 ;; Patch for adopting crypto++ >= 6.0.
2078 (patches (search-patches "amule-crypto-6.patch"))))
2079 (build-system gnu-build-system)
2080 (arguments
2081 `(#:phases
2082 (modify-phases %standard-phases
fc1ed8c1 2083 (delete 'bootstrap) ; bootstrap phase runs too early.
1170198d 2084 (add-after 'patch-source-shebangs 'autogen
2085 (lambda _
2086 (invoke "sh" "autogen.sh")
2087 #t)))
2088 #:configure-flags
2089 '("--disable-rpath"
2090 "--enable-wxcas"
2091 "--enable-cas"
2092 "--enable-alc"
2093 "--enable-alcc"
2094 "--enable-xas"
2095 "--enable-amulecmd"
2096 "--enable-geoip"
2097 "--enable-ccache"
2098 "--enable-nls"
2099 "--enable-optimize"
2100 "--enable-amule-gui"
2101 "--enable-amule-daemon"
2102 "--enable-webserver"
2103 "--with-denoise-level=0")))
2104 (native-inputs
2105 `(("autoconf" ,autoconf)
2106 ("automake" ,automake)
2107 ("gettext-minimal" ,gettext-minimal)
2108 ("perl" ,perl)))
2109 (inputs
2110 `(("zlib" ,zlib)
2111 ("crypto++" ,crypto++)
2112 ("libpng" ,libpng)
de99ba7e 2113 ("wxwidgets-gtk2" ,wxwidgets-gtk2)))
1170198d 2114 (home-page "http://amule.org/")
2115 (synopsis "Peer-to-peer client for the eD2K and Kademlia networks")
2116 (description
2117 "aMule is an eMule-like client for the eD2k and Kademlia peer-to-peer
2118file sharing networks. It includes a graphical user interface (GUI), a daemon
2119allowing you to run a client with no graphical interface, and a Web GUI for
2120remote access. The @command{amulecmd} command allows you to control aMule
2121remotely.")
2122 (license license:gpl2+)))
d282fee5
T
2123
2124(define-public zyre
2125 (package
2126 (name "zyre")
2127 (version "2.0.0")
2128 (source (origin
2129 (method url-fetch)
2130 (uri
2131 (string-append "https://github.com/zeromq/zyre/releases/download/v"
2132 version "/" name "-" version ".tar.gz"))
2133 (sha256
2134 (base32
2135 "0qz2730bng1gs9xbqxhkw88qbsmszgmmrl2g9k6xrg6r3bqvsdc7"))))
2136 (build-system gnu-build-system)
65db7708
MB
2137 (arguments
2138 `(;; Ensure the kernel headers are treated as system headers to suppress
2139 ;; harmless -Werror=pedantic warnings.
2140 #:make-flags (list (string-append "C_INCLUDE_PATH="
2141 (assoc-ref %build-inputs "kernel-headers")
2142 "/include"))))
d282fee5
T
2143 (inputs `(("zeromq" ,zeromq)
2144 ("czmq" ,czmq)
2145 ("libsodium" ,libsodium)))
2146 (synopsis "Framework for proximity-based peer-to-peer applications")
2147 (description "Zyre provides reliable group messaging over local area
2148networks using zeromq. It has these key characteristics:
2149
2150@itemize
2151@item Zyre needs no administration or configuration.
2152@item Peers may join and leave the network at any time.
2153@item Peers talk to each other without any central brokers or servers.
2154@item Peers can talk directly to each other.
2155@item Peers can join groups, and then talk to groups.
2156@item Zyre is reliable, and loses no messages even when the network is heavily loaded.
2157@item Zyre is fast and has low latency, requiring no consensus protocols.
2158@item Zyre is designed for WiFi networks, yet also works well on Ethernet networks.
2159@end itemize")
2160 (home-page "https://github.com/zeromq/zyre")
2161 (license license:mpl2.0)))
f1656a59
DM
2162
2163(define-public can-utils
2164 (package
2165 (name "can-utils")
2166 (version "2018.02.0")
2167 (source (origin
2168 (method git-fetch)
2169 (uri (git-reference
2170 (url "https://github.com/linux-can/can-utils.git")
2171 (commit (string-append "v" version))))
2172 (file-name (git-file-name name version))
2173 (sha256
2174 (base32
2175 "0r0zkm67bdcmbfypjr7z041d4zp0xzb379dyl8cvhmflh12fd2jb"))))
2176 (build-system gnu-build-system)
2177 (arguments
2178 `(#:tests? #f ; No tests exist.
2179 #:make-flags (list "CC=gcc"
2180 (string-append "PREFIX="
2181 (assoc-ref %outputs "out")))
2182 #:phases
2183 (modify-phases %standard-phases
a34dfa24 2184 (delete 'bootstrap)
f1656a59
DM
2185 (delete 'configure))))
2186 (home-page "https://github.com/linux-can/can-utils")
2187 (synopsis "CAN utilities")
2188 (description "This package provides CAN utilities in the following areas:
2189
2190@itemize
2191@item Basic tools to display, record, generate and replay CAN traffic
2192@item CAN access via IP sockets
2193@item CAN in-kernel gateway configuration
2194@item CAN bus measurement and testing
2195@item ISO-TP (ISO15765-2:2016 - this means messages with a body larger than
2196eight bytes) tools
2197@item Log file converters
2198@item Serial Line Discipline configuration for slcan driver
2199@end itemize")
2200 ;; Either BSD-3 or GPL-2 can be used.
2201 (license (list license:bsd-3 license:gpl2))))
d597dda6
NG
2202
2203(define-public asio
2204 (package
2205 (name "asio")
9d391ccd 2206 (version "1.12.2")
d597dda6
NG
2207 (source
2208 (origin
cb9da5d1
TGR
2209 (method url-fetch)
2210 (uri (string-append "mirror://sourceforge/asio/asio/"
74a3ce30 2211 version " (Stable)/asio-" version ".tar.bz2"))
d597dda6 2212 (sha256
9d391ccd 2213 (base32 "1akray4l3hgahmb92sbvsqg128c7g7s92jrkf1sp1fjnfjrxq9sf"))))
d597dda6 2214 (build-system gnu-build-system)
d597dda6
NG
2215 (inputs
2216 `(("boost" ,boost)
2217 ("openssl" ,openssl)))
2218 (arguments
2219 `(#:configure-flags
2220 (list
2221 (string-append "--with-boost=" (assoc-ref %build-inputs "boost"))
cb9da5d1 2222 (string-append "--with-openssl=" (assoc-ref %build-inputs "openssl")))))
d597dda6
NG
2223 (home-page "https://think-async.com/Asio")
2224 (synopsis "C++ library for ASynchronous network I/O")
2225 (description "Asio is a cross-platform C++ library for network and
2226low-level I/O programming that provides developers with a consistent
2227asynchronous model using a modern C++ approach.")
2228 (license license:boost1.0)))
0017e55f 2229
2230(define-public shadowsocks
2231 ;; There are some security fixes after the last release.
2232 (let* ((commit "e332ec93e9c90f1cbee676b022bf2c5d5b7b1239")
2233 (revision "0")
2234 (version (git-version "2.8.2" revision commit)))
2235 (package
2236 (name "shadowsocks")
2237 (version version)
2238 (home-page "https://github.com/shadowsocks/shadowsocks")
2239 (source (origin
2240 (method git-fetch)
2241 (uri (git-reference
2242 (url home-page)
2243 (commit commit)))
2244 (sha256
2245 (base32
2246 "1idd9b4f2pnhcpk1bh030hqg5zq25gkwxd53xi3c0cj242w7sp2j"))
2247 (file-name (git-file-name name version))))
2248 (build-system python-build-system)
2249 (synopsis "Fast tunnel proxy that helps you bypass firewalls")
2250 (description
2251 "This package is a fast tunnel proxy that helps you bypass firewalls.
2252
2253Features:
2254@itemize
2255@item TCP & UDP support
2256@item User management API
2257@item TCP Fast Open
2258@item Workers and graceful restart
2259@item Destination IP blacklist
2260@end itemize")
2261 (license license:asl2.0))))
a8253fbe
RW
2262
2263(define-public net-snmp
2264 (package
2265 (name "net-snmp")
2266 (version "5.8")
2267 (source (origin
2268 (method url-fetch)
2269 (uri (string-append "mirror://sourceforge/net-snmp/net-snmp/"
2270 version "/net-snmp-" version ".tar.gz"))
2271 (sha256
2272 (base32
2273 "1pvajzj9gmj56dmwix0ywmkmy2pglh6nny646hkm7ghfhh03bz5j"))
2274 (modules '((guix build utils)))
2275 (snippet
2276 '(begin
2277 ;; Drop bundled libraries.
2278 (delete-file-recursively "snmplib/openssl")
2279 #t))))
2280 (build-system gnu-build-system)
2281 (arguments
2282 `(#:test-target "test"
2283 ;; XXX: With parallel build enabled, Perl modules may not get linked with
2284 ;; libnetsnmp. See e.g. <https://bugzilla.novell.com/show_bug.cgi?id=819497>.
2285 #:parallel-build? #f
2286 #:configure-flags
2287 (list (string-append "LDFLAGS=-Wl,-rpath="
2288 (assoc-ref %outputs "out")
2289 "/lib")
b5d1286f
OP
2290 "--with-logfile=/var/log/snmpd.log"
2291 (string-append "--with-openssl="
2292 (assoc-ref %build-inputs "openssl")))
a8253fbe
RW
2293 #:phases
2294 (modify-phases %standard-phases
2295 (add-after 'unpack 'patch-tests
2296 (lambda* (#:key inputs #:allow-other-keys)
2297 (substitute* "testing/fulltests/support/simple_TESTCONF.sh"
2298 (("NETSTAT=\"\"")
2299 (string-append "NETSTAT=\"" (which "netstat") "\"")))
2300 (substitute* '("testing/fulltests/default/T065agentextend_simple"
2301 "testing/fulltests/default/T115agentxperl_simple")
2302 (("/usr/bin/env") (which "env")))
2303 (substitute* "testing/fulltests/default/T065agentextend_sh_simple"
2304 (("/bin/sh") (which "sh")))
2305 ;; These tests require network access.
2306 (for-each delete-file
2307 '("testing/fulltests/default/T070com2sec_simple"
2308 "testing/fulltests/default/T071com2sec6_simple"))
2309 #t))
2310 (add-after 'unpack 'patch-Makefile.PL
2311 (lambda* (#:key outputs #:allow-other-keys)
2312 (substitute* "Makefile.in"
2313 (("Makefile.PL -NET")
2314 (string-append "Makefile.PL PREFIX="
2315 (assoc-ref outputs "out")
2316 " INSTALLDIRS=site" " NO_PERLLOCAL=1"
2317 " -NET")))
2318 #t)))))
2319 (inputs
2320 `(("perl" ,perl)
2321 ("openssl" ,openssl)
2322 ("libnl" ,libnl)))
2323 ;; These inputs are only needed for tests.
2324 (native-inputs
2325 `(("net-tools" ,net-tools)
2326 ("coreutils" ,coreutils)
2327 ("grep" ,grep)))
2328 (home-page "http://www.net-snmp.org/")
2329 (synopsis "Simple Network Management Protocol library and tools")
2330 (description "The @dfn{Simple Network Management Protocol} (SNMP) is a
2331widely used protocol for monitoring the health and welfare of network
2332equipment (e.g. routers), computer equipment and even devices like UPSs.
2333Net-SNMP is a suite of applications used to implement SNMP v1, SNMP v2c and
2334SNMP v3 using both IPv4 and IPv6.")
66687960
EF
2335 ;; This only affects OpenBSD
2336 ;; https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-8100
2337 (properties `((lint-hidden-cve . ("CVE-2015-8100"))))
a8253fbe
RW
2338 (license (list license:bsd-3
2339 (license:non-copyleft
2340 "http://www.net-snmp.org/about/license.html"
2341 "CMU/UCD copyright notice")))))
277f25ce
OP
2342
2343(define-public ubridge
2344 (package
2345 (name "ubridge")
f805785e 2346 (version "0.9.16")
5af7428b
TGR
2347 (source
2348 (origin
2349 (method git-fetch)
2350 (uri (git-reference
2351 (url "https://github.com/GNS3/ubridge.git")
2352 (commit (string-append "v" version))))
2353 (file-name (git-file-name name version))
2354 (sha256
f805785e 2355 (base32 "1bind7ylgxs743vfdmpdrpp4iamy461bc3i7nxza91kj7hyyjz6h"))))
277f25ce
OP
2356 (build-system gnu-build-system)
2357 (arguments
5af7428b 2358 `(#:tests? #f ; no tests
277f25ce
OP
2359 #:make-flags '("CC=gcc")
2360 #:phases
2361 (modify-phases %standard-phases
5af7428b 2362 (delete 'configure) ; no configure script
277f25ce
OP
2363 (add-before 'install 'set-bindir
2364 (lambda* (#:key inputs outputs #:allow-other-keys)
2365 (let ((bin (string-append (assoc-ref outputs "out")
2366 "/bin")))
2367 (mkdir-p bin)
2368 (substitute* "Makefile"
2369 (("\\$\\(BINDIR\\)") bin)
2370 (("\tsetcap cap_net.*$") "")))
2371 #t)))))
2372 (inputs
2373 `(("libpcap" ,libpcap)))
2374 (home-page "https://github.com/GNS3/ubridge/")
2375 (synopsis "Bridge for UDP tunnels, Ethernet, TAP and VMnet interfaces")
2376 (description "uBridge is a simple program to create user-land bridges
2377between various technologies. Currently, bridging between UDP tunnels,
2378Ethernet and TAP interfaces is supported. Packet capture is also supported.")
2379 (license license:gpl3+)))
5bd3134e
PN
2380
2381(define-public hcxtools
03c443ce
TGR
2382 (package
2383 (name "hcxtools")
28553e17 2384 (version "5.2.0")
03c443ce
TGR
2385 (source
2386 (origin
2387 (method git-fetch)
2388 (uri (git-reference
2389 (url "https://github.com/ZerBea/hcxtools.git")
2390 (commit version)))
2391 (sha256
28553e17 2392 (base32 "0k2qlq9hz5zc21nyc6yrnfqzga7hydn5mm0x3rpl2fhkwl81lxcn"))
03c443ce
TGR
2393 (file-name (git-file-name name version))))
2394 (build-system gnu-build-system)
2395 (inputs
2396 `(("curl" ,curl)
2397 ("libpcap" ,libpcap)
2398 ("openssl" ,openssl)
2399 ("zlib" ,zlib)))
2400 (arguments
2401 `(#:make-flags
2402 (list "CC=gcc"
2403 (string-append "INSTALLDIR=" (assoc-ref %outputs "out") "/bin"))
2404 #:tests? #f ; no test suite
2405 #:phases
2406 (modify-phases %standard-phases
2407 (delete 'configure)
2408 (add-after 'unpack 'set-environment
2409 (lambda* (#:key inputs #:allow-other-keys)
2410 (setenv "C_INCLUDE_PATH"
2411 (string-append (assoc-ref inputs "curl") "/include:"
2412 (assoc-ref inputs "libpcap") "/include:"
2413 (assoc-ref inputs "openssl") "/include:"
97149c57 2414 (assoc-ref inputs "zlib") "/include"))
5bd3134e 2415 #t)))))
03c443ce
TGR
2416 (home-page "https://github.com/ZerBea/hcxtools")
2417 (synopsis "Capture wlan traffic to hashcat and John the Ripper")
2418 (description
2419 "This package contains a small set of tools to capture and convert
5bd3134e 2420packets from wireless devices for use with hashcat or John the Ripper.")
03c443ce 2421 (license license:expat)))
a87ee0e4
PN
2422
2423(define-public hcxdumptool
4f7db085
TGR
2424 (package
2425 (name "hcxdumptool")
35805bff 2426 (version "5.2.0")
4f7db085
TGR
2427 (source
2428 (origin
2429 (method git-fetch)
2430 (uri (git-reference
2431 (url "https://github.com/ZerBea/hcxdumptool.git")
2432 (commit version)))
2433 (sha256
35805bff 2434 (base32 "0pg1pvg029gm4rj0fj5kcsjb32hixgn4cxsgiir7spkmacf1qm4q"))
4f7db085
TGR
2435 (file-name (git-file-name name version))))
2436 (build-system gnu-build-system)
2437 (arguments
2438 `(#:make-flags
2439 (list "CC=gcc"
2440 (string-append "INSTALLDIR=" (assoc-ref %outputs "out") "/bin"))
2441 #:tests? #f ; no test suite
2442 #:phases
2443 (modify-phases %standard-phases
2444 (delete 'configure))))
2445 (home-page "https://github.com/ZerBea/hcxdumptool")
2446 (synopsis "Small tool to capture packets from wlan devices")
2447 (description
2448 "Small tool to capture packets from WLAN devices. After capturing,
a87ee0e4
PN
2449upload the \"uncleaned\" cap to @url{https://wpa-sec.stanev.org/?submit} to
2450see if the access point or the client is vulnerable to a dictionary attack.
2451Convert the cap file to hccapx format and/or to WPA-PMKID-PBKDF2
2452hashline (16800) with @command{hcxpcaptool} from the @code{hcxtools} package
2453and check if the WLAN key or the master key was transmitted unencrypted.")
4f7db085 2454 (license license:expat)))
2913a942
AI
2455
2456(define-public dante
2457 (package
2458 (name "dante")
2459 (version "1.4.2")
2460 (source
2461 (origin
2462 (method url-fetch)
2463 (uri (string-append "https://www.inet.no/dante/files/dante-"
2464 version ".tar.gz"))
2465 (sha256
2466 (base32
2467 "19rqzj167q73ag20zxpvswhkk0bj56r5maf83v5016sw7vrcz5sc"))))
2468 (build-system gnu-build-system)
7789bf95
SB
2469 (arguments
2470 ;; XXX: The dynamic socks library doesn't work with 'libc.so' (GNU ld
2471 ;; script). When preloading is enabled, 'sockd' failed with:
2472 ;; … Failed to open library "libc.so": …: invalid ELF header
2473 '(#:configure-flags '("--disable-preload")))
2913a942
AI
2474 (home-page "https://www.inet.no/dante/")
2475 (synopsis "SOCKS server and client")
2476 (description "Dante is a SOCKS client and server implementation. It can
2477be installed on a machine with access to an external TCP/IP network and will
2478allow all other machines, without direct access to that network, to be relayed
2479through the machine the Dante server is running on. The external network will
2480never see any machines other than the one Dante is running on.")
2481 (license (license:non-copyleft "file://LICENSE"))))
362fba83
PN
2482
2483(define-public restbed
2484 (let ((commit "6eb385fa9051203f28bf96cc1844bbb5a9a6481f"))
2485 (package
2486 (name "restbed")
2487 (version (git-version "4.6" "1" commit))
2488 (source
2489 (origin
2490 (method git-fetch)
2491 (uri (git-reference
2492 (url "https://github.com/Corvusoft/restbed/")
2493 (commit commit)))
2494 (file-name (string-append name "-" version ".tar.gz"))
2495 (sha256
2496 (base32 "0k60i5drklqqrb4khb25fzkgz9y0sncxf1sp6lh2bm1m0gh0661n"))))
2497 (build-system cmake-build-system)
2498 (inputs
2499 `(("asio" ,asio)
2500 ("catch" ,catch-framework)
2501 ("openssl" ,openssl)))
2502 (arguments
2503 `(#:tests? #f
2504 #:configure-flags
2505 '("-DBUILD_TESTS=NO"
2506 "-DBUILD_EXAMPLES=NO"
2507 "-DBUILD_SSL=NO"
2508 "-DBUILD_SHARED=NO")
2509 #:phases
2510 (modify-phases %standard-phases
2511 (add-after 'unpack 'apply-patches-and-fix-paths
2512 (lambda* (#:key inputs #:allow-other-keys)
2513 (let ((asio (assoc-ref inputs "asio"))
2514 (catch (assoc-ref inputs "catch"))
2515 (openssl (assoc-ref inputs "openssl")))
2516 (substitute* "cmake/Findasio.cmake"
2517 (("(find_path\\( asio_INCLUDE asio\\.hpp HINTS ).*$" all begin)
2518 (string-append begin " \"" asio "/include\" )")))
2519 (substitute* "cmake/Findcatch.cmake"
2520 (("(find_path\\( catch_INCLUDE catch\\.hpp HINTS ).*$" all begin)
2521 (string-append begin " \"" catch "/include\" )")))
2522 (substitute* "cmake/Findopenssl.cmake"
2523 (("(find_library\\( ssl_LIBRARY ssl ssleay32 HINTS ).*$" all begin)
2524 (string-append begin " \"" openssl "/lib\" )"))
2525 (("(find_library\\( crypto_LIBRARY crypto libeay32 HINTS ).*$" all begin)
2526 (string-append begin " \"" openssl "/lib\" )"))
2527 (("(find_path\\( ssl_INCLUDE openssl/ssl\\.h HINTS ).*$" all begin)
2528 (string-append begin " \"" openssl "/include\" )")))))))))
2529 (synopsis "Asynchronous RESTful functionality to C++11 applications")
2530 (description "Restbed is a comprehensive and consistent programming
2531model for building applications that require seamless and secure
2532communication over HTTP.")
2533 (home-page "https://github.com/Corvusoft/restbed")
2534 (license license:agpl3+))))
e0fa6413 2535
13d79b64
PN
2536(define-public restinio
2537 (package
2538 (name "restinio")
2539 (version "0.6.0.1")
2540 (source (origin
2541 (method git-fetch)
2542 (uri (git-reference
2543 (url "https://github.com/Stiffstream/restinio.git")
2544 (commit (string-append "v." version))))
2545 (file-name (git-file-name name version))
2546 (sha256
2547 (base32
2548 "1c25kpx652nng8m1sqf5an2c3c4g3k6zj85mkkaxzk88iwfzq1s8"))))
2549 (build-system cmake-build-system)
2550 (inputs ; TODO: Need to force-keep references on some inputs, e.g. boost.
2551 `(("zlib" ,zlib)
2552 ("catch2" ,catch-framework2)
2553 ("openssl" ,openssl)
2554 ("boost" ,boost)
2555 ("pcre" ,pcre)
2556 ("pcre2" ,pcre2)
2557 ("sobjectizer" ,sobjectizer)))
2558 (propagated-inputs
2559 `(("asio", asio)
71ce0b52 2560 ("fmt" ,fmt)
13d79b64
PN
2561 ("http-parser", http-parser)))
2562 (arguments
2563 `(#:configure-flags '("-DRESTINIO_INSTALL=on")
2564 #:tests? #f ; TODO: The tests are called from the root CMakelist, need RESTINIO_TEST=on.
2565 #:phases
2566 (modify-phases %standard-phases
2567 (add-after 'unpack 'change-directory
2568 (lambda _
2569 (chdir "dev/restinio")
2570 #t)))))
2571 (home-page "https://stiffstream.com/en/products/restinio.html")
2572 (synopsis "C++14 library that gives you an embedded HTTP/Websocket server")
2573 (description "RESTinio is a header-only C++14 library that gives you an embedded
2574HTTP/Websocket server. It is based on standalone version of ASIO
2575and targeted primarily for asynchronous processing of HTTP-requests.")
2576 (license license:bsd-3)))
2577
e0fa6413
PN
2578(define-public opendht
2579 (package
2580 (name "opendht")
4fe8a9f2 2581 (version "2.0.0beta2")
e0fa6413
PN
2582 (source (origin
2583 (method git-fetch)
2584 (uri (git-reference
2585 (url "https://github.com/savoirfairelinux/opendht.git")
2586 (commit version)))
2587 (file-name (git-file-name name version))
2588 (sha256
2589 (base32
4fe8a9f2
JW
2590 "02ix0rvvyhq22gd5djcq84qz08ji7ln93faf23b27zjzni2klzv5"))))
2591 ;; Since 2.0, the gnu-build-system does not seem to work anymore, upstream bug?
2592 (build-system cmake-build-system)
e0fa6413
PN
2593 (inputs
2594 `(("gnutls" ,gnutls)
2595 ("nettle" ,nettle)
2596 ("readline" ,readline)
e0fa6413 2597 ("jsoncpp" ,jsoncpp)
4fe8a9f2 2598 ("openssl" ,openssl)
71ce0b52 2599 ("fmt" ,fmt)))
e0fa6413 2600 (propagated-inputs
4fe8a9f2 2601 `(("argon2" ,argon2) ; TODO: Needed for the pkg-config .pc file to work?
1ac0c1b8 2602 ("msgpack" ,msgpack))) ;included in several installed headers
e0fa6413
PN
2603 (native-inputs
2604 `(("autoconf" ,autoconf)
2605 ("pkg-config" ,pkg-config)
4fe8a9f2 2606 ("restinio" ,restinio)
e0fa6413 2607 ("automake" ,automake)
4fe8a9f2
JW
2608 ("libtool" ,libtool)
2609 ("cppunit" ,cppunit)))
e0fa6413 2610 (arguments
4fe8a9f2
JW
2611 `(#:tests? #f ; Tests require network connection.
2612 #:configure-flags
2613 '(;; "-DOPENDHT_TESTS=on"
2614 "-DOPENDHT_TOOLS=off"
2615 "-DOPENDHT_PYTHON=off"
2616 "-DOPENDHT_PROXY_SERVER=on"
2617 "-DOPENDHT_PUSH_NOTIFICATIONS=on"
2618 "-DOPENDHT_PROXY_SERVER_IDENTITY=on"
2619 "-DOPENDHT_PROXY_CLIENT=on")))
e0fa6413
PN
2620 (home-page "https://github.com/savoirfairelinux/opendht/")
2621 (synopsis "Distributed Hash Table (DHT) library")
2622 (description "OpenDHT is a Distributed Hash Table (DHT) library. It may
2623be used to manage peer-to-peer network connections as needed for real time
2624communication.")
2625 (license license:gpl3+)))
dbf87ecb
GB
2626
2627(define-public frrouting
2628 (package
2629 (name "frrouting")
2630 (version "6.0.2")
2631 (source (origin
2632 (method url-fetch)
2633 (uri (string-append "https://github.com/FRRouting/frr/releases/"
2634 "download/frr-" version "/frr-" version
2635 ".tar.xz"))
2636 (sha256
2637 (base32
2638 "0xfrvi62w8qlh46f504ka0skb7pm0g0p8vmdng4w90gsbirlzpdd"))))
2639 (build-system gnu-build-system)
2640 (inputs
2641 `(("c-ares" ,c-ares)
2642 ("json-c" ,json-c)
2643 ("readline" ,readline)))
2644 (native-inputs
2645 `(("perl" ,perl)
2646 ("pkg-config" ,pkg-config)
2647 ("python" ,python-wrapper)
2648 ("python-pytest" ,python-pytest)))
2649 (home-page "https://frrouting.org/")
2650 (synopsis "IP routing protocol suite")
2651 (description "FRRouting (FRR) is an IP routing protocol suite which includes
2652protocol daemons for BGP, IS-IS, LDP, OSPF, PIM, and RIP. ")
2653 (license license:gpl2+)))
b72c22c0
BW
2654
2655(define-public iwd
2656 (package
2657 (name "iwd")
2658 (version "0.21")
2659 (source (origin
2660 (method git-fetch)
2661 (uri (git-reference
2662 (url "https://git.kernel.org/pub/scm/network/wireless/iwd.git")
2663 (commit version)))
2664 (file-name (git-file-name name version))
2665 (sha256
2666 (base32
2667 "001dikinsa6kshwscjbvwipavzwpqnpvx9fpshcn63gbvbhyd393"))))
2668 (build-system gnu-build-system)
2669 (inputs
2670 `(("dbus" ,dbus)
2671 ("libtool" ,libtool)
2672 ("ell" ,ell)
2673 ("readline" ,readline)))
2674 (native-inputs
2675 `(("asciidoc" ,asciidoc)
2676 ("autoconf" ,autoconf)
2677 ("automake" ,automake)
2678 ("pkgconfig" ,pkg-config)
2679 ("python" ,python)
2680 ("openssl" ,openssl)))
2681 (arguments
2682 `(#:configure-flags
2683 (let ((dbus (assoc-ref %outputs "out")))
2684 (list "--disable-systemd-service"
2685 "--enable-external-ell"
2686 "--enable-hwsim"
2687 "--enable-tools"
2688 "--enable-wired"
2689 "--enable-docs"
2690 "--localstatedir=/var"
2691 (string-append "--with-dbus-datadir=" dbus "/share/")
2692 (string-append "--with-dbus-busdir="
2693 dbus "/share/dbus-1/system-services")))
2694 #:phases
2695 (modify-phases %standard-phases
2696 (add-before 'bootstrap 'pre-bootstrap
2697 (lambda _
2698 (substitute* "Makefile.am"
2699 ;; Test disabled because it needs the kernel module
2700 ;; 'pkcs8_key_parser' loaded.
2701 (("unit\\/test-eapol.*? ") "")
2702 ;; Don't try to 'mkdir /var'.
2703 (("\\$\\(MKDIR_P\\) -m 700") "true"))
2704 #t)))))
2705 (home-page "https://git.kernel.org/pub/scm/network/wireless/iwd.git/")
2706 (synopsis "Internet Wireless Daemon")
2707 (description "iwd is a wireless daemon for Linux that aims to replace WPA
2708Supplicant. It optimizes resource utilization by not depending on any external
2709libraries and instead utilizing features provided by the Linux kernel to the
2710maximum extent possible.")
2711 (license license:lgpl2.1+)))
b080b6d9
T
2712
2713(define-public batctl
2714 (package
2715 (name "batctl")
a63209a2 2716 (version "2019.5")
b080b6d9
T
2717 (source
2718 (origin
2719 (method url-fetch)
2720 (uri (string-append "https://downloads.open-mesh.org/batman/releases/batman-adv-"
2721 version "/batctl-" version ".tar.gz"))
2722 (sha256
a63209a2 2723 (base32 "1b9w4636dq8m38nzr8j0v0j3b0vdsw84c58c2isc33h66dx8brgz"))))
b080b6d9
T
2724 (inputs
2725 `(("libnl" ,libnl)))
2726 (native-inputs
2727 `(("pkg-config" ,pkg-config)))
2728 (build-system gnu-build-system)
2729 (arguments
2730 `(#:tests? #f
2731 ;; Batctl only has a makefile. Thus we disable tests and
2732 ;; configuration, passing in a few make-flags.
2733 #:phases (modify-phases %standard-phases (delete 'configure))
2734 #:make-flags
2735 (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
2736 (string-append "PKG_CONFIG=" (assoc-ref %build-inputs "pkg-config")
2737 "/bin/pkg-config")
2738 "CC=gcc")))
2739 (home-page "https://www.open-mesh.org/projects/batman-adv/wiki/Wiki")
2740 (synopsis "Management tool for the mesh networking BATMAN protocol")
2741 (description "This package provides a control tool for the
2742B.A.T.M.A.N. mesh networking routing protocol provided by the Linux kernel
2743module @code{batman-adv}, for Layer 2.")
2744 (license license:gpl2+)))
079ec547
AG
2745
2746(define-public pagekite
2747 (package
2748 (name "pagekite")
8c655deb 2749 (version "1.5.0.191126")
079ec547
AG
2750 (source
2751 (origin
8c655deb
AG
2752 (method git-fetch)
2753 (uri (git-reference
2754 (url "https://github.com/pagekite/PyPagekite.git")
2755 (commit (string-append "v" version))))
2756 (file-name (git-file-name name version))
079ec547 2757 (sha256
8c655deb 2758 (base32 "0mncfjfrr13sm84g5z49qxg5cy791h5qxphjsl77x91zs3m36c8l"))))
079ec547
AG
2759 (build-system python-build-system)
2760 (arguments
8c655deb 2761 `(#:phases
079ec547
AG
2762 (modify-phases %standard-phases
2763 (add-after 'install 'install-man-page
2764 (lambda* (#:key inputs outputs #:allow-other-keys)
2765 (let* ((out (assoc-ref outputs "out"))
2766 (man (string-append out "/share/man")))
2767 (invoke "make"
2768 (string-append "PYTHONPATH=" (getenv "PYTHONPATH"))
2769 "doc/pagekite.1")
2770 (install-file "doc/pagekite.1" (string-append man "/man1"))
2771 #t))))))
2772 (inputs
8c655deb
AG
2773 `(("python-six" ,python-six)
2774 ("python-socksipychain" ,python-socksipychain)))
079ec547
AG
2775 (home-page "https://pagekite.net/")
2776 (synopsis "Make localhost servers publicly visible")
2777 (description
2778 "PageKite implements a tunneled reverse proxy which makes it easy to make
2779a service (such as an HTTP or SSH server) on localhost visible to the wider
2780Internet, even behind NAT or restrictive firewalls. A managed front-end relay
2781service is available at @url{https://pagekite.net/}, or you can run your own.")
2782 (license license:agpl3+)))
ad54d6c9
DS
2783
2784(define-public ipcalc
2785 (package
2786 (name "ipcalc")
2787 (version "0.41")
2788 (source (origin
2789 (method url-fetch)
2790 (uri (string-append "http://jodies.de/ipcalc-archive/"
2791 name "-" version ".tar.gz"))
2792 (sha256
2793 (base32
2794 "12if9sm8h2ac0pgwkw835cgyqjxm6h27k4kfn2vfas9krrqwbafx"))))
2795 (inputs `(("perl" ,perl)
2796 ("tar" ,tar)
2797 ("gzip" ,gzip)
2798 ("tarball" ,source)))
2799 (build-system trivial-build-system) ;no Makefile.PL
2800 (arguments
2801 `(#:modules ((guix build utils))
2802 #:builder
2803 (begin
2804 (use-modules (guix build utils))
2805 (use-modules (srfi srfi-1))
2806 (let* ((source (assoc-ref %build-inputs "source"))
2807 (perl (string-append (assoc-ref %build-inputs "perl")
2808 "/bin"))
2809 (tar (assoc-ref %build-inputs "tar"))
2810 (gz (assoc-ref %build-inputs "gzip"))
2811 (out (assoc-ref %outputs "out"))
2812 (bin (string-append out "/bin"))
2813 (doc (string-append out "/share/doc/ipcalc")))
2814 (setenv "PATH" (string-append gz "/bin"))
2815 (invoke (string-append tar "/bin/tar") "xvf" source)
2816 (chdir (string-append ,name "-" ,version))
2817
2818 (install-file "ipcalc" bin)
2819 (patch-shebang (string-append bin "/ipcalc") (list perl))
2820 #t))))
2821 (synopsis "Simple IP network calculator")
2822 (description "ipcalc takes an IP address and netmask and calculates the
2823resulting broadcast, network, Cisco wildcard mask, and host range. By giving
2824a second netmask, you can design subnets and supernets. It is also intended
2825to be a teaching tool and presents the subnetting results as
2826easy-to-understand binary values.")
2827 (home-page "http://jodies.de/ipcalc")
2828 (license license:gpl2+)))
a0993c29 2829
b51863d2
VL
2830(define-public tunctl
2831 (package
2832 (name "tunctl")
2833 (version "1.5")
2834 (source
2835 (origin
2836 (method url-fetch)
24d9354c 2837 (uri (string-append "mirror://sourceforge/tunctl/tunctl/" version "/"
b51863d2
VL
2838 "tunctl-" version ".tar.gz"))
2839 (sha256
2840 (base32 "1zsgn7w6l2zh2q0j6qaw8wsx981qcr536qlz1lgb3b5zqr66qama"))))
2841 (build-system gnu-build-system)
2842 (arguments
2843 `(#:phases
2844 (modify-phases %standard-phases
2845 (delete 'bootstrap) ;there is no configure.ac file
2846 (delete 'configure) ;there is no configure script
2847 (delete 'check) ;there are no tests
2848 (replace 'build
2849 (lambda _
2850 (setenv "CC" "gcc")
2851 (invoke "make" "tunctl")))
2852 ;; TODO: Requires docbook2x to generate man page from SGML.
2853 (replace 'install
2854 (lambda* (#:key outputs #:allow-other-keys)
2855 (let* ((out (assoc-ref outputs "out"))
2856 (bin (string-append out "/bin")))
2857 (install-file "tunctl" bin))
2858 #t)))))
2859 (home-page "http://tunctl.sourceforge.net")
2860 (synopsis "Utility to set up and maintain TUN/TAP network interfaces")
2861 (description "Tunctl is used to set up and maintain persistent TUN/TAP
2862network interfaces, enabling user applications to simulate network traffic.
2863Such interfaces are useful for VPN software, virtualization, emulation,
2864simulation, and a number of other applications.")
2865 (license license:gpl2)))
2866
a0993c29
DNB
2867(define-public vde2
2868 (package
2869 (name "vde2")
2870 (version "2.3.2")
2871 (source
2872 (origin
2873 (method url-fetch)
2874 (uri "mirror://sourceforge/vde/vde2/2.3.2/vde2-2.3.2.tar.gz")
2875 (sha256
2876 (base32 "14xga0ib6p1wrv3hkl4sa89yzjxv7f1vfqaxsch87j6scdm59pr2"))))
2877 (build-system gnu-build-system)
2878 (arguments
2879 `(#:parallel-build? #f)) ; Build fails if #t.
2880 (inputs
2881 `(("python" ,python)
2882 ("libpcap" ,libpcap)
2883 ("openssl" ,openssl-1.0))) ; Build fails with 1.1.
2884 (home-page "https://github.com/virtualsquare/vde-2")
2885 (synopsis "Virtual Distributed Ethernet")
2886 (description "VDE is a set of programs to provide virtual software-defined
2887Ethernet network interface controllers across multiple virtual or
2888physical, local or remote devices. The VDE architecture provides
2889virtual counterparts to hardware components such as switches and
2890cables.")
2891 (license (list license:gpl2
2892 license:lgpl2.1 ; libvdeplug
2893 (license:non-copyleft ; slirpvde
2894 "file://COPYING.slirpvde"
2895 "See COPYING.slirpvde in the distribution.")))))
96945cab
BW
2896
2897(define-public haproxy
2898 (package
2899 (name "haproxy")
2900 (version "2.1.3")
2901 (source (origin
2902 (method url-fetch)
2903 (uri (string-append "https://www.haproxy.org/download/"
2904 (version-major+minor version)
2905 "/src/haproxy-" version ".tar.gz"))
2906 (sha256
2907 (base32
2908 "0n8bw3d6gikr8c56ycrvksp1sl0b4yfzp19867cxkl3l0daqwrxv"))))
2909 (build-system gnu-build-system)
2910 (arguments
2911 `(#:make-flags
2912 (let* ((out (assoc-ref %outputs "out")))
2913 (list (string-append "PREFIX=" out)
2914 (string-append "DOCDIR=" out "/share/" ,name)
2915 "TARGET=linux-glibc"
2916 "USE_LUA=1"
2917 "USE_OPENSSL=1"
2918 "USE_ZLIB=1"
2919 "USE_PCRE_2=1"))
2920 #:tests? #f ; there are only regression tests, using varnishtest
2921 #:phases
2922 (modify-phases %standard-phases
2923 (delete 'configure))))
2924 (inputs
2925 `(("lua" ,lua)
2926 ("openssl" ,openssl)
2927 ("pcre2" ,pcre2)
2928 ("zlib" ,zlib)))
2929 (home-page "https://www.haproxy.org/")
2930 (synopsis "Reliable, high performance TCP/HTTP load balancer")
2931 (description "HAProxy is a free, very fast and reliable solution offering
2932high availability, load balancing, and proxying for TCP and HTTP-based
2933applications. It is particularly suited for web sites crawling under very
2934high loads while needing persistence or Layer7 processing. Supporting tens of
2935thousands of connections is clearly realistic with today's hardware.")
2936 (license (list license:gpl2+
2937 license:lgpl2.1
2938 license:lgpl2.1+))))