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