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