Mirror of GNU Guix
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2208 lines
86 KiB

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