diff options
Diffstat (limited to 'gnu/packages/vpn.scm')
-rw-r--r-- | gnu/packages/vpn.scm | 245 |
1 files changed, 106 insertions, 139 deletions
diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index 330a3271b4..4ad555ef1b 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> -;;; Copyright © 2013, 2016, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2016, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2015 Jeff Mickey <j@codemac.net> ;;; Copyright © 2016, 2017, 2019, 2021 Efraim Flashner <efraim@flashner.co.il> @@ -240,7 +240,7 @@ (add-after 'python-wrap 'qt-wrap (assoc-ref qt:%standard-phases 'qt-wrap))))) (native-inputs - `(("pkg-config" ,pkg-config))) + (list pkg-config)) (inputs `(("iproute" ,iproute) ("iptables" ,iptables) @@ -254,19 +254,13 @@ ("qtquickcontrols" ,qtquickcontrols) ("qtquickcontrols2" ,qtquickcontrols2))) (propagated-inputs - `(("go-0xacab-org-leap-shapeshifter" - ,go-0xacab-org-leap-shapeshifter) - ("go-github-com-apparentlymart-go-openvpn-mgmt" - ,go-github-com-apparentlymart-go-openvpn-mgmt) - ("go-github-com-emersion-go-autostart" - ,go-github-com-emersion-go-autostart) - ("go-github-com-keybase-go-ps" - ,go-github-com-keybase-go-ps) - ("go-github-com-rakyll-statik" - ,go-github-com-rakyll-statik) - ("go-github-com-sevlyar-go-daemon" - ,go-github-com-sevlyar-go-daemon) - ("go-golang-org-x-sys" ,go-golang-org-x-sys))) + (list go-0xacab-org-leap-shapeshifter + go-github-com-apparentlymart-go-openvpn-mgmt + go-github-com-emersion-go-autostart + go-github-com-keybase-go-ps + go-github-com-rakyll-statik + go-github-com-sevlyar-go-daemon + go-golang-org-x-sys)) (synopsis "Generic VPN client by LEAP") (description "Bitmask, by @acronym{LEAP, LEAP Encryption Access Project}, is an application to provide easy and secure encrypted communication with a @@ -289,9 +283,8 @@ Networks and The Calyx Institute, where the former is default.") "1cz8n75ksl0l908zc5l3rnfm1hv7130s2w8710799fr5sxrdbszi")))) (build-system gnu-build-system) (home-page "http://software.schmorp.de/pkg/gvpe.html") - (native-inputs `(("pkg-config" ,pkg-config))) - (inputs `(("openssl" ,openssl) - ("zlib" ,zlib))) + (native-inputs (list pkg-config)) + (inputs (list openssl zlib)) (synopsis "Secure VPN among multiple nodes over an untrusted network") (description "The GNU Virtual Private Ethernet creates a virtual network @@ -303,14 +296,14 @@ endpoints.") (define-public strongswan (package (name "strongswan") - (version "5.9.3") + (version "5.9.4") (source (origin (method url-fetch) (uri (string-append "https://download.strongswan.org/strongswan-" version ".tar.bz2")) (sha256 - (base32 "1xy6c9c7bq5a5jmm04r9f9iqn39yrr1dkq81jhvpxsd4l1ban9ck")))) + (base32 "063mi0kdlpd7r7s3py35yf80hvrv3nrdfvxpyn7ns25gqajg3za5")))) (build-system gnu-build-system) (arguments `(#:phases @@ -323,18 +316,16 @@ endpoints.") "/bin/" command))) (substitute* "src/libstrongswan/utils/process.c" (("/bin/sh") - (string-append (assoc-ref inputs "bash") "/bin/sh"))) + (search-input-file inputs "/bin/sh"))) (substitute* "src/libstrongswan/tests/suites/test_process.c" (("/bin/sh") (which "sh")) (("/bin/echo") (which "echo")) - (("cat") (which "cat"))) - #t)) + (("cat") (which "cat"))))) (add-before 'check 'set-up-test-environment (lambda* (#:key inputs #:allow-other-keys) - (setenv "TZDIR" (string-append (assoc-ref inputs "tzdata") - "/share/zoneinfo")) - #t))) + (setenv "TZDIR" + (search-input-directory inputs "share/zoneinfo"))))) #:configure-flags (list "--disable-ldap" @@ -386,18 +377,16 @@ endpoints.") ;; Use libcap by default. "--with-capabilities=libcap"))) (inputs - `(("coreutils" ,coreutils) - ("curl" ,curl) - ("gmp" ,gmp) - ("libcap" ,libcap) - ("libgcrypt" ,libgcrypt) - ("libsoup" ,libsoup) - ("linux-pam" ,linux-pam) - ("openssl" ,openssl))) + (list coreutils + curl + gmp + libcap + libgcrypt + libsoup + linux-pam + openssl)) (native-inputs - `(("coreutils" ,coreutils) - ("pkg-config" ,pkg-config) - ("tzdata" ,tzdata-for-tests))) + (list coreutils pkg-config tzdata-for-tests)) (synopsis "IKEv1/v2 keying daemon") (description "StrongSwan is an IPsec implementation originally based upon the FreeS/WAN project. It contains support for IKEv1, IKEv2, MOBIKE, IPv6, @@ -418,7 +407,7 @@ NAT-T and more.") ;; src/libstrongswan/plugins/pkcs11/pkcs11.h (license:non-copyleft "file://src/libstrongswan/plugins/pkcs11/pkcs11.h" - "pkcs11 contains a unknown permissive license. View the specific + "pkcs11 contains an unknown permissive license. View the specific file for more details.") ;; These files are not included in the ;; build, they are disabled through @@ -443,9 +432,7 @@ file for more details.") (sha256 (base32 "1128860lis89g1s21hqxvap2nq426c9j4bvgghncc1zj0ays7kj6")))) (build-system gnu-build-system) - (inputs `(("libgcrypt" ,libgcrypt) - ("perl" ,perl) - ("vpnc-scripts" ,vpnc-scripts))) + (inputs (list libgcrypt perl vpnc-scripts)) (arguments `(#:tests? #f ; there is no check target #:phases @@ -490,13 +477,13 @@ Only \"Universal TUN/TAP device driver support\" is needed in the kernel.") (base32 "1pmi4n58q81pmn9arvfixhvv6vkkf3rpwac3hwnwyl882q5q0ccx")))) (build-system gnu-build-system) - (inputs `(("guile" ,guile-3.0) ; for the wrapper scripts - ("coreutils" ,coreutils) - ("grep" ,grep) - ("iproute2" ,iproute) ; for ‘ip’ - ("net-tools" ,net-tools) ; for ‘ifconfig’, ‘route’ - ("sed" ,sed) - ("which" ,which))) + (inputs (list guile-3.0 ; for the wrapper scripts + coreutils + grep + iproute ; for ‘ip’ + net-tools ; for ‘ifconfig’, ‘route’ + sed + which)) (arguments `(#:phases (modify-phases %standard-phases @@ -531,10 +518,12 @@ Only \"Universal TUN/TAP device driver support\" is needed in the kernel.") ;; Wrap scripts with paths to their common hard dependencies. ;; Optional dependencies will need to be installed by the user. (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) + (let ((out (assoc-ref outputs "out")) + (guile (search-input-file inputs "bin/guile"))) (for-each (lambda (script) (wrap-script (string-append out "/etc/vpnc/" script) + #:guile guile `("PATH" ":" prefix ,(map (lambda (name) (let ((input (assoc-ref inputs name))) @@ -581,10 +570,9 @@ the entire VPN in a network namespace accessible only through SSH.") "03323nnhb4y9nzwva04mq7xg03dvdrgp689g89f69jqc261skcqx")))) (build-system gnu-build-system) (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake))) + (list autoconf automake)) (inputs - `(("libevent" ,libevent))) + (list libevent)) (home-page "https://github.com/cernekee/ocproxy") (synopsis "OpenConnect proxy") (description @@ -606,12 +594,9 @@ the user specifically asks to proxy, so the @dfn{VPN} interface no longer (base32 "1cdsx4nsrwawbsisfkldfc9i4qn60g03vxb13nzppr2br9p4rrih")))) (build-system gnu-build-system) (propagated-inputs - `(("libxml2" ,libxml2) - ("gnutls" ,gnutls) - ("zlib" ,zlib))) + (list libxml2 gnutls zlib)) (inputs - `(("lz4" ,lz4) - ("vpnc-scripts" ,vpnc-scripts))) + (list lz4 vpnc-scripts)) (native-inputs `(("gettext" ,gettext-minimal) ("pkg-config" ,pkg-config))) @@ -663,26 +648,26 @@ and probably others.") (assoc-ref inputs "qtwebengine") "/lib/qt5/libexec/QtWebEngineProcess"))) (wrap-program bin + #:sh (search-input-file inputs "bin/bash") `("QTWEBENGINEPROCESS_PATH" = (,qt-process-path))) #t)))))) (inputs - `(("openconnect" ,openconnect) - ("python-attrs" ,python-attrs) - ("python-colorama" ,python-colorama) - ("python-keyring" ,python-keyring) - ("python-lxml" ,python-lxml) - ("python-prompt-toolkit" ,python-prompt-toolkit) - ("python-requests" ,python-requests) - ("python-pyqt" ,python-pyqt) - ("python-pyqtwebengine" ,python-pyqtwebengine) - ("python-pysocks" ,python-pysocks) - ("python-pyxdg" ,python-pyxdg) - ("python-structlog" ,python-structlog) - ("python-toml" ,python-toml) - ("qtwebengine" ,qtwebengine))) + (list openconnect + python-attrs + python-colorama + python-keyring + python-lxml + python-prompt-toolkit + python-requests + python-pyqt + python-pyqtwebengine + python-pysocks + python-pyxdg + python-structlog + python-toml + qtwebengine)) (native-inputs - `(("python-pytest" ,python-pytest) - ("python-setuptools-scm" ,python-setuptools-scm))) + (list python-pytest python-setuptools-scm)) (home-page "https://github.com/vlaci/openconnect-sso") (synopsis "OpenConnect wrapper script supporting Azure AD (SAMLv2)") (description @@ -705,12 +690,9 @@ and probably others.") "1qsfgpxg553s8rc9cyrc4k96z0pislxsdxb9wyhp8fdprkak2mw2")))) (build-system gnu-build-system) (native-inputs - `(("autoconf" ,autoconf) - ("autotools" ,automake) - ("pkg-config" ,pkg-config))) + (list autoconf automake pkg-config)) (inputs - `(("openssl" ,openssl) - ("ppp" ,ppp))) + (list openssl ppp)) (home-page "https://github.com/adrienverge/openfortivpn") (synopsis "Client for PPP+SSL VPN tunnel services") (description "Openfortivpn is a client for PPP+SSL VPN tunnel services. It @@ -721,7 +703,7 @@ this process. It is compatible with Fortinet VPNs.") (define-public openvpn (package (name "openvpn") - (version "2.5.3") + (version "2.5.5") (source (origin (method url-fetch) (uri (string-append @@ -729,17 +711,14 @@ this process. It is compatible with Fortinet VPNs.") version ".tar.xz")) (sha256 (base32 - "0zlski66mw10klmwvg445z051mld7xjng4iyl4f9b883qr1rjspv")))) + "0fq0nvgpbyvdxc8vwka51whgm3kkvjb3c9xarpv3h211l2gxd6qi")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--enable-iproute2=yes"))) (native-inputs - `(("iproute2" ,iproute))) + (list iproute)) (inputs - `(("lz4" ,lz4) - ("lzo" ,lzo) - ("openssl" ,openssl) - ("linux-pam" ,linux-pam))) + (list lz4 lzo openssl linux-pam)) (home-page "https://openvpn.net/") (synopsis "Virtual private network daemon") (description @@ -776,6 +755,7 @@ traversing network address translators (@dfn{NAT}s) and firewalls.") (let ((entrypoint (string-append (assoc-ref outputs "out") "/bin/.protonvpn-real"))) (wrap-program entrypoint + #:sh (search-input-file inputs "bin/bash") `("PATH" ":" prefix ,(map (lambda (name) (let ((input (assoc-ref inputs name))) @@ -790,18 +770,18 @@ traversing network address translators (@dfn{NAT}s) and firewalls.") "which"))))) #t))))) (native-inputs - `(("python-docopt" ,python-docopt))) + (list python-docopt)) (inputs - `(("dialog" ,dialog) - ("iproute2" ,iproute) - ("iptables" ,iptables) - ("ncurses" ,ncurses) - ("openvpn" ,openvpn) - ("procps" ,procps) - ("python-jinja2" ,python-jinja2) - ("python-pythondialog" ,python-pythondialog) - ("python-requests" ,python-requests) - ("which" ,which))) + (list dialog + iproute + iptables + ncurses + openvpn + procps + python-jinja2 + python-pythondialog + python-requests + which)) (synopsis "Command-line client for ProtonVPN") (description "This is the official command-line interface for ProtonVPN, a secure @@ -827,9 +807,7 @@ VPN. The gratis tier offers unlimited bandwidth for up to 10 devices.") '(#:configure-flags '("--sysconfdir=/etc" "--localstatedir=/var"))) - (inputs `(("zlib" ,zlib) - ("lzo" ,lzo) - ("openssl" ,openssl))) + (inputs (list zlib lzo openssl)) (home-page "https://tinc-vpn.org") (synopsis "Virtual Private Network (VPN) daemon") (description @@ -860,12 +838,12 @@ private network between hosts on the internet.") (("/bin/sh") "sh")) #t))))) (native-inputs - `(("python-setuptools-scm" ,python-setuptools-scm) - ;; For tests only. - ("python-flake8" ,python-flake8) - ("python-mock" ,python-mock) - ("python-pytest-cov" ,python-pytest-cov) - ("python-pytest-runner" ,python-pytest-runner))) + (list python-setuptools-scm + ;; For tests only. + python-flake8 + python-mock + python-pytest-cov + python-pytest-runner)) (home-page "https://github.com/sshuttle/sshuttle") (synopsis "VPN that transparently forwards connections over SSH") (description "sshuttle creates an encrypted virtual private network (VPN) @@ -899,14 +877,10 @@ DNS domain name queries.") (("/bin/sh") (which "sh"))) #t))))) (inputs - `(("python-argcomplete" ,python-argcomplete) - ("python-prettytable" ,python-prettytable) - ("python-pyyaml" ,python-pyyaml))) + (list python-argcomplete python-prettytable python-pyyaml)) ;; For tests only. (native-inputs - `(("python-fixtures" ,python-fixtures) - ("python-pbr" ,python-pbr) - ("python-testtools" ,python-testtools))) + (list python-fixtures python-pbr python-testtools)) (home-page "https://github.com/albertodonato/sshoot") (synopsis "sshuttle VPN session manager") (description "sshoot provides a command-line interface to manage multiple @@ -931,11 +905,9 @@ with configuration options for most of @command{sshuttle}’s features.") (arguments '(#:tests? #f)) ; no tests (inputs - `(("nspr" ,nspr) - ("nss" ,nss) - ("openssl" ,openssl))) + (list nspr nss openssl)) (native-inputs - `(("pkg-config" ,pkg-config))) + (list pkg-config)) (home-page "https://github.com/ambrop72/badvpn") (synopsis "Peer-to-peer virtual private network (VPN)") (description "@code{BadVPN} is a collection of virtual private @@ -1016,7 +988,7 @@ WireGuard was added to Linux 5.6.") (define-public wireguard-tools (package (name "wireguard-tools") - (version "1.0.20210424") + (version "1.0.20210914") (source (origin (method git-fetch) @@ -1025,7 +997,7 @@ WireGuard was added to Linux 5.6.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "12v0ykaz7phv1gqin35wf6ndgb9819vai17ynjxssq00xwcbsq43")))) + (base32 "1nafrb2naif0z7z3vijnlyp81z89ywzlagc64k4sqa3ayzn95sm0")))) (build-system gnu-build-system) (arguments `(#:make-flags @@ -1043,27 +1015,28 @@ WireGuard was added to Linux 5.6.") #:tests? #f #:phases (modify-phases %standard-phases - ;; No configure script - (delete 'configure) + (delete 'configure) ; no configure script (add-after 'install 'install-contrib-docs (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (copy-recursively "contrib/" - (string-append out "/share/doc/wireguard-tools")) - #t))) + (let* ((out (assoc-ref outputs "out")) + (doc (string-append out "/share/doc/wireguard-tools"))) + (copy-recursively "contrib/" doc)))) (add-after 'install 'wrap-wg-quick (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (inputs-sbin (map (lambda (input) - (string-append (assoc-ref inputs input) "/sbin")) - (list "resolvconf" "iproute" "procps" - "iptables"))) - (coreutils (string-append (assoc-ref inputs "coreutils") - "/bin"))) + (string-append (assoc-ref inputs input) + "/sbin")) + (list "iproute" + "iptables" + "procps" + "resolvconf"))) + (coreutils (string-append (assoc-ref inputs "coreutils") + "/bin"))) (wrap-program (string-append out "/bin/wg-quick") + #:sh (search-input-file inputs "bin/bash") `("PATH" ":" prefix ,(append inputs-sbin - (list coreutils)))) - #t)))))) + (list coreutils)))))))))) (inputs `(("resolvconf" ,openresolv) ("coreutils" ,coreutils) @@ -1085,9 +1058,6 @@ public keys and can roam across IP addresses.") (list license:lgpl2.1+ ; src/netlink.h & contrib/embeddable-wg-library license:gpl2)))) ; everything else -(define-public wireguard - (deprecated-package "wireguard" wireguard-tools)) - (define-public xl2tpd (package (name "xl2tpd") @@ -1111,15 +1081,12 @@ public keys and can roam across IP addresses.") (lambda* (#:key inputs #:allow-other-keys) (substitute* "l2tp.h" (("/usr/sbin/pppd") - (string-append (assoc-ref inputs "ppp") - "/sbin/pppd"))) + (search-input-file inputs "/sbin/pppd"))) (setenv "KERNELSRC" - (assoc-ref inputs "linux-libre-headers")) + (assoc-ref inputs "kernel-headers")) #t))) #:tests? #f)) ; no tests provided - (inputs `(("libpcap" ,libpcap) - ("linux-libre-headers" ,linux-libre-headers) - ("ppp" ,ppp))) + (inputs (list libpcap ppp)) (home-page "https://www.xelerance.com/software/xl2tpd/") (synopsis "Layer 2 Tunnelling Protocol Daemon (RFC 2661)") (description |