gnu: Move sqlite to separate module.
[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>
5ac1143d 7;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
42ff54d5 8;;; Copyright © 2016 John Darrington <jmd@gnu.org>
5e332c57 9;;; Copyright © 2016, 2017, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
d85b398b 10;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
4a78fd46 11;;; Copyright © 2016, 2017 Nils Gillmann <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>
fc1ed8c1 17;;; Copyright © 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
3c85058c 18;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
c2700e78 19;;; Copyright © 2017 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
RW
26;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
27;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
4715f92e 28;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
f6d9b3de
LC
29;;;
30;;; This file is part of GNU Guix.
31;;;
32;;; GNU Guix is free software; you can redistribute it and/or modify it
33;;; under the terms of the GNU General Public License as published by
34;;; the Free Software Foundation; either version 3 of the License, or (at
35;;; your option) any later version.
36;;;
37;;; GNU Guix is distributed in the hope that it will be useful, but
38;;; WITHOUT ANY WARRANTY; without even the implied warranty of
39;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
40;;; GNU General Public License for more details.
41;;;
42;;; You should have received a copy of the GNU General Public License
43;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
44
8a413bca 45(define-module (gnu packages networking)
f6d9b3de
LC
46 #:use-module ((guix licenses) #:prefix license:)
47 #:use-module (guix packages)
48 #:use-module (guix download)
491f7fc0 49 #:use-module (guix git-download)
167a541f 50 #:use-module (guix build-system cmake)
834a2fc1 51 #:use-module (guix build-system glib-or-gtk)
f6d9b3de 52 #:use-module (guix build-system gnu)
af5faef9 53 #:use-module (guix build-system perl)
9e6c7c42 54 #:use-module (guix build-system python)
8d60dd71 55 #:use-module (gnu packages)
834a2fc1
NG
56 #:use-module (gnu packages admin)
57 #:use-module (gnu packages adns)
82ee141b 58 #:use-module (gnu packages algebra)
834a2fc1 59 #:use-module (gnu packages audio)
de5308f5 60 #:use-module (gnu packages autotools)
5f645557 61 #:use-module (gnu packages base)
834a2fc1 62 #:use-module (gnu packages bison)
d597dda6 63 #:use-module (gnu packages boost)
998afc36 64 #:use-module (gnu packages check)
4fb5f830 65 #:use-module (gnu packages code)
834a2fc1 66 #:use-module (gnu packages compression)
1170198d 67 #:use-module (gnu packages crypto)
9e6c7c42 68 #:use-module (gnu packages curl)
c2700e78 69 #:use-module (gnu packages dejagnu)
de5308f5 70 #:use-module (gnu packages documentation)
834a2fc1 71 #:use-module (gnu packages flex)
82ee141b 72 #:use-module (gnu packages gettext)
961012a0 73 #:use-module (gnu packages glib)
167a541f 74 #:use-module (gnu packages gnome)
834a2fc1
NG
75 #:use-module (gnu packages gnupg)
76 #:use-module (gnu packages gtk)
1170198d 77 #:use-module (gnu packages image)
9c798f90 78 #:use-module (gnu packages libidn)
834a2fc1
NG
79 #:use-module (gnu packages linux)
80 #:use-module (gnu packages lua)
5f645557 81 #:use-module (gnu packages multiprecision)
89e34644 82 #:use-module (gnu packages kerberos)
834a2fc1 83 #:use-module (gnu packages ncurses)
e0fa6413
PN
84 #:use-module (gnu packages nettle)
85 #:use-module (gnu packages password-utils)
d85b398b 86 #:use-module (gnu packages pcre)
834a2fc1 87 #:use-module (gnu packages perl)
5ccde207 88 #:use-module (gnu packages perl-check)
998afc36 89 #:use-module (gnu packages pkg-config)
834a2fc1 90 #:use-module (gnu packages python)
a68b4514 91 #:use-module (gnu packages python-web)
44d10b1f 92 #:use-module (gnu packages python-xyz)
d016b60f 93 #:use-module (gnu packages qt)
c2700e78 94 #:use-module (gnu packages readline)
e0fa6413 95 #:use-module (gnu packages serialization)
cd0322a3 96 #:use-module (gnu packages sqlite)
d016b60f 97 #:use-module (gnu packages ssh)
4fb5f830
TGR
98 #:use-module (gnu packages textutils)
99 #:use-module (gnu packages tls)
af5faef9 100 #:use-module (gnu packages valgrind)
cfd6a3b1 101 #:use-module (gnu packages wm)
1170198d 102 #:use-module (gnu packages wxwidgets)
b3623b6f 103 #:use-module (gnu packages xml)
af5faef9 104 #:use-module (ice-9 match))
f6d9b3de 105
f3fda298
TGR
106;; The gnu.org ‘home’ for this GNU project is a directory listing with 1.6.0 as
107;; the latest version. The author's git repository, mentioned in the 1.6.0
108;; README and otherwise legit-looking, contains a proper 1.7.0 release tarball
109;; with many OUI updates. Use it, even though it's also several years old now.
c791efde
JD
110(define-public macchanger
111 (package
112 (name "macchanger")
f3fda298
TGR
113 (version "1.7.0")
114 (source
115 (origin
116 (method url-fetch)
117 (uri (string-append "https://github.com/alobbs/macchanger/"
118 "releases/download/" version "/"
119 name "-" version ".tar.gz"))
120 (sha256
121 (base32 "1gs5m0jxyprdp00w2qkbnaqm3ilkjz0q1gqdg4nzdm8g4xy73qns"))))
c791efde 122 (build-system gnu-build-system)
6fd52309 123 (home-page "https://www.gnu.org/software/macchanger/")
a3947cb1 124 (synopsis "Viewing and manipulating MAC addresses of network interfaces")
c791efde
JD
125 (description "GNU MAC Changer is a utility for viewing and changing MAC
126addresses of networking devices. New addresses may be set explicitly or
127randomly. They can include MAC addresses of the same or other hardware vendors
38510546 128or, more generally, MAC addresses of the same category of hardware.")
c791efde
JD
129 (license license:gpl2+)))
130
1e61e22f
TUBK
131(define-public miredo
132 (package
133 (name "miredo")
134 (version "1.2.6")
135 (source (origin
136 (method url-fetch)
137 (uri (string-append "http://www.remlab.net/files/miredo/miredo-"
138 version ".tar.xz"))
139 (sha256
140 (base32
141 "0j9ilig570snbmj48230hf7ms8kvcwi2wblycqrmhh85lksd49ps"))))
142 (build-system gnu-build-system)
143 (arguments
144 '(#:phases
145 (modify-phases %standard-phases
146 ;; The checkconf test in src/ requires network access.
147 (add-before
148 'check 'disable-checkconf-test
149 (lambda _
150 (substitute* "src/Makefile"
366c1cbb
MW
151 (("^TESTS = .*") "TESTS = \n"))
152 #t)))))
1e61e22f
TUBK
153 (home-page "http://www.remlab.net/miredo/")
154 (synopsis "Teredo IPv6 tunneling software")
155 (description
156 "Miredo is an implementation (client, relay, server) of the Teredo
157specification, which provides IPv6 Internet connectivity to IPv6 enabled hosts
158residing in IPv4-only networks, even when they are behind a NAT device.")
159 (license license:gpl2+)))
160
f6d9b3de
LC
161(define-public socat
162 (package
163 (name "socat")
6080632d 164 (version "1.7.3.2")
f6d9b3de
LC
165 (source (origin
166 (method url-fetch)
167 (uri (string-append
168 "http://www.dest-unreach.org/socat/download/socat-"
169 version ".tar.bz2"))
170 (sha256
171 (base32
6080632d 172 "0lcj6zpra33xhgvhmz9l3cqz10v8ybafb8dd1yqkwf1rhy01ymp3"))))
f6d9b3de
LC
173 (build-system gnu-build-system)
174 (arguments '(#:tests? #f)) ;no 'check' phase
175 (inputs `(("openssl" ,openssl)))
176 (home-page "http://www.dest-unreach.org/socat/")
177 (synopsis
178 "Open bidirectional communication channels from the command line")
179 (description
180 "socat is a relay for bidirectional data transfer between two independent
181data channels---files, pipes, devices, sockets, etc. It can create
182\"listening\" sockets, named pipes, and pseudo terminals.
183
184socat can be used, for instance, as TCP port forwarder, as a shell interface
185to UNIX sockets, IPv6 relay, for redirecting TCP oriented programs to a serial
186line, to logically connect serial lines on different computers, or to
187establish a relatively secure environment (su and chroot) for running client
e881752c 188or server shell scripts with network connections.")
f6d9b3de 189 (license license:gpl2)))
603090d8 190
c4947d0e
JD
191(define-public tcp-wrappers
192 (package
193 (name "tcp-wrappers")
194 (version "7.6")
195 (source (origin
196 (method url-fetch)
197 (uri (string-append
198 "ftp://ftp.porcupine.org/pub/security/tcp_wrappers_"
199 version ".tar.gz"))
200 (sha256
201 (base32
202 "0p9ilj4v96q32klavx0phw9va21fjp8vpk11nbh6v2ppxnnxfhwm"))))
203 (build-system gnu-build-system)
204 (arguments
205 `(#:phases
206 (modify-phases %standard-phases
207 (delete 'configure) ; there is no configure script
208 (delete 'check) ; there are no tests
209 (replace 'build
210 (lambda _
211 (chmod "." #o755)
212 ;; Upstream doesn't generate a shared library. So we have to do it.
213 (setenv "CC" "gcc -fno-builtin -fPIC")
214 (substitute* "Makefile"
215 (("^(all[^\n]*)" line) (string-append line " libwrap.so\n
216libwrap.so: $(LIB_OBJ)\n
217\tgcc -shared $^ -o $@\n")))
218 ;; Deal with some gcc breakage.
219 (substitute* "percent_m.c"
220 (("extern char .sys_errlist.*;") ""))
221 (substitute* "scaffold.c"
222 (("extern char .malloc.*;") ""))
223 ;; This, believe it or not, is the recommended way to build!
366c1cbb 224 (invoke "make" "REAL_DAEMON_DIR=/etc" "linux")))
c4947d0e
JD
225 ;; There is no make install stage, so we have to do it ourselves.
226 (replace 'install
227 (lambda _
228 (let ((out (assoc-ref %outputs "out"))
229 (man-pages `("hosts_access.3"
230 "hosts_access.5"
231 "hosts_options.5"
232 "tcpd.8"
233 "tcpdchk.8"
234 "tcpdmatch.8"))
235 (libs `("libwrap.a"
236 "libwrap.so"))
237 (headers `("tcpd.h"))
238 (bins `("safe_finger"
239 "tcpd"
240 "tcpdchk"
241 "tcpdmatch"
242 "try-from")))
243 (for-each
244 (lambda (x)
245 (install-file x (string-append out "/include")))
246 headers)
247 (for-each
248 (lambda (x)
249 (install-file x (string-append out "/share/man/man"
250 (string-take-right x 1))))
251 man-pages)
252 (for-each
253 (lambda (x)
254 (install-file x (string-append out "/lib/")))
255 libs)
256 (for-each
257 (lambda (x)
258 (install-file x (string-append out "/bin/")))
366c1cbb
MW
259 bins))
260 #t)))))
c4947d0e
JD
261 (home-page "http://www.porcupine.org")
262 (synopsis "Monitor and filter incoming requests for network services")
263 (description "With this package you can monitor and filter incoming requests for
264network services. It includes a library which may be used by daemons to
265transparently check connection attempts against an access control list.")
266 (license (license:non-copyleft "file://DISCLAIMER"
267 "See the file DISCLAIMER in the distribution."))))
268
269
603090d8
RW
270(define-public zeromq
271 (package
272 (name "zeromq")
d6c108a9 273 (version "4.0.7")
603090d8
RW
274 (source (origin
275 (method url-fetch)
276 (uri (string-append "http://download.zeromq.org/zeromq-"
277 version ".tar.gz"))
278 (sha256
279 (base32
d6c108a9 280 "00vvwhgcdr1lva2pavicvy92iad0hj8cf71n702hv6blw1kjj2z0"))))
603090d8
RW
281 (build-system gnu-build-system)
282 (home-page "http://zeromq.org")
283 (synopsis "Library for message-based applications")
284 (description
285 "The 0MQ lightweight messaging kernel is a library which extends the
286standard socket interfaces with features traditionally provided by specialized
287messaging middle-ware products. 0MQ sockets provide an abstraction of
288asynchronous message queues, multiple messaging patterns, message
289filtering (subscriptions), seamless access to multiple transport protocols and
290more.")
291 (license license:lgpl3+)))
a2b2aebe 292
433dc746
CB
293(define-public czmq
294 (package
295 (name "czmq")
00172e17 296 (version "4.1.1")
433dc746
CB
297 (source (origin
298 (method url-fetch)
299 (uri (string-append
300 "https://github.com/zeromq/" name
301 "/releases/download/v" version
302 "/" name "-" version ".tar.gz"))
303 (sha256
304 (base32
00172e17 305 "1h5hrcsc30fcwb032vy5gxkq4j4vv1y4dj460rfs1hhxi0cz83zh"))))
433dc746
CB
306 (build-system gnu-build-system)
307 (arguments
308 '(;; TODO Tests fail for some reason:
309 ;; * zauth: OK
310 ;; * zbeacon: OK (skipping test, no UDP broadcasting)
311 ;; E: (czmq_selftest) 18-02-24 16:25:52 No broadcast interface found, (ZSYS_INTERFACE=lo)
312 ;; make[2]: *** [Makefile:2245: check-local] Segmentation fault
313 ;; make[2]: Leaving directory '/tmp/guix-build-czmq-4.1.0.drv-0/czmq-4.1.0'
314 ;; make[1]: *** [Makefile:2032: check-am] Error 2
315 ;; make[1]: Leaving directory '/tmp/guix-build-czmq-4.1.0.drv-0/czmq-4.1.0'
316 ;; make: *** [Makefile:1588: check-recursive] Error 1
317 ;; phase `check' failed after 19.4 seconds
318 #:tests? #f
319 #:configure-flags '("--enable-drafts")))
320 (inputs
321 `(("zeromq" ,zeromq)))
322 (home-page "http://zeromq.org")
323 (synopsis "High-level C bindings for ØMQ")
324 (description
325 "czmq provides bindings for the ØMQ core API that hides the differences
326between different versions of ØMQ.")
327 (license license:mpl2.0)))
328
f6c87714
TF
329(define-public cppzmq
330 (let ((revision "0")
331 (commit "d9f0f016c07046742738c65e1eb84722ae32d7d4"))
332 (package
333 (name "cppzmq")
334 (version (string-append "4.2.2-" revision "."
335 (string-take commit 7)))
336 (source (origin
337 (method git-fetch)
338 (uri (git-reference
339 (url "https://github.com/zeromq/cppzmq")
340 (commit commit)))
341 (sha256
342 (base32
343 "1gmqlm00y6xpa5m6d4ajq3ww63n2w7h4sy997wj81vcqmqx45b1f"))
344 (file-name (string-append name "-" version "-checkout"))))
345 (build-system cmake-build-system)
346 (arguments '(#:tests? #f)) ; No tests.
347 (native-inputs
348 `(("pkg-config" ,pkg-config)))
349 (inputs
350 `(("zeromq" ,zeromq)))
351 (home-page "http://zeromq.org")
352 (synopsis "C++ bindings for the ØMQ messaging library")
353 (description
354 "This package provides header-only C++ bindings for ØMQ. The header
355files contain direct mappings of the abstractions provided by the ØMQ C API.")
356 (license license:expat))))
357
2c1286f4
SB
358(define-public librdkafka
359 (package
360 (name "librdkafka")
361 (version "0.9.1")
362 (source (origin
363 (method url-fetch)
364 (uri (string-append
365 "https://github.com/edenhill/librdkafka/archive/"
366 version ".tar.gz"))
367 (file-name (string-append name "-" version ".tar.gz"))
368 (sha256
369 (base32
370 "10ldx7g7ymmg17snzx78vy4n8ma1rjx0agzi34g15j2fk867xmas"))))
371 (build-system gnu-build-system)
372 (arguments
373 '(#:phases
374 (modify-phases %standard-phases
375 (replace 'configure
376 ;; its custom configure script doesn't understand 'CONFIG_SHELL'.
377 (lambda* (#:key outputs #:allow-other-keys)
378 (let ((out (assoc-ref outputs "out")))
379 ;; librdkafka++.so lacks RUNPATH for librdkafka.so
380 (setenv "LDFLAGS"
381 (string-append "-Wl,-rpath=" out "/lib"))
366c1cbb
MW
382 (invoke "./configure"
383 (string-append "--prefix=" out))))))))
2c1286f4
SB
384 (native-inputs
385 `(("python" ,python-wrapper)))
386 (propagated-inputs
387 `(("zlib" ,zlib))) ; in the Libs.private field of rdkafka.pc
388 (home-page "https://github.com/edenhill/librdkafka")
389 (synopsis "Apache Kafka C/C++ client library")
390 (description
391 "librdkafka is a C library implementation of the Apache Kafka protocol,
392containing both Producer and Consumer support.")
393 (license license:bsd-2)))
394
a2b2aebe
MW
395(define-public libndp
396 (package
397 (name "libndp")
9526d861 398 (version "1.7")
a2b2aebe
MW
399 (source (origin
400 (method url-fetch)
401 (uri (string-append "http://libndp.org/files/"
402 name "-" version ".tar.gz"))
403 (sha256
404 (base32
9526d861 405 "1dlinhl39va00v55qygjc9ap77yqf7xvn4rwmvdr49xhzzxhlj1c"))))
a2b2aebe
MW
406 (build-system gnu-build-system)
407 (home-page "http://libndp.org/")
408 (synopsis "Library for Neighbor Discovery Protocol")
409 (description
410 "libndp contains a library which provides a wrapper for IPv6 Neighbor
411Discovery Protocol. It also provides a tool named ndptool for sending and
412receiving NDP messages.")
413 (license license:lgpl2.1+)))
5df2316d
MW
414
415(define-public ethtool
416 (package
417 (name "ethtool")
07f450b2 418 (version "4.17")
5df2316d
MW
419 (source (origin
420 (method url-fetch)
421 (uri (string-append "mirror://kernel.org/software/network/"
422 name "/" name "-" version ".tar.xz"))
423 (sha256
424 (base32
07f450b2 425 "11f5503mgcwjn1q4dvhjiqwnw3zmp2gbhirjvgfr71y72ys1wsy4"))))
5df2316d
MW
426 (build-system gnu-build-system)
427 (home-page "https://www.kernel.org/pub/software/network/ethtool/")
428 (synopsis "Display or change Ethernet device settings")
429 (description
430 "ethtool can be used to query and change settings such as speed,
431auto-negotiation and checksum offload on many network devices, especially
432Ethernet devices.")
433 (license license:gpl2)))
24a848c8
SR
434
435(define-public ifstatus
436 (package
437 (name "ifstatus")
438 (version "1.1.0")
439 (source (origin
440 (method url-fetch)
de67e922
LF
441 (uri (string-append "mirror://sourceforge/ifstatus/ifstatus/"
442 "ifstatus%20v" version "/ifstatus-v"
24a848c8
SR
443 version ".tar.gz"))
444 (sha256
445 (base32
446 "045cbsq9ps32j24v8y5hpyqxnqn9mpaf3mgvirlhgpqyb9jsia0c"))
447 (modules '((guix build utils)))
448 (snippet
6cbee49d
MW
449 '(begin
450 (substitute* "Main.h"
451 (("#include <stdio.h>")
452 "#include <stdio.h>\n#include <stdlib.h>"))
453 #t))))
24a848c8
SR
454 (build-system gnu-build-system)
455 (arguments
456 '(#:tests? #f ; no "check" target
457 #:phases
458 (modify-phases %standard-phases
459 (delete 'configure) ; no configure script
460 (replace 'install
461 (lambda* (#:key outputs #:allow-other-keys)
462 (let* ((out (assoc-ref outputs "out"))
463 (bin (string-append out "/bin")))
464 (mkdir-p bin)
465 (copy-file "ifstatus"
366c1cbb
MW
466 (string-append bin "/ifstatus")))
467 #t)))))
24a848c8
SR
468 (inputs `(("ncurses" ,ncurses)))
469 (home-page "http://ifstatus.sourceforge.net/graphic/index.html")
470 (synopsis "Text based network interface status monitor")
471 (description
472 "IFStatus is a simple, easy-to-use program for displaying commonly
8874f766 473needed/wanted real-time traffic statistics of multiple network
24a848c8
SR
474interfaces, with a simple and efficient view on the command line. It is
475intended as a substitute for the PPPStatus and EthStatus projects.")
8874f766 476 (license license:gpl2+)))
95146623
RG
477
478(define-public nload
479 (package
480 (name "nload")
481 (version "0.7.4")
482 (source (origin
483 (method url-fetch)
de67e922
LF
484 (uri (string-append "mirror://sourceforge/nload/nload/" version
485 "/nload-" version ".tar.gz"))
95146623
RG
486 (sha256
487 (base32
488 "1rb9skch2kgqzigf19x8bzk211jdfjfdkrcvaqyj89jy2pkm3h61"))))
489 (build-system gnu-build-system)
490 (inputs `(("ncurses" ,ncurses)))
491 (home-page "http://www.roland-riegel.de/nload/")
492 (synopsis "Realtime console network usage monitor")
493 (description
494 "Nload is a console application which monitors network traffic and
495bandwidth usage in real time. It visualizes the in- and outgoing traffic using
d1e4ad1b 496two graphs, and provides additional info like total amount of transferred data
95146623
RG
497and min/max network usage.")
498 (license license:gpl2+)))
998afc36
TGR
499
500(define-public iodine
501 (package
502 (name "iodine")
503 (version "0.7.0")
504 (source (origin
505 (method url-fetch)
506 (uri (string-append "http://code.kryo.se/" name "/"
507 name "-" version ".tar.gz"))
508 (sha256
509 (base32
510 "0gh17kcxxi37k65zm4gqsvbk3aw7yphcs3c02pn1c4s2y6n40axd"))))
511 (build-system gnu-build-system)
512 (arguments
513 '(#:phases
514 (modify-phases %standard-phases
515 (delete 'configure)
60880ac5
TGR
516 (add-before 'build 'fix-ifconfig-path
517 ;; This package works only with the net-tools version of ifconfig.
518 (lambda* (#:key inputs #:allow-other-keys)
519 (substitute* "src/tun.c"
520 (("PATH=[^ ]* ")
366c1cbb
MW
521 (string-append (assoc-ref inputs "net-tools") "/bin/")))
522 #t))
998afc36 523 (add-before 'check 'delete-failing-tests
60880ac5 524 ;; Avoid https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=802105.
998afc36
TGR
525 (lambda _
526 (substitute* "tests/common.c"
527 (("tcase_add_test\\(tc, \
528test_parse_format_ipv(4(|_listen_all|_mapped_ipv6)|6)\\);")
366c1cbb
MW
529 ""))
530 #t)))
998afc36
TGR
531 #:make-flags (list "CC=gcc"
532 (string-append "prefix=" (assoc-ref %outputs "out")))
533 #:test-target "test"))
60880ac5
TGR
534 (inputs `(("net-tools" ,net-tools)
535 ("zlib" ,zlib)))
998afc36
TGR
536 (native-inputs `(("check" ,check)
537 ("pkg-config" ,pkg-config)))
538 (home-page "http://code.kryo.se/iodine/")
539 (synopsis "Tunnel IPv4 data through a DNS server")
540 (description "Iodine tunnels IPv4 data through a DNS server. This
541can be useful in different situations where internet access is firewalled, but
542DNS queries are allowed. The bandwidth is asymmetrical, with limited upstream
543and up to 1 Mbit/s downstream.")
544 ;; src/md5.[ch] is released under the zlib license
545 (license (list license:isc license:zlib))))
834a2fc1 546
9c798f90 547(define-public whois
548 (package
549 (name "whois")
66a2a471 550 (version "5.4.0")
9c798f90 551 (source
552 (origin
553 (method url-fetch)
554 (uri (string-append "mirror://debian/pool/main/w/whois/"
555 name "_" version ".tar.xz"))
556 (sha256
557 (base32
66a2a471 558 "0y73b3z1akni620s1hlrijwdrk95ca1c8csjds48vpd6z86awx9p"))))
9c798f90 559 (build-system gnu-build-system)
9c798f90 560 (arguments
5ac1143d 561 `(#:tests? #f ; no test suite
9c798f90 562 #:make-flags (list "CC=gcc"
563 (string-append "prefix=" (assoc-ref %outputs "out")))
564 #:phases
565 (modify-phases %standard-phases
5ac1143d 566 (delete 'configure) ; no configure script
9c798f90 567 (add-before 'build 'setenv
568 (lambda _
569 (setenv "HAVE_ICONV" "1")
268b3802 570 #t)))))
9c798f90 571 (inputs
6ce76bdc 572 `(("libidn2" ,libidn2)))
9c798f90 573 (native-inputs
7c90d0f4 574 `(("gettext" ,gettext-minimal)
eb6263f2
MB
575 ("perl" ,perl)
576 ("pkg-config" ,pkg-config)))
5ac1143d
TGR
577 (synopsis "Intelligent client for the WHOIS directory service")
578 (description
579 "whois searches for an object in a @dfn{WHOIS} (RFC 3912) database.
580It is commonly used to look up the registered users or assignees of an Internet
581resource, such as a domain name, an IP address block, or an autonomous system.
582It can automatically select the appropriate server for most queries.
583
584For historical reasons, this package also includes @command{mkpasswd}, which
585encrypts passwords using @code{crypt(3)} and is unrelated to the Expect command
586of the same name.")
9c798f90 587 (home-page "https://github.com/rfc1036/whois")
588 (license license:gpl2+)))
589
834a2fc1
NG
590(define-public wireshark
591 (package
592 (name "wireshark")
6ec3de97 593 (version "2.6.5")
834a2fc1
NG
594 (source
595 (origin
596 (method url-fetch)
597 (uri (string-append "https://www.wireshark.org/download/src/wireshark-"
d016b60f 598 version ".tar.xz"))
834a2fc1
NG
599 (sha256
600 (base32
6ec3de97 601 "12j3fw0j8qcr86c1vsz4bsb55j9inp0ll3wjjdvg1cj4hmwmn5ck"))))
d016b60f
NG
602 (build-system gnu-build-system)
603 (inputs `(("c-ares" ,c-ares)
604 ("glib" ,glib)
834a2fc1 605 ("gnutls" ,gnutls)
834a2fc1
NG
606 ("libcap" ,libcap)
607 ("libgcrypt" ,libgcrypt)
608 ("libnl" ,libnl)
609 ("libpcap" ,libpcap)
d016b60f
NG
610 ("libssh" ,libssh)
611 ("libxml2" ,libxml2)
0b7bef70 612 ("lz4" ,lz4)
d016b60f 613 ("lua" ,lua-5.2) ;Lua 5.3 unsupported
834a2fc1 614 ("krb5" ,mit-krb5)
834a2fc1 615 ("portaudio" ,portaudio)
d016b60f 616 ("qtbase" ,qtbase)
0b7bef70 617 ("qtmultimedia" ,qtmultimedia)
834a2fc1 618 ("sbc" ,sbc)
0b7bef70 619 ("snappy" ,snappy)
834a2fc1
NG
620 ("zlib" ,zlib)))
621 (native-inputs `(("perl" ,perl)
622 ("pkg-config" ,pkg-config)
db314bf4
MB
623 ("python" ,python-wrapper)
624 ("qttools" ,qttools)))
834a2fc1
NG
625 (arguments
626 `(#:configure-flags
627 (list (string-append "--with-c-ares=" (assoc-ref %build-inputs "c-ares"))
628 (string-append "--with-krb5=" (assoc-ref %build-inputs "krb5"))
629 (string-append "--with-libcap=" (assoc-ref %build-inputs "libcap"))
d016b60f 630 (string-append "--with-libssh=" (assoc-ref %build-inputs "libssh"))
834a2fc1 631 (string-append "--with-lua=" (assoc-ref %build-inputs "lua"))
0b7bef70 632 (string-append "--with-lz4=" (assoc-ref %build-inputs "lz4"))
834a2fc1
NG
633 (string-append "--with-pcap=" (assoc-ref %build-inputs "libpcap"))
634 (string-append "--with-portaudio="
d016b60f 635 (assoc-ref %build-inputs "portaudio"))
834a2fc1 636 (string-append "--with-sbc=" (assoc-ref %build-inputs "sbc"))
0b7bef70 637 (string-append "--with-snappy=" (assoc-ref %build-inputs "snappy"))
a234ae38
CL
638 (string-append "--with-zlib=" (assoc-ref %build-inputs "zlib")))
639 #:phases
640 (modify-phases %standard-phases
641 (add-after 'unpack 'patch-source
642 (lambda _
643 ;; Fix build against Qt 5.11.
644 (substitute* "ui/qt/packet_format_group_box.cpp"
645 (("#include <QStyle>") "#include <QStyle>
646#include <QStyleOption>"))
647 (substitute* "ui/qt/time_shift_dialog.cpp"
648 (("#include <ui/time_shift.h>") "#include <ui/time_shift.h>
649#include <QStyleOption>"))
650 (substitute* "ui/qt/wireless_frame.cpp"
651 (("#include <QProcess>") "#include <QProcess>
cfcd9a45
CL
652#include <QAbstractItemView>"))
653 #t)))))
d016b60f 654 (synopsis "Network traffic analyzer")
834a2fc1
NG
655 (description "Wireshark is a network protocol analyzer, or @dfn{packet
656sniffer}, that lets you capture and interactively browse the contents of
657network frames.")
d016b60f
NG
658 (home-page "https://www.wireshark.org/")
659 (license license:gpl2+)))
82ee141b 660
61253c4f
SR
661(define-public fping
662 (package
663 (name "fping")
8fa361ce 664 (version "4.1")
61253c4f
SR
665 (source
666 (origin
667 (method url-fetch)
668 (uri (string-append "https://fping.org/dist/fping-"
669 version ".tar.gz"))
670 (sha256
671 (base32
8fa361ce 672 "0wxbvm480vij8dy4v1pi8f0c7010rx6bidg3qhsvkdf2ijhy4cr7"))))
61253c4f 673 (build-system gnu-build-system)
25706b8f 674 (home-page "https://fping.org/")
61253c4f
SR
675 (synopsis "Send ICMP ECHO_REQUEST packets to network hosts")
676 (description
677 "fping is a ping like program which uses the Internet Control Message
678Protocol (ICMP) echo request to determine if a target host is responding.
679fping differs from ping in that you can specify any number of targets on the
680command line, or specify a file containing the lists of targets to ping.
681Instead of sending to one target until it times out or replies, fping will
682send out a ping packet and move on to the next target in a round-robin
683fashion.")
684 (license license:expat)))
685
a68b4514
TGR
686(define-public gandi.cli
687 (package
688 (name "gandi.cli")
689 (version "1.3")
690 (source
691 (origin
692 (method url-fetch)
693 (uri (pypi-uri name version))
694 (sha256
695 (base32 "0vfzkw1avybjkf6fwqpf5m4kjz4c0qkkmj62f3jd0zx00vh5ly1d"))))
696 (build-system python-build-system)
697 (arguments
698 `(#:phases
699 (modify-phases %standard-phases
700 (add-after 'unpack 'embed-store-file-names
701 (lambda _
702 (substitute* (list "gandi/cli/modules/cert.py"
703 "gandi/cli/tests/commands/test_certificate.py")
704 (("openssl") (which "openssl")))
705 #t))
706 (add-after 'install 'install-documentation
707 ;; The included man page may be outdated but we install it anyway,
708 ;; since it's mentioned in 'gandi --help' and better than nothing.
709 (lambda* (#:key outputs #:allow-other-keys)
710 (let* ((out (assoc-ref outputs "out"))
711 (man1 (string-append out "/share/man/man1")))
712 (mkdir-p man1)
713 (with-output-to-file (string-append man1 "/gandi.1")
714 (lambda _
715 (invoke "rst2man.py" "gandicli.man.rst")))
716 #t))))))
717 (native-inputs
718 `(("python-docutils" ,python-docutils) ; for rst2man.py
719 ("python-pytest-cov" ,python-pytest-cov)
720 ("python-tox" ,python-tox)))
721 (inputs
722 `(("openssl" ,openssl)
723 ("python-click" ,python-click)
724 ("python-ipy" ,python-ipy)
725 ("python-pyyaml" ,python-pyyaml)
726 ("python-requests" ,python-requests)))
727 (home-page "https://cli.gandi.net")
728 (synopsis "Command-line interface to the Gandi.net Web API")
729 (description
730 "This package provides a command-line client (@command{gandi}) to buy,
731manage, and delete Internet resources from Gandi.net such as domain names,
732virtual machines, and certificates.")
733 (license license:gpl3+)))
734
82ee141b
TGR
735(define-public httping
736 (package
737 (name "httping")
2f968727 738 (version "2.5")
82ee141b
TGR
739 (source
740 (origin
741 (method url-fetch)
742 (uri (string-append "https://www.vanheusden.com/httping/httping-"
743 version ".tgz"))
744 (sha256
745 (base32
2f968727 746 "1y7sbgkhgadmd93x1zafqc4yp26ssiv16ni5bbi9vmvvdl55m29y"))))
82ee141b
TGR
747 (build-system gnu-build-system)
748 (native-inputs
b94a6ca0 749 `(("gettext" ,gettext-minimal)))
82ee141b
TGR
750 (inputs
751 `(("fftw" ,fftw)
752 ("ncurses" ,ncurses)
753 ("openssl" ,openssl)))
754 (arguments
755 `(#:make-flags (list "CC=gcc"
756 (string-append "DESTDIR=" (assoc-ref %outputs "out"))
757 "PREFIX=")
758 #:tests? #f)) ; no tests
759 (home-page "https://www.vanheusden.com/httping/")
760 (synopsis "Web server latency and throughput monitor")
761 (description
762 "httping measures how long it takes to connect to a web server, send an
763HTTP(S) request, and receive the reply headers. It is somewhat similar to
764@command{ping}, but can be used even in cases where ICMP traffic is blocked
765by firewalls or when you want to monitor the response time of the actual web
766application stack itself.")
767 (license license:gpl2))) ; with permission to link with OpenSSL
68b14f2e 768
9e6c7c42
SR
769(define-public httpstat
770 (package
771 (name "httpstat")
772 (version "1.2.1")
773 (source
774 (origin
775 (method url-fetch)
776 (uri (pypi-uri "httpstat" version))
777 (sha256
778 (base32
779 "1chw2nk56vaq87aba012a270k9na06hfx1pfbsrc3jfvlc2kb9hb"))))
780 (build-system python-build-system)
781 (inputs `(("curl" ,curl)))
782 (arguments
783 '(#:phases
784 (modify-phases %standard-phases
785 (add-before 'build 'fix-curl-path
786 (lambda* (#:key inputs #:allow-other-keys)
787 (substitute* "httpstat.py"
788 (("ENV_CURL_BIN.get\\('curl'\\)")
789 (string-append "ENV_CURL_BIN.get('"
790 (assoc-ref inputs "curl")
366c1cbb
MW
791 "/bin/curl')")))
792 #t)))))
9e6c7c42
SR
793 (home-page "https://github.com/reorx/httpstat")
794 (synopsis "Visualize curl statistics")
795 (description
796 "@command{httpstat} is a tool to visualize statistics from the
797@command{curl} HTTP client. It acts as a wrapper for @command{curl} and
798prints timing information for each step of the HTTP request (DNS lookup,
799TCP connection, TLS handshake and so on) in the terminal.")
800 (license license:expat)))
801
be9f3a83
AI
802(define-public bwm-ng
803 (package
804 (name "bwm-ng")
805 (version "0.6.1")
806 (source
807 (origin
808 (method url-fetch)
809 (uri (string-append "https://www.gropp.org/bwm-ng/bwm-ng-"
810 version ".tar.gz"))
811 (sha256
812 (base32
813 "1w0dwpjjm9pqi613i8glxrgca3rdyqyp3xydzagzr5ndc34z6z02"))))
814 (build-system gnu-build-system)
815 (inputs `(("ncurses" ,ncurses)))
816 (synopsis "Console based live network and disk I/O bandwidth monitor")
817 (description "Bandwidth Monitor NG is a small and simple console based
818live network and disk I/O bandwidth monitor.")
819 (home-page "https://www.gropp.org/?id=projects&sub=bwm-ng")
820 (license license:gpl2)))
821
d85b398b
EB
822(define-public aircrack-ng
823 (package
824 (name "aircrack-ng")
b9114ccb 825 (version "1.3")
d85b398b
EB
826 (source
827 (origin
828 (method url-fetch)
6930ea33 829 (uri (string-append "https://download.aircrack-ng.org/aircrack-ng-"
d85b398b
EB
830 version ".tar.gz"))
831 (sha256
832 (base32
b9114ccb 833 "1jl30d0kibc82447fr3lgw75arik0l9729k94z76l7vl51y8mq4a"))))
d85b398b
EB
834 (build-system gnu-build-system)
835 (native-inputs
b9114ccb
TGR
836 `(("autoconf" ,autoconf)
837 ("automake" ,automake)
838 ("libtool" ,libtool)
839 ("pkg-config" ,pkg-config)
840 ("which" ,which)))
d85b398b
EB
841 (inputs
842 `(("libgcrypt" ,libgcrypt)
843 ("libnl" ,libnl)
b9114ccb 844 ("libpcap" ,libpcap)
d85b398b
EB
845 ("ethtool" ,ethtool)
846 ("pcre" ,pcre)
847 ("sqlite" ,sqlite)
848 ("zlib" ,zlib)))
849 (arguments
b9114ccb
TGR
850 `(#:configure-flags
851 (list "--with-experimental=yes" ; build wesside-ng, etc.
852 "--with-gcrypt") ; openssl's the default
d85b398b 853 #:phases (modify-phases %standard-phases
b9114ccb
TGR
854 (add-before 'bootstrap 'patch-evalrev
855 (lambda _
856 ;; Called by ./autogen.sh below, before the default
857 ;; ‘patch-shebangs’ phase has had a chance to run.
858 (substitute* "evalrev"
859 (("/bin/sh")
860 (which "sh")))
861 #t))
862 (replace 'bootstrap
863 (lambda _
864 ;; Patch shebangs in generated files before running
865 ;; ./configure.
866 (setenv "NOCONFIGURE" "please")
867 (invoke "bash" "./autogen.sh")))
d85b398b
EB
868 (add-after 'build 'absolutize-tools
869 (lambda* (#:key inputs #:allow-other-keys)
870 (let ((ethtool (string-append (assoc-ref inputs "ethtool")
871 "/sbin/ethtool")))
872 (substitute* "scripts/airmon-ng"
b9114ccb
TGR
873 (("ethtool ")
874 (string-append ethtool " ")))
d85b398b 875 #t))))))
6930ea33 876 (home-page "https://www.aircrack-ng.org")
d85b398b
EB
877 (synopsis "Assess WiFi network security")
878 (description
879 "Aircrack-ng is a complete suite of tools to assess WiFi network
880security. It focuses on different areas of WiFi security: monitoring,
881attacking, testing, and cracking. All tools are command-line driven, which
882allows for heavy scripting.")
883 (license (list license:gpl2+ license:bsd-3))))
884
c7727a8b
TGR
885(define-public perl-data-validate-ip
886 (package
887 (name "perl-data-validate-ip")
888 (version "0.27")
889 (source
890 (origin
891 (method url-fetch)
892 (uri (string-append
893 "mirror://cpan/authors/id/D/DR/DROLSKY/Data-Validate-IP-"
894 version ".tar.gz"))
895 (sha256
896 (base32 "1mmppyzsh1w2z2h86kvzqxy56wxgs62a3kf8nvcnz76bblir5ap1"))))
897 (build-system perl-build-system)
898 (native-inputs
899 `(("perl-test-requires" ,perl-test-requires)))
900 (propagated-inputs
901 `(("perl-netaddr-ip" ,perl-netaddr-ip)))
902 (home-page "https://metacpan.org/release/Data-Validate-IP")
903 (synopsis "IPv4 and IPv6 validation methods")
904 (description
905 "This module provides several IP address validation subroutines that both
906validate and untaint their input. This includes both basic validation
907(@code{is_ipv4()} and @code{is_ipv6()}) and special cases like checking whether
908an address belongs to a specific network or whether an address is public or
909private (reserved).")
910 (license license:perl-license)))
911
68b14f2e
DM
912(define-public perl-net-dns
913 (package
914 (name "perl-net-dns")
af44f05a 915 (version "1.18")
68b14f2e
DM
916 (source
917 (origin
918 (method url-fetch)
8faa9df7
TGR
919 (uri
920 (list
921 (string-append "https://www.net-dns.org/download/Net-DNS-"
922 version ".tar.gz")
923 (string-append "mirror://cpan/authors/id/N/NL/NLNETLABS/Net-DNS-"
924 version ".tar.gz")))
68b14f2e
DM
925 (sha256
926 (base32
af44f05a 927 "1lx902cbvlfl63bqfdrnyavmfwbjvrfdnwgdc1dgs1wpzja19kjj"))))
68b14f2e
DM
928 (build-system perl-build-system)
929 (inputs
930 `(("perl-digest-hmac" ,perl-digest-hmac)))
8faa9df7 931 (home-page "https://www.net-dns.org/")
68b14f2e
DM
932 (synopsis
933 "Perl Interface to the Domain Name System")
934 (description "Net::DNS is the Perl Interface to the Domain Name System.")
935 (license license:x11)))
87b14091
DM
936
937(define-public perl-socket6
938 (package
939 (name "perl-socket6")
538b71a9 940 (version "0.29")
87b14091
DM
941 (source
942 (origin
943 (method url-fetch)
944 (uri (string-append
945 "mirror://cpan/authors/id/U/UM/UMEMOTO/Socket6-"
946 version
947 ".tar.gz"))
948 (sha256
949 (base32
538b71a9 950 "054izici8klfxs8hr5rljib28plijpsfymy99xbzdp047bx1b2a6"))))
87b14091
DM
951 (build-system perl-build-system)
952 (arguments
953 `(#:phases
954 (modify-phases %standard-phases
955 (replace 'configure
956 (lambda* (#:key outputs #:allow-other-keys)
957 (let* ((out (assoc-ref outputs "out"))
958 (args `("Makefile.PL"
959 ,(string-append "PREFIX=" out)
960 "INSTALLDIRS=site")))
961 (setenv "CONFIG_SHELL" (which "sh"))
366c1cbb 962 (apply invoke "perl" args)))))))
9aba9b12 963 (home-page "https://metacpan.org/release/Socket6")
87b14091
DM
964 (synopsis
965 "IPv6 related part of the C socket.h defines and structure manipulators for Perl")
966 (description "Socket6 binds the IPv6 related part of the C socket header
967definitions and structure manipulators for Perl.")
968 (license license:bsd-3)))
8d60dd71
DM
969
970(define-public perl-net-dns-resolver-programmable
971 (package
972 (name "perl-net-dns-resolver-programmable")
973 (version "v0.003")
974 (source
975 (origin
976 (method url-fetch)
977 (uri (string-append
978 "mirror://cpan/authors/id/J/JM/JMEHNLE/net-dns-resolver-programmable/"
979 "Net-DNS-Resolver-Programmable-" version ".tar.gz"))
980 (sha256
981 (base32
982 "1v3nl2kaj4fs55n1617n53q8sa3mir06898vpy1rq98zjih24h4d"))
983 (patches
1d248adb 984 (search-patches "perl-net-dns-resolver-programmable-fix.patch"))))
8d60dd71
DM
985 (build-system perl-build-system)
986 (native-inputs
987 `(("perl-module-build" ,perl-module-build)))
988 (inputs `(("perl-net-dns" ,perl-net-dns)))
989 (home-page
9aba9b12 990 "https://metacpan.org/release/Net-DNS-Resolver-Programmable")
8d60dd71
DM
991 (synopsis
992 "Programmable DNS resolver class for offline emulation of DNS")
993 (description "Net::DNS::Resolver::Programmable is a programmable DNS resolver for
994offline emulation of DNS.")
2f3108ad 995 (license license:perl-license)))
1201eab9
DM
996
997(define-public perl-netaddr-ip
998 (package
999 (name "perl-netaddr-ip")
1000 (version "4.079")
1001 (source
1002 (origin
1003 (method url-fetch)
1004 (uri (string-append
1005 "mirror://cpan/authors/id/M/MI/MIKER/NetAddr-IP-"
1006 version
1007 ".tar.gz"))
1008 (sha256
1009 (base32
1010 "1rx0dinrz9fk9qcg4rwqq5n1dm3xv2arymixpclcv2q2nzgq4npc"))))
1011 (build-system perl-build-system)
1012 (arguments
1013 `(#:phases
1014 (modify-phases %standard-phases
1015 (replace 'configure
1016 (lambda* (#:key outputs #:allow-other-keys)
1017 (let* ((out (assoc-ref outputs "out"))
1018 (args `("Makefile.PL"
1019 ,(string-append "PREFIX=" out)
1020 "INSTALLDIRS=site")))
1021 (setenv "CONFIG_SHELL" (which "sh"))
366c1cbb 1022 (apply invoke "perl" args)))))))
1201eab9 1023 (home-page
9aba9b12 1024 "https://metacpan.org/release/NetAddr-IP")
1201eab9
DM
1025 (synopsis
1026 "Manages IPv4 and IPv6 addresses and subnets")
1027 (description "NetAddr::IP manages IPv4 and IPv6 addresses and subsets.")
2f3108ad 1028 (license license:perl-license)))
3ed361ea
DM
1029
1030(define-public perl-net-patricia
1031 (package
1032 (name "perl-net-patricia")
1033 (version "1.22")
1034 (source
1035 (origin
1036 (method url-fetch)
1037 (uri (string-append
1038 "mirror://cpan/authors/id/G/GR/GRUBER/Net-Patricia-"
1039 version
1040 ".tar.gz"))
1041 (sha256
1042 (base32
1043 "0ln5f57vc8388kyh9vhx2infrdzfhbpgyby74h1qsnhwds95m0vh"))))
1044 (build-system perl-build-system)
1045 (inputs
1046 `(("perl-net-cidr-lite" ,perl-net-cidr-lite)
1047 ("perl-socket6" ,perl-socket6)))
1048 (home-page
9aba9b12 1049 "https://metacpan.org/release/Net-Patricia")
3ed361ea
DM
1050 (synopsis
1051 "Patricia Trie Perl module for fast IP address lookups")
1052 (description
1053 "Net::Patricia does IP address lookups quickly in Perl.")
1054 ;; The bindings are licensed under GPL2 or later.
1055 ;; libpatricia is licensed under 2-clause BSD.
1056 (license (list license:gpl2+ license:bsd-2))))
b09a8b6f
DM
1057
1058(define-public perl-net-cidr-lite
1059 (package
1060 (name "perl-net-cidr-lite")
1061 (version "0.21")
1062 (source
1063 (origin
1064 (method url-fetch)
1065 (uri (string-append
1066 "mirror://cpan/authors/id/D/DO/DOUGW/Net-CIDR-Lite-"
1067 version
1068 ".tar.gz"))
1069 (sha256
1070 (base32
1071 "14shj73zbqmfjbp0qz1fs9j4p2dpvz5hfkm4qfdjbydflbl2b8fg"))))
1072 (build-system perl-build-system)
1073 (home-page
9aba9b12 1074 "https://metacpan.org/release/Net-CIDR-Lite")
b09a8b6f
DM
1075 (synopsis
1076 "Perl extension for merging IPv4 or IPv6 CIDR addresses")
1077 (description "Net::CIDR::Lite merges IPv4 or IPv6 CIDR addresses.")
1078 (license license:gpl1+)))
e741c4e4
DM
1079
1080;; TODO: Use the geolite-mirror-simple.pl script from the example
1081;; directory to stay current with the databases. How?
1082(define-public perl-geo-ip
1083 (package
1084 (name "perl-geo-ip")
b2799117 1085 (version "1.51")
e741c4e4
DM
1086 (source
1087 (origin
1088 (method url-fetch)
1089 (uri (string-append
1090 "mirror://cpan/authors/id/M/MA/MAXMIND/Geo-IP-"
1091 version
1092 ".tar.gz"))
1093 (sha256
1094 (base32
b2799117 1095 "1fka8fr7fw6sh3xa9glhs1zjg3s2gfkhi7n7da1l2m2wblqj0c0n"))))
e741c4e4 1096 (build-system perl-build-system)
9aba9b12 1097 (home-page "https://metacpan.org/release/Geo-IP")
e741c4e4
DM
1098 (synopsis
1099 "Look up location and network information by IP Address in Perl")
1100 (description "The Perl module 'Geo::IP'. It looks up location and network
1101information by IP Address.")
2f3108ad 1102 (license license:perl-license)))
e818f321
DM
1103
1104(define-public perl-io-socket-inet6
1105 (package
1106 (name "perl-io-socket-inet6")
1107 (version "2.72")
1108 (source
1109 (origin
1110 (method url-fetch)
1111 (uri (string-append
1112 "mirror://cpan/authors/id/S/SH/SHLOMIF/IO-Socket-INET6-"
1113 version
1114 ".tar.gz"))
1115 (sha256
1116 (base32
1117 "1fqypz6qa5rw2d5y2zq7f49frwra0aln13nhq5gi514j2zx21q45"))))
1118 (build-system perl-build-system)
1119 (native-inputs
1120 `(("perl-module-build" ,perl-module-build)
1121 ("perl-test-pod" ,perl-test-pod)
1122 ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
1123 (inputs `(("perl-socket6" ,perl-socket6)))
1124 (arguments `(;; Need network socket API
1125 #:tests? #f))
1126 (home-page
9aba9b12 1127 "https://metacpan.org/release/IO-Socket-INET6")
e818f321
DM
1128 (synopsis
1129 "Perl object interface for AF_INET/AF_INET6 domain sockets")
1130 (description "IO::Socket::INET6 is an interface for AF_INET/AF_INET6 domain
1131sockets in Perl.")
2f3108ad 1132 (license license:perl-license)))
a1c83fef 1133
167a541f
TD
1134(define-public libproxy
1135 (package
1136 (name "libproxy")
1137 (version "0.4.15")
1138 (source (origin
1139 (method url-fetch)
1140 (uri (string-append "https://github.com/libproxy/libproxy/"
1141 "releases/download/" version "/libproxy-"
1142 version ".tar.xz"))
1143 (sha256
1144 (base32
1145 "0kvdrazlzwia876w988cmlypp253gwy6idlh8mjk958c29jb8kb5"))))
1146 (build-system cmake-build-system)
1147 (native-inputs
1148 `(("pkg-config" ,pkg-config)))
1149 (inputs
1150 `(("dbus" ,dbus)
1151 ("zlib" ,zlib)
1152 ("network-manager" ,network-manager)))
1153 (arguments
1154 `(#:phases
1155 (modify-phases %standard-phases
1156 (replace 'check
1157 (lambda _
366c1cbb 1158 (invoke "ctest" "-E" "url-test"))))))
167a541f
TD
1159 (synopsis "Library providing automatic proxy configuration management")
1160 (description "Libproxy handles the details of HTTP/HTTPS proxy
1161configuration for applications across all scenarios. Applications using
1162libproxy only have to specify which proxy to use.")
1163 (home-page "https://libproxy.github.io/libproxy")
1164 (license license:lgpl2.1+)))
1165
a1c83fef 1166(define-public proxychains-ng
1167 (package
1168 (name "proxychains-ng")
a0b5c998
TGR
1169 (version "4.13")
1170 (source
1171 (origin
1172 (method url-fetch)
1173 (uri (string-append "http://ftp.barfooze.de/pub/sabotage/tarballs/"
1174 name "-" version ".tar.xz"))
1175 (sha256
1176 (base32
1177 "0418fv8hgf43rzrxxlybg49jz2h6w8inndhb6v1184k4cwzjnl3p"))))
a1c83fef 1178 (build-system gnu-build-system)
1179 (arguments
1180 `(#:tests? #f ; there are no tests
a1c83fef 1181 #:phases
1182 (modify-phases %standard-phases
1183 (add-after 'unpack 'fix-configure-script
1184 (lambda _
1185 ;; The configure script is very intolerant to unknown arguments,
1186 ;; such as "CONFIG_SHELL".
1187 (substitute* "configure"
1188 (("\\*\\) break ;;" line)
1189 (string-append "[A-Z]*) shift ;;\n"
1190 line)))
a0b5c998
TGR
1191 #t))
1192 (add-before 'configure 'set-up-environment
1193 (lambda _
1194 (setenv "CC" "gcc")
a1c83fef 1195 #t)))))
1196 (synopsis "Redirect any TCP connection through a proxy or proxy chain")
1197 (description "Proxychains-ng is a preloader which hooks calls to sockets
1198in dynamically linked programs and redirects them through one or more SOCKS or
1199HTTP proxies.")
1200 (home-page "https://github.com/rofl0r/proxychains-ng")
1201 (license license:gpl2+)))
93666cf7 1202
1203(define-public enet
1204 (package
1205 (name "enet")
1206 (version "1.3.13")
1207 (source (origin
1208 (method url-fetch)
1209 (uri (string-append "http://enet.bespin.org/download/"
1210 name "-" version ".tar.gz"))
1211 (sha256
1212 (base32
1213 "0p53mnmjbm56wizwraznynx13fcibcxiqny110dp6a5a3w174q73"))))
1214 (build-system gnu-build-system)
1215 (native-inputs
1216 `(("pkg-config" ,pkg-config)))
1217 (synopsis
1218 "Network communication layer on top of UDP")
1219 (description
1220 "ENet's purpose is to provide a relatively thin, simple and robust network
1221communication layer on top of UDP. The primary feature it provides is optional
1222reliable, in-order delivery of packets. ENet omits certain higher level
1223networking features such as authentication, server discovery, encryption, or
1224other similar tasks that are particularly application specific so that the
1225library remains flexible, portable, and easily embeddable.")
1226 (home-page "http://enet.bespin.org")
1227 (license license:expat)))
4fb5f830
TGR
1228
1229(define-public sslh
1230 (package
1231 (name "sslh")
9d13f82d 1232 (version "1.19c")
4fb5f830
TGR
1233 (source (origin
1234 (method url-fetch)
1235 (uri (string-append "https://github.com/yrutschle/sslh/archive/v"
1236 version ".tar.gz"))
1237 (file-name (string-append name "-" version ".tar.gz"))
1238 (sha256
1239 (base32
9d13f82d 1240 "0pd8hifa9h0rm7vms3k6ic1k29xigrlv2idc5wgcafmb1v1243di"))))
4fb5f830
TGR
1241 (build-system gnu-build-system)
1242 (native-inputs
7eaa37a1 1243 `(;; Test dependencies.
4fb5f830
TGR
1244 ("lcov" ,lcov)
1245 ("perl" ,perl)
1246 ("perl-io-socket-inet6" ,perl-io-socket-inet6)
1247 ("perl-socket6" ,perl-socket6)
1248 ("psmisc" ,psmisc)
1249 ("valgrind" ,valgrind)))
1250 (inputs
1251 `(("libcap" ,libcap)
1252 ("libconfig" ,libconfig)
7eaa37a1 1253 ("pcre" ,pcre)
4fb5f830
TGR
1254 ("tcp-wrappers" ,tcp-wrappers)))
1255 (arguments
1256 '(#:phases
1257 (modify-phases %standard-phases
1258 (delete 'configure) ; no configure script
1259 (add-before 'check 'fix-tests
1260 (lambda _
1261 (substitute* "./t"
1262 (("\"/tmp") "$ENV{\"TMPDIR\"} . \"")
1263 ;; The Guix build environment lacks ‘ip6-localhost’.
1264 (("ip6-localhost") "localhost"))
1265 #t))
1266 ;; Many of these files are mentioned in the man page. Install them.
1267 (add-after 'install 'install-documentation
1268 (lambda* (#:key outputs #:allow-other-keys)
1269 (let* ((out (assoc-ref outputs "out"))
1270 (doc (string-append out "/share/doc/sslh")))
1271 (install-file "README.md" doc)
1272 (for-each
1273 (lambda (file)
1274 (install-file file (string-append doc "/examples")))
1275 (append (find-files "." "\\.cfg")
1276 (find-files "scripts"))))
1277 #t)))
1278 #:make-flags (list "CC=gcc"
1279 "USELIBCAP=1"
1280 "USELIBWRAP=1"
1281 (string-append "PREFIX=" (assoc-ref %outputs "out")))
1282 #:test-target "test"))
7eaa37a1 1283 (home-page "https://www.rutschle.net/tech/sslh/README.html")
4fb5f830
TGR
1284 (synopsis "Applicative network protocol demultiplexer")
1285 (description
1286 "sslh is a network protocol demultiplexer. It acts like a switchboard,
1287accepting connections from clients on one port and forwarding them to different
1288servers based on the contents of the first received data packet. Detection of
1289common protocols like HTTP(S), SSL, SSH, OpenVPN, tinc, and XMPP is already
1290implemented, but any other protocol that matches a regular expression can be
1291added. sslh's name comes from its original application of serving both SSH and
1292HTTPS on port 443, allowing SSH connections from inside corporate firewalls
1293that block port 22.")
1294 (license (list license:bsd-2 ; tls.[ch]
1295 license:gpl2+)))) ; everything else
b747718e
BS
1296
1297(define-public iperf
1298 (package
1299 (name "iperf")
9c974c93 1300 (version "3.1.7")
b747718e
BS
1301 (source (origin
1302 (method url-fetch)
1303 (uri (string-append "http://downloads.es.net/pub/iperf"
1304 "/iperf-" version ".tar.gz"))
1305 (sha256
1306 (base32
9c974c93 1307 "0kvk8d0a3dcxc8fisyprbn01y8akxj4sx8ld5dh508p9dx077vx4"))))
b747718e
BS
1308 (build-system gnu-build-system)
1309 (synopsis "TCP, UDP and SCTP bandwidth measurement tool")
1310 (description
1311 "iPerf is a tool to measure achievable bandwidth on IP networks. It
1312supports tuning of various parameters related to timing, buffers and
1313protocols (TCP, UDP, SCTP with IPv4 and IPv6). For each test it reports
1314the bandwidth, loss, and other parameters.")
1315 (home-page "http://software.es.net/iperf/")
1316 (license (list license:bsd-3 ; Main distribution.
1317 license:ncsa ; src/{units,iperf_locale,tcp_window_size}.c
1318 license:expat ; src/{cjson,net}.[ch]
1319 license:public-domain)))) ; src/portable_endian.h
b7f3cf2c
AI
1320
1321(define-public nethogs
1322 (package
1323 (name "nethogs")
1324 (version "0.8.5")
1325 (source (origin
1326 (method url-fetch)
1327 (uri (string-append "https://github.com/raboof/nethogs/archive/v"
1328 version ".tar.gz"))
1329 (sha256
1330 (base32
1331 "1k4x8r7s4dgcb6n2rjn28h2yyij92mwm69phncl3597cdxr954va"))
1332 (file-name (string-append name "-" version ".tar.gz"))))
1333 (build-system gnu-build-system)
1334 (inputs
1335 `(("libpcap" ,libpcap)
1336 ("ncurses" ,ncurses)))
1337 (arguments
1338 `(#:make-flags `("CC=gcc"
1339 ,(string-append "PREFIX=" %output))
1340 #:phases
1341 (modify-phases %standard-phases
1342 (delete 'configure)))) ; No ./configure script.
1343 (home-page "https://github.com/raboof/nethogs")
1344 (synopsis "Per-process bandwidth monitor")
1345 (description "NetHogs is a small 'net top' tool for Linux. Instead of
1346breaking the traffic down per protocol or per subnet, like most tools do, it
1347groups bandwidth by process.
1348
1349NetHogs does not rely on a special kernel module to be loaded. If there's
1350suddenly a lot of network traffic, you can fire up NetHogs and immediately see
1351which PID is causing this. This makes it easy to identify programs that have
1352gone wild and are suddenly taking up your bandwidth.")
1353 (license license:gpl2+)))
92ac2cff 1354
b3623b6f
RH
1355(define-public nzbget
1356 (package
1357 (name "nzbget")
945b119f 1358 (version "20.0")
b3623b6f
RH
1359 (source
1360 (origin
1361 (method url-fetch)
1362 (uri (string-append "https://github.com/nzbget/nzbget/archive/v"
1363 version ".tar.gz"))
1364 (file-name (string-append name "-" version ".tar.gz"))
1365 (sha256
1366 (base32
945b119f 1367 "0q93aqqyzccn5r9sny38499rmg846qdh9pi2v5kvf9m23v54yk60"))
657f1815
TGR
1368 (modules '((guix build utils)))
1369 (snippet
1370 ;; Reported upstream as <https://github.com/nzbget/nzbget/pull/414>.
1371 '(begin
1372 (substitute* "daemon/connect/TlsSocket.cpp"
1373 (("gnutls_certificate-verification_status_print")
1374 "gnutls_certificate_verification_status_print"))
1375 #t))))
b3623b6f
RH
1376 (arguments
1377 `(#:configure-flags
1378 (list
657f1815
TGR
1379 (string-append "--with-libcurses-includes="
1380 (assoc-ref %build-inputs "ncurses") "/include")
1381 (string-append "--with-libcurses-libraries="
1382 (assoc-ref %build-inputs "ncurses") "/lib")
b3623b6f
RH
1383 (string-append "--with-tlslib=GnuTLS"))))
1384 (build-system gnu-build-system)
c695fb76
TGR
1385 (inputs `(("gnutls" ,gnutls)
1386 ("libxml2" ,libxml2)
1387 ("ncurses" ,ncurses)
1388 ("zlib" ,zlib)))
1389 (native-inputs `(("pkg-config" ,pkg-config)))
b3623b6f
RH
1390 (home-page "https://github.com/nzbget/nzbget")
1391 (synopsis "Usenet binary file downloader")
1392 (description
1393 "NZBGet is a binary newsgrabber, which downloads files from Usenet based
1394on information given in @code{nzb} files. NZBGet can be used in standalone
1395and in server/client modes. In standalone mode, you pass NZBGet @command{nzb}
1396files as command-line parameters and it downloads them and exits. NZBGet also
1397contains a Web interface. Its server can be controlled through remote
1398procedure calls (RPCs).")
1399 (license license:gpl2+)))
1400
92ac2cff
SB
1401(define-public openvswitch
1402 (package
1403 (name "openvswitch")
eebb7b63 1404 (version "2.8.1")
92ac2cff
SB
1405 (source (origin
1406 (method url-fetch)
1407 (uri (string-append
1408 "http://openvswitch.org/releases/openvswitch-"
1409 version ".tar.gz"))
1410 (sha256
1411 (base32
eebb7b63 1412 "14rqqhfyv49irz8ag0qbv9jn8z0bn3qzxir3r074y16p4sg4674d"))))
92ac2cff
SB
1413 (build-system gnu-build-system)
1414 (arguments
1415 '(;; FIXME: many tests fail with:
1416 ;; […]
1417 ;; test -e $OVS_RUNDIR/ovs-vswitchd.pid
1418 ;; ovs-appctl -t ovs-vswitchd exit
1419 ;; hard failure
1420 #:tests? #f
1421 #:configure-flags
1422 '("--enable-shared"
1423 "--localstatedir=/var"
1424 "--with-dbdir=/var/lib/openvswitch")
1425 #:phases
1426 (modify-phases %standard-phases
1427 (replace 'install
1428 (lambda _
366c1cbb
MW
1429 (invoke "make"
1430 ;; Don't try to create directories under /var.
1431 "RUNDIR=/tmp"
1432 "PKIDIR=/tmp"
1433 "LOGDIR=/tmp"
1434 "DBDIR=/tmp"
1435 "install"))))))
92ac2cff
SB
1436 (native-inputs
1437 `(("perl" ,perl)
1438 ("pkg-config" ,pkg-config)
1439 ("python" ,python-2)
1440 ;; for testing
1441 ("util-linux" ,util-linux)))
1442 (propagated-inputs
1443 `(("python-six" ,python2-six)))
1444 (inputs
1445 `(("libcap-ng" ,libcap-ng)
1446 ("openssl" ,openssl)))
1447 (synopsis "Virtual network switch")
1448 (home-page "http://www.openvswitch.org/")
1449 (description
1450 "Open vSwitch is a multilayer virtual switch. It is designed to enable
1451massive network automation through programmatic extension, while still
1452supporting standard management interfaces and protocols (e.g. NetFlow, sFlow,
1453IPFIX, RSPAN, CLI, LACP, 802.1ag).")
1454 (license ; see debian/copyright for detail
1455 (list license:lgpl2.1 ; xenserver and utilities/bugtool
1456 license:gpl2 ; datapath
1457 license:bsd-2 license:bsd-3
1458 license:asl2.0)))) ; all other
38510546 1459
42c939a8
RW
1460(define-public python-ipy
1461 (package
1462 (name "python-ipy")
1463 (version "0.83")
1464 (source (origin
1465 (method url-fetch)
1466 (uri (pypi-uri "IPy" version))
1467 (sha256
1468 (base32
1469 "1f6sdrxclifky4gvkf4gvyv5hx3fjh8vzspnfrqki6qm5d9mmnk1"))))
1470 (build-system python-build-system)
1471 (home-page "https://github.com/autocracy/python-ipy/")
1472 (synopsis "Python class and tools for handling IP addresses and networks")
1473 (description "The @code{IP} class allows a comfortable parsing and
1474handling for most notations in use for IPv4 and IPv6 addresses and
1475networks.")
1476 (license license:bsd-3)))
1477
a4e7215d
DM
1478(define-public python2-ipy
1479 (package-with-python2 python-ipy))
1480
38510546
PP
1481(define-public speedtest-cli
1482 (package
1483 (name "speedtest-cli")
b3740474 1484 (version "2.0.2")
38510546
PP
1485 (source
1486 (origin
b3740474
EF
1487 (method git-fetch)
1488 (uri (git-reference
1489 (url "https://github.com/sivel/speedtest-cli")
1490 (commit (string-append "v" version))))
1491 (file-name (git-file-name name version))
38510546
PP
1492 (sha256
1493 (base32
b3740474 1494 "0vv2z37g2kgm2dzkfa4bhri92hs0d1acxi8z66gznsl5148q7sdi"))))
38510546
PP
1495 (build-system python-build-system)
1496 (home-page "https://github.com/sivel/speedtest-cli")
1497 (synopsis "Internet bandwidth tester")
1498 (description
1499 "Command line interface for testing internet bandwidth using
1500speedtest.net.")
1501 (license license:asl2.0)))
5b5cf3c7
GB
1502
1503(define-public tftp-hpa
1504 (package
1505 (name "tftp-hpa")
1506 (version "5.2")
1507 (source (origin
1508 (method url-fetch)
1509 (uri (string-append "mirror://kernel.org/software/"
1510 "network/tftp/tftp-hpa/tftp-hpa-" version
1511 ".tar.xz"))
1512 (sha256
1513 (base32
1514 "12vidchglhyc20znq5wdsbhi9mqg90jnl7qr9qs8hbvaz4fkdvmg"))))
1515 (build-system gnu-build-system)
1516 (arguments `(#:tests? #f)) ; no test target
1517 (synopsis "HPA's tftp client")
1518 (description
1519 "This is a tftp client derived from OpenBSD tftp with some extra options
1520added and bugs fixed. The source includes readline support but it is not
1521enabled due to license conflicts between the BSD advertising clause and the GPL.")
1522 (home-page "http://git.kernel.org/cgit/network/tftp/tftp-hpa.git/about/")
1523 ;; Some source files are distributed under a 3-clause BSD license, and
1524 ;; others under a 4-clause BSD license. Refer to the files in the source
1525 ;; distribution for clarification.
1526 (license (list license:bsd-3 license:bsd-4))))
cc24bf98 1527
f2e12718 1528(define-public pidentd
1529 (package
1530 (name "pidentd")
1531 (version "3.0.19")
1532 (source
1533 (origin
1534 (method url-fetch)
1535 (uri (string-append "https://github.com/ptrrkssn/pidentd/archive/"
1536 "v" version ".tar.gz"))
1537 (file-name (string-append name "-" version ".tar.gz"))
1538 (sha256
1539 (base32
1540 "0y3kd1bkydqkpc1qdff24yswysamsqivvadjy0468qri5730izgc"))))
1541 (build-system gnu-build-system)
1542 (arguments
1543 `(#:tests? #f)) ; No tests are included
1544 (inputs
1545 `(("openssl" ,openssl))) ; For the DES library
1546 (home-page "https://www.lysator.liu.se/~pen/pidentd/")
1547 (synopsis "Small Ident Daemon")
1548 (description
1549 "@dfn{Pidentd} (Peter's Ident Daemon) is a identd, which implements a
1550identification server. Pidentd looks up specific TCP/IP connections and
1551returns the user name and other information about the connection.")
1552 (license license:public-domain)))
1553
cc24bf98
LF
1554(define-public spiped
1555 (package
1556 (name "spiped")
1557 (version "1.6.0")
1558 (source (origin
1559 (method url-fetch)
1560 (uri (string-append "https://www.tarsnap.com/spiped/spiped-"
1561 version ".tgz"))
1562 (sha256
1563 (base32
1564 "1r51rdcl7nib1yv3yvgd5alwlkkwmr387brqavaklb0p2bwzixz6"))))
1565 (build-system gnu-build-system)
1566 (arguments
1567 '(#:test-target "test"
1568 #:make-flags (let* ((out (assoc-ref %outputs "out"))
1569 (bindir (string-append out "/bin"))
1570 (man1dir (string-append out "/share/man/man1")))
1571 (list "CC=gcc" ; It tries to invoke `c99`.
1572 (string-append "BINDIR=" bindir)
1573 (string-append "MAN1DIR=" man1dir)))
1574 #:phases
1575 (modify-phases %standard-phases
1576 (add-after 'unpack 'patch-command-invocations
1577 (lambda _
1578 (substitute* '("Makefile"
1579 "libcperciva/cpusupport/Build/cpusupport.sh"
1580 "libcperciva/POSIX/posix-cflags.sh"
1581 "libcperciva/POSIX/posix-l.sh")
1582 (("command -p") ""))
1583 #t))
1584 (delete 'configure) ; No ./configure script.
1585 (add-after 'install 'install-more-docs
1586 (lambda* (#:key outputs #:allow-other-keys)
1587 (let* ((out (assoc-ref %outputs "out"))
1588 (misc (string-append out "/share/doc/spiped")))
1589 (install-file "DESIGN.md" misc)
1590 #t))))))
1591 (native-inputs
1592 `(("procps" ,procps))) ; `ps` is used by the test suite.
1593 (inputs
1594 `(("openssl" ,openssl)))
1595 (home-page "https://www.tarsnap.com/spiped.html")
1596 (synopsis "Create secure pipes between sockets")
1597 (description "Spiped (pronounced \"ess-pipe-dee\") is a utility for creating
1598symmetrically encrypted and authenticated pipes between socket addresses, so
1599that one may connect to one address (e.g., a UNIX socket on localhost) and
1600transparently have a connection established to another address (e.g., a UNIX
1601socket on a different system). This is similar to 'ssh -L' functionality, but
1602does not use SSH and requires a pre-shared symmetric key.")
1603 (license license:bsd-2)))
c2700e78
GB
1604
1605(define-public quagga
1606 (package
1607 (name "quagga")
75377c6c 1608 (version "1.2.4")
c2700e78
GB
1609 (source (origin
1610 (method url-fetch)
1611 (uri (string-append "mirror://savannah/quagga/quagga-"
1612 version ".tar.gz"))
1613 (sha256
1614 (base32
75377c6c 1615 "1lsksqxij5f1llqn86pkygrf5672kvrqn1kvxghi169hqf1c0r73"))
c2700e78
GB
1616 (patches
1617 (search-patches "quagga-reproducible-build.patch"))))
1618 (build-system gnu-build-system)
c695fb76
TGR
1619 (native-inputs `(("pkg-config" ,pkg-config)
1620 ("perl" ,perl)
1621 ("dejagnu" ,dejagnu)))
1622 (inputs `(("readline" ,readline)
1623 ("c-ares" ,c-ares)))
c2700e78
GB
1624 (synopsis "Routing Software Suite")
1625 (description "Quagga is a routing software suite, providing implementations
1626of OSPFv2, OSPFv3, RIP v1 and v2, RIPng and BGP-4 for Unix platforms.
1627
1628The Quagga architecture consists of a core daemon, @command{zebra}, which
1629acts as an abstraction layer to the underlying Unix kernel and presents the
1630Zserv API over a Unix or TCP stream to Quagga clients. It is these Zserv
1631clients which typically implement a routing protocol and communicate routing
1632updates to the zebra daemon.")
340978d7 1633 (home-page "https://www.nongnu.org/quagga/")
c2700e78 1634 (license license:gpl2+)))
4d9d9e3f
LF
1635
1636(define-public thc-ipv6
491f7fc0
LF
1637 (let ((revision "0")
1638 (commit "4bb72573e0950ce6f8ca2800a10748477020029e"))
1639 (package
1640 (name "thc-ipv6")
1641 (version (git-version "3.4" revision commit))
1642 (source (origin
1643 (method git-fetch)
1644 (uri (git-reference
1645 (url "https://github.com/vanhauser-thc/thc-ipv6.git")
1646 (commit commit)))
1647 (file-name (git-file-name name version))
1648 (sha256
1649 (base32
1650 "1x5i6vbsddqc2yks7r1a2fw2fk16qxvd6hpzh1lykjfpkal8fdir"))))
1651 (build-system gnu-build-system)
1652 (arguments
1653 `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
1654 #:tests? #f ; No test suite.
1655 #:phases
1656 (modify-phases %standard-phases
1657 (delete 'configure) ; No ./configure script.
1658 (add-before 'build 'patch-paths
1659 (lambda _
1660 (substitute* "Makefile"
1661 (("/bin/echo") "echo"))
1662 #t))
1663 (add-after 'install 'install-more-docs
1664 (lambda* (#:key outputs #:allow-other-keys)
1665 (let* ((out (assoc-ref outputs "out"))
1666 (doc (string-append out "/share/thc-ipv6/doc")))
1667 (install-file "README" doc)
1668 (install-file "HOWTO-INJECT" doc)
1669 #t))))))
1670 ;; TODO Add libnetfilter-queue once packaged.
1671 (inputs
1672 `(("libpcap" ,libpcap)
1673 ("openssl" ,openssl)
1674 ("perl" ,perl)))
1675 (home-page "https://github.com/vanhauser-thc/thc-ipv6")
1676 (synopsis "IPv6 security research toolkit")
1677 (description "The THC IPv6 Toolkit provides command-line tools and a library
4d9d9e3f
LF
1678for researching IPv6 implementations and deployments. It requires Linux 2.6 or
1679newer and only works on Ethernet network interfaces.")
491f7fc0
LF
1680 ;; AGPL 3 with exception for linking with OpenSSL. See the 'LICENSE' file in
1681 ;; the source distribution for more information.
1682 (license license:agpl3))))
cfd6a3b1
AI
1683
1684(define-public bmon
1685 (package
1686 (name "bmon")
1687 (version "4.0")
1688 (source
1689 (origin
1690 (method url-fetch)
1691 (uri (string-append "https://github.com/tgraf/bmon/releases/download/v"
1692 version "/bmon-" version ".tar.gz"))
1693 (sha256
1694 (base32
1695 "0ylzriv4pwh76344abzl1w219x188gshbycbna35gsyfp09c7z82"))))
1696 (build-system gnu-build-system)
1697 (inputs
1698 `(("libconfuse" ,libconfuse)
1699 ("libnl" ,libnl)
1700 ("ncurses" ,ncurses)))
1701 (native-inputs
1702 `(("pkg-config" ,pkg-config)))
1703 (synopsis "Bandwidth monitor")
1704 (description "bmon is a monitoring and debugging tool to capture
1705networking-related statistics and prepare them visually in a human-friendly
1706way. It features various output methods including an interactive curses user
1707interface and a programmable text output for scripting.")
1708 (home-page "https://github.com/tgraf/bmon")
1709 ;; README.md mentions both the 2-clause BSD and expat licenses, but all
1710 ;; the source files only have expat license headers. Upstream has been
1711 ;; contacted for clarification: https://github.com/tgraf/bmon/issues/59
1712 ;; Update the license field when upstream responds.
1713 (license (list license:bsd-2
1714 license:expat))))
de5308f5
RW
1715
1716(define-public libnet
1717 (package
1718 (name "libnet")
3c85058c
RH
1719 (version "1.2-rc3")
1720 (source
1721 (origin
1722 (method git-fetch)
1723 (uri (git-reference
1724 (url "https://github.com/sam-github/libnet")
1725 (commit (string-append "libnet-" version))))
1726 (file-name (git-file-name name version))
1727 (sha256
1728 (base32
1729 "0cy8w4g5rv963v4p6iq3333kxgdddx2lywp70xf62553a25xhhs4"))))
de5308f5
RW
1730 (build-system gnu-build-system)
1731 (arguments
1732 `(#:phases
1733 (modify-phases %standard-phases
1734 (add-after 'unpack 'chdir
1735 (lambda _ (chdir "libnet") #t))
de5308f5
RW
1736 (add-before 'build 'build-doc
1737 (lambda* (#:key make-flags #:allow-other-keys)
366c1cbb
MW
1738 (apply invoke "make" "-C" "doc" "doc"
1739 make-flags))))))
de5308f5
RW
1740 (native-inputs
1741 `(("autoconf" ,autoconf)
1742 ("automake" ,automake)
1743 ("libtool" ,libtool)
1744 ("doxygen" ,doxygen)))
1745 (home-page "https://sourceforge.net/projects/libnet-dev/")
1746 (synopsis "Framework for low-level network packet construction")
1747 (description
1748 "Libnet provides a fairly portable framework for network packet
1749construction and injection. It features portable packet creation interfaces
1750at the IP layer and link layer, as well as a host of supplementary
1751functionality. Using libnet, quick and simple packet assembly applications
1752can be whipped up with little effort.")
1753 (license license:bsd-2)))
b59a8fd4
TGR
1754
1755(define-public mtr
1756 (package
1757 (name "mtr")
1758 (version "0.92")
1759 (source
1760 (origin
1761 (method url-fetch)
1762 (uri (string-append "ftp://ftp.bitwizard.nl/" name "/"
1763 name "-" version ".tar.gz"))
1764 (sha256
1765 (base32 "10j3ds3p27jygys4x08kj8fi3zlsgiv72xsfazkah6plwawrv5zj"))))
1766 (build-system gnu-build-system)
1767 (inputs
1768 `(("libcap" ,libcap)
1769 ("ncurses" ,ncurses)))
1770 (native-inputs
1771 ;; The 0.92 release tarball still requires the ‘autoheader’ tool.
1772 `(("autoconf" ,autoconf)))
1773 (arguments
1774 `(#:tests? #f)) ; tests require network access
1775 (home-page "https://www.bitwizard.nl/mtr/")
1776 (synopsis "Network diagnostic tool")
1777 (description
1778 "@dfn{mtr} (My TraceRoute) combines the functionality of the
1779@command{traceroute} and @command{ping} programs in a single network diagnostic
63f5656c
TGR
1780tool. @command{mtr} can use several network protocols to detect intermediate
1781routers (or @dfn{hops}) between the local host and a user-specified destination.
1782It then continually measures the response time and packet loss at each hop, and
b59a8fd4
TGR
1783displays the results in real time.")
1784 (license license:gpl2+)))
5f645557
AVY
1785
1786(define-public strongswan
1787 (package
1788 (name "strongswan")
52135e59 1789 (version "5.6.3")
5f645557
AVY
1790 (source
1791 (origin
1792 (method url-fetch)
1793 (uri (string-append "https://download.strongswan.org/strongswan-"
1794 version ".tar.bz2"))
1795 (sha256
52135e59 1796 (base32 "095zg7h7qwsc456sqgwb1lhhk29ac3mk5z9gm6xja1pl061driy3"))))
5f645557
AVY
1797 (build-system gnu-build-system)
1798 (arguments
1799 `(#:phases
1800 (modify-phases %standard-phases
58246f96 1801 (add-before 'build 'patch-command-file-names
5f645557 1802 (lambda* (#:key inputs #:allow-other-keys)
5f645557
AVY
1803 (substitute* "src/libstrongswan/utils/process.c"
1804 (("/bin/sh")
1805 (string-append (assoc-ref inputs "bash") "/bin/sh")))
1806
1807 (substitute* "src/libstrongswan/tests/suites/test_process.c"
1808 (("/bin/sh") (which "sh"))
1809 (("/bin/echo") (which "echo"))
1810 (("cat") (which "cat")))
58246f96
TGR
1811 #t))
1812 (add-before 'check 'set-up-test-environment
1813 (lambda* (#:key inputs #:allow-other-keys)
5f645557
AVY
1814 (setenv "TZDIR" (string-append (assoc-ref inputs "tzdata")
1815 "/share/zoneinfo"))
1816 #t)))
1817 #:configure-flags
1818 (list
1819 ;; Disable bsd-4 licensed plugins
1820 "--disable-des"
1821 "--disable-blowfish")))
1822 (inputs
1823 `(("curl" ,curl)
1824 ("gmp" ,gmp)
1825 ("libgcrypt" ,libgcrypt)
1826 ("openssl" ,openssl)))
1827 (native-inputs
1828 `(("coreutils" ,coreutils)
1bab7340 1829 ("tzdata" ,tzdata-for-tests)))
5f645557
AVY
1830 (synopsis "IKEv1/v2 keying daemon")
1831 (description "StrongSwan is an IPsec implementation originally based upon
1832the FreeS/WAN project. It contains support for IKEv1, IKEv2, MOBIKE, IPv6,
1833NAT-T and more.")
1834 (home-page "https://strongswan.org/")
1835 (license
1836 (list license:gpl2+
1837 ;; src/aikgen/*
1838 ;; src/libcharon/plugins/dnscert/*
1839 ;; src/libcharon/plugins/ext_auth/*
1840 ;; src/libcharon/plugins/vici/ruby/*
1841 ;; src/libcharon/plugins/xauth_pam/xauth_pam_listener.[ch]
1842 license:expat
1843 ;; src/inclue/sys/*
1844 license:bsd-3
1845 ;; src/libstrongswan/plugins/sha3/sha3_keccak.c
1846 license:public-domain
1847 ;; src/libstrongswan/plugins/pkcs11/pkcs11.h
1848 (license:non-copyleft
1849 "file://src/libstrongswan/plugins/pkcs11/pkcs11.h"
1850 "pkcs11 contains a unknown permissive license. View the specific
1851file for more details.")
1852 ;; These files are not included in the
1853 ;; build, they are disabled through
1854 ;; options to ./configure
1855 ;;
1856 ;; src/libstrongswan/plugins/blowfish/bf_enc.c
1857 ;; src/libstrongswan/plugins/blowfish/bf_locl.h
1858 ;; src/libstrongswan/plugins/blowfish/bf_pi.h
1859 ;; src/libstrongswan/plugins/blowfish/bf_skey.c
1860 ;; src/libstrongswan/plugins/blowfish/blowfish_crypter.c
1861 ;; src/libstrongswan/plugins/des/des_crypter.c
1862 license:bsd-4))))
1170198d 1863
1864(define-public amule
1865 (package
1866 (name "amule")
1867 (version "2.3.2")
1868 (source (origin
d25a4876
EF
1869 (method git-fetch)
1870 (uri (git-reference
1871 (url "https://github.com/amule-project/amule")
1872 (commit version)))
1873 (file-name (git-file-name name version))
1170198d 1874 (sha256
1875 (base32
d25a4876 1876 "010wxm6g9f92x6fympj501zbnjka32rzbx0sk3a2y4zpih5d2nsn"))
1170198d 1877 ;; Patch for adopting crypto++ >= 6.0.
1878 (patches (search-patches "amule-crypto-6.patch"))))
1879 (build-system gnu-build-system)
1880 (arguments
1881 `(#:phases
1882 (modify-phases %standard-phases
fc1ed8c1 1883 (delete 'bootstrap) ; bootstrap phase runs too early.
1170198d 1884 (add-after 'patch-source-shebangs 'autogen
1885 (lambda _
1886 (invoke "sh" "autogen.sh")
1887 #t)))
1888 #:configure-flags
1889 '("--disable-rpath"
1890 "--enable-wxcas"
1891 "--enable-cas"
1892 "--enable-alc"
1893 "--enable-alcc"
1894 "--enable-xas"
1895 "--enable-amulecmd"
1896 "--enable-geoip"
1897 "--enable-ccache"
1898 "--enable-nls"
1899 "--enable-optimize"
1900 "--enable-amule-gui"
1901 "--enable-amule-daemon"
1902 "--enable-webserver"
1903 "--with-denoise-level=0")))
1904 (native-inputs
1905 `(("autoconf" ,autoconf)
1906 ("automake" ,automake)
1907 ("gettext-minimal" ,gettext-minimal)
1908 ("perl" ,perl)))
1909 (inputs
1910 `(("zlib" ,zlib)
1911 ("crypto++" ,crypto++)
1912 ("libpng" ,libpng)
de99ba7e 1913 ("wxwidgets-gtk2" ,wxwidgets-gtk2)))
1170198d 1914 (home-page "http://amule.org/")
1915 (synopsis "Peer-to-peer client for the eD2K and Kademlia networks")
1916 (description
1917 "aMule is an eMule-like client for the eD2k and Kademlia peer-to-peer
1918file sharing networks. It includes a graphical user interface (GUI), a daemon
1919allowing you to run a client with no graphical interface, and a Web GUI for
1920remote access. The @command{amulecmd} command allows you to control aMule
1921remotely.")
1922 (license license:gpl2+)))
d282fee5
T
1923
1924(define-public zyre
1925 (package
1926 (name "zyre")
1927 (version "2.0.0")
1928 (source (origin
1929 (method url-fetch)
1930 (uri
1931 (string-append "https://github.com/zeromq/zyre/releases/download/v"
1932 version "/" name "-" version ".tar.gz"))
1933 (sha256
1934 (base32
1935 "0qz2730bng1gs9xbqxhkw88qbsmszgmmrl2g9k6xrg6r3bqvsdc7"))))
1936 (build-system gnu-build-system)
1937 (inputs `(("zeromq" ,zeromq)
1938 ("czmq" ,czmq)
1939 ("libsodium" ,libsodium)))
1940 (synopsis "Framework for proximity-based peer-to-peer applications")
1941 (description "Zyre provides reliable group messaging over local area
1942networks using zeromq. It has these key characteristics:
1943
1944@itemize
1945@item Zyre needs no administration or configuration.
1946@item Peers may join and leave the network at any time.
1947@item Peers talk to each other without any central brokers or servers.
1948@item Peers can talk directly to each other.
1949@item Peers can join groups, and then talk to groups.
1950@item Zyre is reliable, and loses no messages even when the network is heavily loaded.
1951@item Zyre is fast and has low latency, requiring no consensus protocols.
1952@item Zyre is designed for WiFi networks, yet also works well on Ethernet networks.
1953@end itemize")
1954 (home-page "https://github.com/zeromq/zyre")
1955 (license license:mpl2.0)))
f1656a59
DM
1956
1957(define-public can-utils
1958 (package
1959 (name "can-utils")
1960 (version "2018.02.0")
1961 (source (origin
1962 (method git-fetch)
1963 (uri (git-reference
1964 (url "https://github.com/linux-can/can-utils.git")
1965 (commit (string-append "v" version))))
1966 (file-name (git-file-name name version))
1967 (sha256
1968 (base32
1969 "0r0zkm67bdcmbfypjr7z041d4zp0xzb379dyl8cvhmflh12fd2jb"))))
1970 (build-system gnu-build-system)
1971 (arguments
1972 `(#:tests? #f ; No tests exist.
1973 #:make-flags (list "CC=gcc"
1974 (string-append "PREFIX="
1975 (assoc-ref %outputs "out")))
1976 #:phases
1977 (modify-phases %standard-phases
a34dfa24 1978 (delete 'bootstrap)
f1656a59
DM
1979 (delete 'configure))))
1980 (home-page "https://github.com/linux-can/can-utils")
1981 (synopsis "CAN utilities")
1982 (description "This package provides CAN utilities in the following areas:
1983
1984@itemize
1985@item Basic tools to display, record, generate and replay CAN traffic
1986@item CAN access via IP sockets
1987@item CAN in-kernel gateway configuration
1988@item CAN bus measurement and testing
1989@item ISO-TP (ISO15765-2:2016 - this means messages with a body larger than
1990eight bytes) tools
1991@item Log file converters
1992@item Serial Line Discipline configuration for slcan driver
1993@end itemize")
1994 ;; Either BSD-3 or GPL-2 can be used.
1995 (license (list license:bsd-3 license:gpl2))))
d597dda6
NG
1996
1997(define-public asio
1998 (package
1999 (name "asio")
cb9da5d1 2000 (version "1.12.1")
d597dda6
NG
2001 (source
2002 (origin
cb9da5d1
TGR
2003 (method url-fetch)
2004 (uri (string-append "mirror://sourceforge/asio/asio/"
2005 version " (Stable)/" name "-" version ".tar.bz2"))
d597dda6
NG
2006 (sha256
2007 (base32
cb9da5d1 2008 "0nln45662kg799ykvqx5m9z9qcsmadmgg6r5najryls7x16in2d9"))))
d597dda6 2009 (build-system gnu-build-system)
d597dda6
NG
2010 (inputs
2011 `(("boost" ,boost)
2012 ("openssl" ,openssl)))
2013 (arguments
2014 `(#:configure-flags
2015 (list
2016 (string-append "--with-boost=" (assoc-ref %build-inputs "boost"))
cb9da5d1 2017 (string-append "--with-openssl=" (assoc-ref %build-inputs "openssl")))))
d597dda6
NG
2018 (home-page "https://think-async.com/Asio")
2019 (synopsis "C++ library for ASynchronous network I/O")
2020 (description "Asio is a cross-platform C++ library for network and
2021low-level I/O programming that provides developers with a consistent
2022asynchronous model using a modern C++ approach.")
2023 (license license:boost1.0)))
0017e55f 2024
2025(define-public shadowsocks
2026 ;; There are some security fixes after the last release.
2027 (let* ((commit "e332ec93e9c90f1cbee676b022bf2c5d5b7b1239")
2028 (revision "0")
2029 (version (git-version "2.8.2" revision commit)))
2030 (package
2031 (name "shadowsocks")
2032 (version version)
2033 (home-page "https://github.com/shadowsocks/shadowsocks")
2034 (source (origin
2035 (method git-fetch)
2036 (uri (git-reference
2037 (url home-page)
2038 (commit commit)))
2039 (sha256
2040 (base32
2041 "1idd9b4f2pnhcpk1bh030hqg5zq25gkwxd53xi3c0cj242w7sp2j"))
2042 (file-name (git-file-name name version))))
2043 (build-system python-build-system)
2044 (synopsis "Fast tunnel proxy that helps you bypass firewalls")
2045 (description
2046 "This package is a fast tunnel proxy that helps you bypass firewalls.
2047
2048Features:
2049@itemize
2050@item TCP & UDP support
2051@item User management API
2052@item TCP Fast Open
2053@item Workers and graceful restart
2054@item Destination IP blacklist
2055@end itemize")
2056 (license license:asl2.0))))
a8253fbe
RW
2057
2058(define-public net-snmp
2059 (package
2060 (name "net-snmp")
2061 (version "5.8")
2062 (source (origin
2063 (method url-fetch)
2064 (uri (string-append "mirror://sourceforge/net-snmp/net-snmp/"
2065 version "/net-snmp-" version ".tar.gz"))
2066 (sha256
2067 (base32
2068 "1pvajzj9gmj56dmwix0ywmkmy2pglh6nny646hkm7ghfhh03bz5j"))
2069 (modules '((guix build utils)))
2070 (snippet
2071 '(begin
2072 ;; Drop bundled libraries.
2073 (delete-file-recursively "snmplib/openssl")
2074 #t))))
2075 (build-system gnu-build-system)
2076 (arguments
2077 `(#:test-target "test"
2078 ;; XXX: With parallel build enabled, Perl modules may not get linked with
2079 ;; libnetsnmp. See e.g. <https://bugzilla.novell.com/show_bug.cgi?id=819497>.
2080 #:parallel-build? #f
2081 #:configure-flags
2082 (list (string-append "LDFLAGS=-Wl,-rpath="
2083 (assoc-ref %outputs "out")
2084 "/lib")
b5d1286f
OP
2085 "--with-logfile=/var/log/snmpd.log"
2086 (string-append "--with-openssl="
2087 (assoc-ref %build-inputs "openssl")))
a8253fbe
RW
2088 #:phases
2089 (modify-phases %standard-phases
2090 (add-after 'unpack 'patch-tests
2091 (lambda* (#:key inputs #:allow-other-keys)
2092 (substitute* "testing/fulltests/support/simple_TESTCONF.sh"
2093 (("NETSTAT=\"\"")
2094 (string-append "NETSTAT=\"" (which "netstat") "\"")))
2095 (substitute* '("testing/fulltests/default/T065agentextend_simple"
2096 "testing/fulltests/default/T115agentxperl_simple")
2097 (("/usr/bin/env") (which "env")))
2098 (substitute* "testing/fulltests/default/T065agentextend_sh_simple"
2099 (("/bin/sh") (which "sh")))
2100 ;; These tests require network access.
2101 (for-each delete-file
2102 '("testing/fulltests/default/T070com2sec_simple"
2103 "testing/fulltests/default/T071com2sec6_simple"))
2104 #t))
2105 (add-after 'unpack 'patch-Makefile.PL
2106 (lambda* (#:key outputs #:allow-other-keys)
2107 (substitute* "Makefile.in"
2108 (("Makefile.PL -NET")
2109 (string-append "Makefile.PL PREFIX="
2110 (assoc-ref outputs "out")
2111 " INSTALLDIRS=site" " NO_PERLLOCAL=1"
2112 " -NET")))
2113 #t)))))
2114 (inputs
2115 `(("perl" ,perl)
2116 ("openssl" ,openssl)
2117 ("libnl" ,libnl)))
2118 ;; These inputs are only needed for tests.
2119 (native-inputs
2120 `(("net-tools" ,net-tools)
2121 ("coreutils" ,coreutils)
2122 ("grep" ,grep)))
2123 (home-page "http://www.net-snmp.org/")
2124 (synopsis "Simple Network Management Protocol library and tools")
2125 (description "The @dfn{Simple Network Management Protocol} (SNMP) is a
2126widely used protocol for monitoring the health and welfare of network
2127equipment (e.g. routers), computer equipment and even devices like UPSs.
2128Net-SNMP is a suite of applications used to implement SNMP v1, SNMP v2c and
2129SNMP v3 using both IPv4 and IPv6.")
2130 (license (list license:bsd-3
2131 (license:non-copyleft
2132 "http://www.net-snmp.org/about/license.html"
2133 "CMU/UCD copyright notice")))))
277f25ce
OP
2134
2135(define-public ubridge
2136 (package
2137 (name "ubridge")
2138 (version "0.9.14")
2139 (source (origin
2140 (method url-fetch)
2141 (uri (string-append "https://github.com/GNS3/ubridge/archive/v"
2142 version ".tar.gz"))
2143 (file-name (string-append name "-" version ".tar.gz"))
2144 (sha256
2145 (base32
2146 "1hivb8wqkk5047bdl2vbsbcvkmam1107hx1ahy4virq2bkqki1fj"))))
2147 (build-system gnu-build-system)
2148 (arguments
2149 `(#:tests? #f ;no tests
2150 #:make-flags '("CC=gcc")
2151 #:phases
2152 (modify-phases %standard-phases
2153 (delete 'configure)
2154 (add-before 'install 'set-bindir
2155 (lambda* (#:key inputs outputs #:allow-other-keys)
2156 (let ((bin (string-append (assoc-ref outputs "out")
2157 "/bin")))
2158 (mkdir-p bin)
2159 (substitute* "Makefile"
2160 (("\\$\\(BINDIR\\)") bin)
2161 (("\tsetcap cap_net.*$") "")))
2162 #t)))))
2163 (inputs
2164 `(("libpcap" ,libpcap)))
2165 (home-page "https://github.com/GNS3/ubridge/")
2166 (synopsis "Bridge for UDP tunnels, Ethernet, TAP and VMnet interfaces")
2167 (description "uBridge is a simple program to create user-land bridges
2168between various technologies. Currently, bridging between UDP tunnels,
2169Ethernet and TAP interfaces is supported. Packet capture is also supported.")
2170 (license license:gpl3+)))
5bd3134e
PN
2171
2172(define-public hcxtools
2173 (let* ((commit "2ecfc9a06c2028c47522ea566ccd82b2c1f94647"))
2174 (package
2175 (name "hcxtools")
2176 (version (git-version "0.0.0" "1" commit))
2177 (home-page "https://github.com/ZerBea/hcxtools")
2178 (source (origin
2179 (method git-fetch)
2180 (uri (git-reference
2181 (url home-page)
2182 (commit commit)))
2183 (sha256
2184 (base32
2185 "1hzwrpmxjxl674if0pp5iq06mdi24k7ni7bh1h20isp4s40201n3"))
2186 (file-name (git-file-name name version))))
2187 (build-system gnu-build-system)
2188 (inputs
2189 `(("curl" ,curl)
2190 ("libpcap" ,libpcap)
2191 ("openssl" ,openssl)
2192 ("zlib" ,zlib)))
2193 (arguments
2194 `(#:make-flags (list "CC=gcc"
2195 (string-append "INSTALLDIR=" (assoc-ref %outputs "out") "/bin"))
2196 #:tests? #f ;no tests
2197 #:phases
2198 (modify-phases %standard-phases
2199 (delete 'configure)
2200 (add-after 'unpack 'set-environment
2201 (lambda* (#:key inputs #:allow-other-keys)
2202 (setenv "C_INCLUDE_PATH"
2203 (string-append (assoc-ref inputs "curl")
2204 "/include:"
2205 (assoc-ref inputs "libpcap")
2206 "/include:"
2207 (assoc-ref inputs "openssl")
2208 "/include:"
2209 (assoc-ref inputs "zlib")
2210 "/include:"
2211 (getenv "C_INCLUDE_PATH")))
2212 #t)))))
2213 (synopsis "Capture wlan traffic to hashcat and John the Ripper")
2214 (description
2215 "This package contains a small set of tools to capture and convert
2216packets from wireless devices for use with hashcat or John the Ripper.")
2217 (license license:expat))))
a87ee0e4
PN
2218
2219(define-public hcxdumptool
2220 (let* ((commit "f4799b5da82c5b030a6d99b02d1c1b9dc838ad36"))
2221 (package
2222 (name "hcxdumptool")
2223 (version (git-version "0.0.0" "1" commit))
2224 (home-page "https://github.com/ZerBea/hcxdumptool")
2225 (source (origin
2226 (method git-fetch)
2227 (uri (git-reference
2228 (url home-page)
2229 (commit commit)))
2230 (sha256
2231 (base32
2232 "0qlsin0rws9sshn12faq4spmd0ffzssal36s71vhv6gkhhga7abl"))
2233 (file-name (git-file-name name version))))
2234 (build-system gnu-build-system)
2235 (arguments
2236 `(#:make-flags (list "CC=gcc"
2237 (string-append "INSTALLDIR=" (assoc-ref %outputs "out") "/bin"))
2238 #:tests? #f ;no tests
2239 #:phases
2240 (modify-phases %standard-phases
2241 (delete 'configure))))
2242 (synopsis "Small tool to capture packets from wlan devices")
2243 (description
2244 "Small tool to capture packets from WLAN devices. After capturing,
2245upload the \"uncleaned\" cap to @url{https://wpa-sec.stanev.org/?submit} to
2246see if the access point or the client is vulnerable to a dictionary attack.
2247Convert the cap file to hccapx format and/or to WPA-PMKID-PBKDF2
2248hashline (16800) with @command{hcxpcaptool} from the @code{hcxtools} package
2249and check if the WLAN key or the master key was transmitted unencrypted.")
2250 (license license:expat))))
2913a942
AI
2251
2252(define-public dante
2253 (package
2254 (name "dante")
2255 (version "1.4.2")
2256 (source
2257 (origin
2258 (method url-fetch)
2259 (uri (string-append "https://www.inet.no/dante/files/dante-"
2260 version ".tar.gz"))
2261 (sha256
2262 (base32
2263 "19rqzj167q73ag20zxpvswhkk0bj56r5maf83v5016sw7vrcz5sc"))))
2264 (build-system gnu-build-system)
7789bf95
SB
2265 (arguments
2266 ;; XXX: The dynamic socks library doesn't work with 'libc.so' (GNU ld
2267 ;; script). When preloading is enabled, 'sockd' failed with:
2268 ;; … Failed to open library "libc.so": …: invalid ELF header
2269 '(#:configure-flags '("--disable-preload")))
2913a942
AI
2270 (home-page "https://www.inet.no/dante/")
2271 (synopsis "SOCKS server and client")
2272 (description "Dante is a SOCKS client and server implementation. It can
2273be installed on a machine with access to an external TCP/IP network and will
2274allow all other machines, without direct access to that network, to be relayed
2275through the machine the Dante server is running on. The external network will
2276never see any machines other than the one Dante is running on.")
2277 (license (license:non-copyleft "file://LICENSE"))))
362fba83
PN
2278
2279(define-public restbed
2280 (let ((commit "6eb385fa9051203f28bf96cc1844bbb5a9a6481f"))
2281 (package
2282 (name "restbed")
2283 (version (git-version "4.6" "1" commit))
2284 (source
2285 (origin
2286 (method git-fetch)
2287 (uri (git-reference
2288 (url "https://github.com/Corvusoft/restbed/")
2289 (commit commit)))
2290 (file-name (string-append name "-" version ".tar.gz"))
2291 (sha256
2292 (base32 "0k60i5drklqqrb4khb25fzkgz9y0sncxf1sp6lh2bm1m0gh0661n"))))
2293 (build-system cmake-build-system)
2294 (inputs
2295 `(("asio" ,asio)
2296 ("catch" ,catch-framework)
2297 ("openssl" ,openssl)))
2298 (arguments
2299 `(#:tests? #f
2300 #:configure-flags
2301 '("-DBUILD_TESTS=NO"
2302 "-DBUILD_EXAMPLES=NO"
2303 "-DBUILD_SSL=NO"
2304 "-DBUILD_SHARED=NO")
2305 #:phases
2306 (modify-phases %standard-phases
2307 (add-after 'unpack 'apply-patches-and-fix-paths
2308 (lambda* (#:key inputs #:allow-other-keys)
2309 (let ((asio (assoc-ref inputs "asio"))
2310 (catch (assoc-ref inputs "catch"))
2311 (openssl (assoc-ref inputs "openssl")))
2312 (substitute* "cmake/Findasio.cmake"
2313 (("(find_path\\( asio_INCLUDE asio\\.hpp HINTS ).*$" all begin)
2314 (string-append begin " \"" asio "/include\" )")))
2315 (substitute* "cmake/Findcatch.cmake"
2316 (("(find_path\\( catch_INCLUDE catch\\.hpp HINTS ).*$" all begin)
2317 (string-append begin " \"" catch "/include\" )")))
2318 (substitute* "cmake/Findopenssl.cmake"
2319 (("(find_library\\( ssl_LIBRARY ssl ssleay32 HINTS ).*$" all begin)
2320 (string-append begin " \"" openssl "/lib\" )"))
2321 (("(find_library\\( crypto_LIBRARY crypto libeay32 HINTS ).*$" all begin)
2322 (string-append begin " \"" openssl "/lib\" )"))
2323 (("(find_path\\( ssl_INCLUDE openssl/ssl\\.h HINTS ).*$" all begin)
2324 (string-append begin " \"" openssl "/include\" )")))))))))
2325 (synopsis "Asynchronous RESTful functionality to C++11 applications")
2326 (description "Restbed is a comprehensive and consistent programming
2327model for building applications that require seamless and secure
2328communication over HTTP.")
2329 (home-page "https://github.com/Corvusoft/restbed")
2330 (license license:agpl3+))))
e0fa6413
PN
2331
2332(define-public opendht
2333 (package
2334 (name "opendht")
2335 (version "1.8.1")
2336 (source (origin
2337 (method git-fetch)
2338 (uri (git-reference
2339 (url "https://github.com/savoirfairelinux/opendht.git")
2340 (commit version)))
2341 (file-name (git-file-name name version))
2342 (sha256
2343 (base32
2344 "0vninb5mak27wigajslyvr05vq7wbrwqhbr4wzl2nmqcb20wmlq2"))))
2345 (build-system gnu-build-system)
2346 (inputs
2347 `(("gnutls" ,gnutls)
2348 ("nettle" ,nettle)
2349 ("readline" ,readline)
e0fa6413
PN
2350 ("jsoncpp" ,jsoncpp)
2351 ("restbed" ,restbed)))
2352 (propagated-inputs
1ac0c1b8
PN
2353 `(("argon2" ,argon2) ; TODO: Needed for the pkg-config .pc file to work?
2354 ("msgpack" ,msgpack))) ;included in several installed headers
e0fa6413
PN
2355 (native-inputs
2356 `(("autoconf" ,autoconf)
2357 ("pkg-config" ,pkg-config)
2358 ("automake" ,automake)
2359 ("libtool" ,libtool)))
2360 (arguments
2361 `(#:configure-flags '("--disable-tools"
2362 "--disable-python"
2363 "--with-argon2")))
2364 (home-page "https://github.com/savoirfairelinux/opendht/")
2365 (synopsis "Distributed Hash Table (DHT) library")
2366 (description "OpenDHT is a Distributed Hash Table (DHT) library. It may
2367be used to manage peer-to-peer network connections as needed for real time
2368communication.")
2369 (license license:gpl3+)))