;;; 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>
+;;; Copyright © 2016, 2017, 2019, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2018, 2020 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2020 Ivan Kozlov <kanichos@yandex.ru>
;;; Copyright © 2020 David Dashyan <mail@davie.li>
;;; Copyright © 2021 Domagoj Stolfa <ds815@gmx.com>
+;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
+;;; Copyright © 2021 jgart <jgart@dismail.de>
+;;; Copyright © 2022 Josselin Poiret <josselin.poiret@protonmail.ch>
+;;; Copyright © 2022 Lu hui <luhux76@gmail.com>
+;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2022 Jean-Pierre De Jesus DIAZ <me@jeandudey.tech>
+;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system go)
#:use-module (guix build-system linux-module)
#:use-module (guix build-system python)
+ #:use-module (guix build-system qt)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages admin)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gnome)
+ #:use-module (gnu packages gl)
#:use-module (gnu packages gnupg)
+ #:use-module (gnu packages golang)
#:use-module (gnu packages guile)
#:use-module (gnu packages libevent)
#:use-module (gnu packages linux)
#:use-module (gnu packages nss)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages polkit)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages tls)
#:use-module (gnu packages xml))
+(define-public bitmask
+ (package
+ (name "bitmask")
+ (version "0.21.11")
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://0xacab.org/leap/bitmask-vpn")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1zphigfrks1j3snbc748b3mk0qb1r7n2v7p7l6w1xiiil4dql6cs"))
+ (modules
+ '((guix build utils)))
+ (snippet
+ `(begin
+ (delete-file-recursively "branding/thirdparty")
+ (call-with-output-file "pkg/config/version/version.go"
+ (lambda (port)
+ (format port "package version\n")
+ (format port "\n")
+ (format port (string-append "var VERSION = \"" ,version "\""))))
+ #t))))
+ (build-system go-build-system)
+ (arguments
+ `(#:imported-modules
+ ((guix build cmake-build-system)
+ (guix build copy-build-system)
+ (guix build python-build-system)
+ (guix build qt-build-system)
+ (guix build qt-utils)
+ ,@%go-build-system-modules)
+ #:modules
+ (((guix build copy-build-system)
+ #:prefix copy:)
+ ((guix build python-build-system)
+ #:prefix python:)
+ ((guix build qt-build-system)
+ #:prefix qt:)
+ (guix build utils)
+ (guix build go-build-system))
+ #:unpack-path "0xacab.org/leap/bitmask-vpn"
+ #:import-path "0xacab.org/leap/bitmask-vpn/cmd/bitmask-helper"
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'setup-go-environment 'insert-missing-sources
+ ;; For some reason this package is left out.
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let* ((name "go-0xacab-org-leap-shapeshifter")
+ (shapeshifter (assoc-ref inputs name))
+ (shapeshifter-src (string-append shapeshifter "/src")))
+ (copy-recursively shapeshifter-src "src"))))
+ (add-after 'unpack 'patch
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (with-directory-excursion "src/0xacab.org/leap/bitmask-vpn"
+ ;; Use 'emersion/go-autostart',
+ ;; instead of 'ProtonMail/go-autostart',
+ ;; as the latter no longer exists.
+ (substitute* (find-files "." "\\.go$")
+ (("github.com/ProtonMail/go-autostart")
+ "github.com/emersion/go-autostart"))
+ ;; Use correct paths for referenced items.
+ (let* ((out (assoc-ref outputs "out"))
+ (policy-dir (string-append out "/share/polkit-1/actions"))
+ (policy-file "se.leap.bitmask.policy")
+ (policy-path (string-append policy-dir "/" policy-file))
+ (ip (string-append (assoc-ref inputs "iproute")
+ "/sbin/ip"))
+ (iptables (string-append (assoc-ref inputs "iptables")
+ "/sbin/iptables"))
+ (ip6tables (string-append (assoc-ref inputs "iptables")
+ "/sbin/ip6tables"))
+ (sysctl (string-append (assoc-ref inputs "procps")
+ "/sbin/sysctl"))
+ (pkttyagent (string-append (assoc-ref inputs "polkit")
+ "/bin/pkttyagent"))
+ (openvpn (string-append (assoc-ref inputs "openvpn")
+ "/sbin/openvpn"))
+ (bitmask-root (string-append (assoc-ref outputs "out")
+ "/sbin/bitmask-root")))
+ (substitute* (find-files "." "(\\.go$|\\.policy$|bitmask-root)")
+ (("swhich\\(\"ip\"\\)")
+ (string-append "\"" ip "\""))
+ (("swhich\\(\"iptables\"\\)")
+ (string-append "\"" iptables "\""))
+ (("swhich\\(\"ip6tables\"\\)")
+ (string-append "\"" ip6tables "\""))
+ (("swhich\\(\"sysctl\"\\)")
+ (string-append "\"" sysctl "\""))
+ (("/usr/(bin|lib|libexec)/.*(kit|agent|agent-1)") pkttyagent)
+ (("/usr/sbin/openvpn") openvpn)
+ (("/usr/sbin/bitmask-root") bitmask-root)
+ (("/usr/local/sbin/bitmask-root") bitmask-root)
+ (("/usr/share.*\\.policy") policy-path)))
+ (substitute* (find-files "." "\\.pro$")
+ ;; Use correct path for goshim files,
+ ;; which are generated in 'build-continued phase.
+ (("-L.*/lib") "-L./lib")
+ ;; FIXME: Unable to build i18n files.
+ (("TRANSLATIONS.*i18n.*$") "")
+ (("RESOURCES.*i18n.*$") "")))))
+ (add-after 'build 'build-continued
+ (lambda _
+ ;; Generate goshim library and header files.
+ (let* ((dir "src/0xacab.org/leap/bitmask-vpn")
+ (source (string-append dir "/gui/backend.go"))
+ (target (string-append dir "/lib/libgoshim.a")))
+ (mkdir-p (string-append dir "/lib"))
+ (invoke "go" "build" "-buildmode=c-archive" "-o" target source))
+ ;; Build bitmask application.
+ (with-directory-excursion "src/0xacab.org/leap/bitmask-vpn"
+ (delete-file "Makefile")
+ (invoke "qmake" "bitmask.pro")
+ (invoke "make"))))
+ (add-after 'check 'check-continued
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ ;; Run bitmask test-suite.
+ (with-directory-excursion "src/0xacab.org/leap/bitmask-vpn"
+ (delete-file "Makefile")
+ (invoke "qmake" "test.pro")
+ ;; Tests require display-server.
+ (setenv "QT_QPA_PLATFORM" "offscreen")
+ ;; Tests look for $XDG_RUNTIME_DIR.
+ (setenv "XDG_RUNTIME_DIR" (getenv "TEMP"))
+ ;; Tests write to $HOME.
+ (setenv "HOME" (getenv "TEMP"))
+ (invoke "make" "check")))))
+ (add-after 'install 'install-continued
+ (lambda args
+ (apply (assoc-ref copy:%standard-phases 'install)
+ #:install-plan
+ ;; Install bitmask program.
+ '(("src/0xacab.org/leap/bitmask-vpn/release"
+ "bin"
+ #:include ("bitmask"))
+ ;; Install bitmask-root script.
+ ("src/0xacab.org/leap/bitmask-vpn/helpers"
+ "sbin"
+ #:include ("bitmask-root"))
+ ;; Install polkit-policy.
+ ("src/0xacab.org/leap/bitmask-vpn/helpers"
+ "share/polkit-1/actions"
+ #:include ("se.leap.bitmask.policy")))
+ args)))
+ (add-after 'install-continued 'post-install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bitmask (string-append out "/bin/bitmask"))
+ (bitmask-root (string-append out "/sbin/bitmask-root")))
+ ;; Make bitmask-root script executable.
+ (chmod bitmask-root #o777))))
+ (add-after 'post-install 'python-wrap
+ (assoc-ref python:%standard-phases 'wrap))
+ (add-after 'python-wrap 'qt-wrap
+ (assoc-ref qt:%standard-phases 'qt-wrap)))))
+ (native-inputs
+ (list pkg-config))
+ (inputs
+ `(("iproute" ,iproute)
+ ("iptables" ,iptables)
+ ("mesa" ,mesa)
+ ("openvpn" ,openvpn)
+ ("polkit" ,polkit)
+ ("procps" ,procps)
+ ("python" ,python)
+ ("qtbase" ,qtbase-5)
+ ("qtdeclarative-5" ,qtdeclarative-5)
+ ("qtgraphicaleffects" ,qtgraphicaleffects)
+ ("qtquickcontrols-5" ,qtquickcontrols-5)
+ ("qtquickcontrols2" ,qtquickcontrols2)
+ ("qtsvg-5" ,qtsvg-5)))
+ (propagated-inputs
+ (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
+@acronym{VPN, Virtual Private Network}. It allows you to select from a variety
+of trusted service provider all from one app. Current providers include Riseup
+Networks and The Calyx Institute, where the former is default.")
+ (home-page "https://bitmask.net/")
+ (license license:gpl3+)))
+
(define-public gvpe
(package
(name "gvpe")
"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
endpoints.")
(license license:gpl3+)))
+(define-public n2n
+ (package
+ (name "n2n")
+ (version "2.8")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ntop/n2n")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1ph2npvnqh1xnmkp96pdzpxm033jkb8zznd3nc59l9arhn0pq4nv"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:make-flags
+ #~(list (string-append "PREFIX=" #$output)
+ (string-append "CC=" #$(cc-for-target)))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'bootstrap 'move-configure
+ ;; Don't execute configure script in bootstrap.
+ (lambda _
+ (substitute* "autogen.sh"
+ (("./configure") ""))))
+ (add-before 'configure 'fix-configure
+ (lambda* (#:key inputs native-inputs #:allow-other-keys)
+ (substitute* "configure"
+ (("/bin/sh")
+ (search-input-file (or native-inputs inputs) "/bin/sh"))))))
+ #:tests? #f)) ;there is no check target
+ (native-inputs
+ (list autoconf automake bash-minimal pkg-config))
+ (home-page "https://github.com/ntop/n2n")
+ (synopsis "Peer-to-peer VPN client and server")
+ (description
+ "n2n is a light VPN software which makes it easy to create virtual
+networks bypassing intermediate firewalls.")
+ (license license:gpl3+)))
+
(define-public strongswan
(package
(name "strongswan")
- (version "5.9.2")
+ (version "5.9.4")
(source
(origin
(method url-fetch)
(uri (string-append "https://download.strongswan.org/strongswan-"
version ".tar.bz2"))
(sha256
- (base32 "0qxhbash2nyh5k2h9zcysgwv61512w1wxk5plyai4b6v3rs2ziv1"))))
+ (base32 "063mi0kdlpd7r7s3py35yf80hvrv3nrdfvxpyn7ns25gqajg3za5"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'build 'patch-command-file-names
(lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/ipsec/_ipsec.in"
+ (("cat|kill|sleep|rm|uname" command)
+ (string-append (assoc-ref inputs "coreutils")
+ "/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"
;; Use libcap by default.
"--with-capabilities=libcap")))
(inputs
- `(("curl" ,curl)
- ("gmp" ,gmp)
- ("libcap" ,libcap)
- ("libgcrypt" ,libgcrypt)
- ("libsoup" ,libsoup)
- ("linux-pam" ,linux-pam)
- ("openssl" ,openssl)))
+ (list coreutils
+ curl
+ gmp
+ libcap
+ libgcrypt
+ libsoup-minimal-2
+ 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,
;; 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
(sha256 (base32
"1128860lis89g1s21hqxvap2nq426c9j4bvgghncc1zj0ays7kj6"))))
(build-system gnu-build-system)
- (inputs `(("libgcrypt" ,libgcrypt)
- ("perl" ,perl)
- ("vpnc-scripts" ,vpnc-scripts)))
+ (native-inputs (append (list perl pkg-config vpnc-scripts)
+ (if (%current-target-system)
+ (list this-package)
+ '())))
+ (inputs (list libgcrypt vpnc-scripts))
(arguments
- `(#:tests? #f ; there is no check target
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'use-store-paths
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out"))
- (vpnc-scripts (assoc-ref inputs "vpnc-scripts")))
- (substitute* "config.c"
- (("/etc/vpnc/vpnc-script")
- (string-append vpnc-scripts "/etc/vpnc/vpnc-script")))
- (substitute* "Makefile"
- (("ETCDIR=.*")
- (string-append "ETCDIR=" out "/etc/vpnc\n"))
- (("PREFIX=.*")
- (string-append "PREFIX=" out "\n")))
- #t)))
- (delete 'configure)))) ; no configure script
+ (list #:tests? #f ;; There is no check target
+ #:make-flags
+ #~(list (string-append "CC=" #$(cc-for-target))
+ (string-append "ETCDIR=" #$output "/etc/vpnc")
+ (string-append "PREFIX=" #$output))
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure) ;; No configure script.
+ (add-after 'unpack 'use-store-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((vpnc-scripts (assoc-ref inputs "vpnc-scripts")))
+ (substitute* "config.c"
+ (("/etc/vpnc/vpnc-script")
+ (string-append vpnc-scripts
+ "/etc/vpnc/vpnc-script"))))))
+ (add-after 'unpack 'patch-Makefile
+ (lambda* (#:key target #:allow-other-keys)
+ (let* ((pkg-config #$(pkg-config-for-target))
+ (includedir (string-append pkg-config
+ " --variable=includedir"
+ " libgcrypt"))
+ (cflags (string-append pkg-config
+ " --cflags"
+ " libgcrypt"))
+ (libdir (string-append pkg-config
+ " --variable=libdir"
+ " libgcrypt"))
+ (libs (string-append pkg-config
+ " --libs"
+ " libgcrypt")))
+ (substitute* "Makefile"
+ (("\\$\\(shell libgcrypt-config --cflags\\)")
+ (string-append "-I$(shell " includedir ") "
+ "$(shell " cflags ")"))
+ (("\\$\\(shell libgcrypt-config --libs\\)")
+ (string-append
+ "-L$(shell " libdir ") "
+ "$(shell " libs ")")))
+ ;; When cross-compiling the manpage can't be generated as the
+ ;; Makefile needs to execute the resulting `vpnc' binary.
+ (when target
+ (substitute* "Makefile"
+ (("all : \\$\\(BINS\\) vpnc\\.8 vpnc-script")
+ "all : $(BINS) vpnc-script")
+ (("install -m644 vpnc\\.8.*") ""))))))
+ (add-after 'unpack 'install-manpage
+ (lambda* (#:key native-inputs inputs target
+ #:allow-other-keys)
+ ;; As the manpage is not generated. Instead install it from
+ ;; the input vpnc package.
+ (when target
+ (let* ((vpnc (assoc-ref native-inputs "vpnc"))
+ (man (string-append vpnc
+ "/share/man/man8/vpnc.8.gz"))
+ (output (string-append #$output "/share/man/man8")))
+ (install-file man output))))))))
(synopsis "Client for Cisco VPN concentrators")
(description
"vpnc is a VPN client compatible with Cisco's EasyVPN equipment.
shared-secret IPSec authentication with Xauth, AES (256, 192, 128), 3DES,
1DES, MD5, SHA1, DH1/2/5 and IP tunneling. It runs entirely in userspace.
Only \"Universal TUN/TAP device driver support\" is needed in the kernel.")
- (license license:gpl2+) ; some file are bsd-2, see COPYING
+ (license (list license:gpl2+ license:bsd-2))
(home-page "https://www.unix-ag.uni-kl.de/~massar/vpnc/")))
(define-public vpnc-scripts
(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
"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
(define-public openconnect
(package
(name "openconnect")
- (version "8.10")
+ (version "9.01")
(source (origin
(method url-fetch)
(uri (string-append "ftp://ftp.infradead.org/pub/openconnect/"
"openconnect-" version ".tar.gz"))
(sha256
- (base32 "1cdsx4nsrwawbsisfkldfc9i4qn60g03vxb13nzppr2br9p4rrih"))))
+ (base32 "1iz4j00031a5ircrx30lkiwf58yl9kc827m4ssck4yg963wgmmxk"))))
(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)))
`("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-without-qtwebkit
+ 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
(define-public openfortivpn
(package
(name "openfortivpn")
- (version "1.15.0")
+ (version "1.17.3")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "1qsfgpxg553s8rc9cyrc4k96z0pislxsdxb9wyhp8fdprkak2mw2"))))
+ "0an58f0qcyxdx3d5zb5m8vi45a0251b950b5lh16572n8z2g6s2l"))))
(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
(define-public openvpn
(package
(name "openvpn")
- (version "2.5.2")
+ (version "2.5.6")
(source (origin
(method url-fetch)
(uri (string-append
"https://swupdate.openvpn.org/community/releases/openvpn-"
- version ".tar.xz"))
+ version ".tar.gz"))
(sha256
(base32
- "1j0xkiya20hhvalfjg5l3v1226vyjs9j9aw2mzpnbwq1d61l69xi"))))
+ "0gdd88rcan9vfiwkzsqn6fxxdim7kb1bsxrcra59c5xksprpwfik"))))
(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
;; Wrap entrypoint with paths to its hard dependencies.
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((entrypoint (string-append (assoc-ref outputs "out")
- "/bin/.protonvpn-real")))
+ "/bin/protonvpn")))
(wrap-program entrypoint
#:sh (search-input-file inputs "bin/bash")
`("PATH" ":" prefix
"openvpn"
"procps"
"which")))))
- #t)))))
+ #t))
+ ;; The `protonvpn' script wants to write to `~user' to initialize its
+ ;; logger, so simply setting HOME=/tmp won't cut it. Remove
+ ;; sanity-check.
+ (delete 'sanity-check))))
(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
'(#: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
(("/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)
(define-public sshoot
(package
(name "sshoot")
- (version "1.2.6")
+ (version "1.5.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri name version))
(sha256
(base32
- "1ccgh0hjyxrwkgy3hnxz3hgbjbs0lmfs25d5l5jam0xbpcpj63h0"))))
+ "05i54nga4vy660yy9yf6dl376yj0jc51303yr295qk3k9w0k96yd"))))
(build-system python-build-system)
(arguments
'(#:phases
(add-after 'unpack 'patch-paths
(lambda _
(substitute* "sshoot/tests/test_manager.py"
- (("/bin/sh") (which "sh")))
- #t)))))
+ (("/bin/sh") (which "sh")))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "pytest" "-vv" "--pyargs" "sshoot")))))))
(inputs
- `(("python-argcomplete" ,python-argcomplete)
- ("python-prettytable" ,python-prettytable)
- ("python-pyyaml" ,python-pyyaml)))
+ (list python-argcomplete
+ python-prettytable
+ python-pyyaml
+ python-pyxdg
+ python-toolrack))
;; For tests only.
(native-inputs
- `(("python-fixtures" ,python-fixtures)
- ("python-pbr" ,python-pbr)
- ("python-testtools" ,python-testtools)))
+ (list python-pytest python-pytest-mock))
(home-page "https://github.com/albertodonato/sshoot")
(synopsis "sshuttle VPN session manager")
(description "sshoot provides a command-line interface to manage multiple
(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
(define-public wireguard-tools
(package
(name "wireguard-tools")
- (version "1.0.20210424")
+ (version "1.0.20210914")
(source
(origin
(method git-fetch)
(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
#: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)
(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")
- (version "1.3.16")
+ (version "1.3.17")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "0is5ccrvijz0pfm45pfrlbb9y8231yz3c4zqs8mkgakl9rxajy6l"))))
+ "06aiidwygywaa1jn8m2pw8l3vnsc2bjnacbjmlsdy1cqgr1f5cc9"))))
(build-system gnu-build-system)
(arguments
- `(#:make-flags (list (string-append "PREFIX=" %output)
- "CC=gcc")
- #:phases (modify-phases %standard-phases
- (delete 'configure) ;no configure script
- (add-before 'build 'setup-environment
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "l2tp.h"
- (("/usr/sbin/pppd")
- (string-append (assoc-ref inputs "ppp")
- "/sbin/pppd")))
- (setenv "KERNELSRC"
- (assoc-ref inputs "linux-libre-headers"))
- #t)))
+ (list
+ #:make-flags
+ #~(list (string-append "PREFIX=" #$output)
+ (string-append "CC=" #$(cc-for-target)))
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure) ;no configure script
+ (add-before 'build 'setup-environment
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "l2tp.h"
+ (("/usr/sbin/pppd")
+ (search-input-file inputs "/sbin/pppd")))
+ (setenv "KERNELSRC"
+ (assoc-ref inputs "kernel-headers")))))
#: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