;;; Copyright © 2013, 2016, 2018, 2019, 2020 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 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017, 2019, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
-;;; Copyright © 2018 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2018, 2020 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2018 Meiyo Peng <meiyo.peng@gmail.com>
;;; Copyright © 2019, 2020 Leo Famulari <leo@famulari.name>
;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
;;; Copyright © 2020 Ivan Kozlov <kanichos@yandex.ru>
+;;; Copyright © 2020 David Dashyan <mail@davie.li>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (guix build-system gnu)
#:use-module (guix build-system linux-module)
#:use-module (guix build-system python)
+ #:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages admin)
#:use-module (gnu packages base)
#:use-module (gnu packages dns)
#:use-module (gnu packages autotools)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages freedesktop)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages guile)
#:use-module (gnu packages libevent)
#:use-module (gnu packages linux)
+ #:use-module (gnu packages ncurses)
#:use-module (gnu packages nss)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-build)
+ #:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages python-web)
+ #:use-module (gnu packages qt)
#:use-module (gnu packages samba)
#:use-module (gnu packages tls)
#:use-module (gnu packages xml))
(home-page "https://www.unix-ag.uni-kl.de/~massar/vpnc/")))
(define-public vpnc-scripts
- (let ((commit "1000e0f6dd7d6bff163169a46359211c1fc3a6d2"))
+ (let ((commit "3885f8bbc4ae03fd6da0ada6de12f7223a59595c"))
(package
(name "vpnc-scripts")
- (version (string-append "20190116." (string-take commit 7)))
+ (version (string-append "20200925." (string-take commit 7)))
(source (origin
(method git-fetch)
(uri
(file-name (git-file-name name version))
(sha256
(base32
- "1g41yarz2bl0f73kbjqnywr485ghanbp7nmspklfb0n07yp0z6ak"))))
+ "1pmi4n58q81pmn9arvfixhvv6vkkf3rpwac3hwnwyl882q5q0ccx"))))
(build-system gnu-build-system)
(inputs `(("guile" ,guile-3.0) ; for the wrapper scripts
("coreutils" ,coreutils)
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/cernekee/ocproxy.git")
+ (url "https://github.com/cernekee/ocproxy")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(build-system gnu-build-system)
(propagated-inputs
`(("libxml2" ,libxml2)
- ;; XXX ‘DTLS is insecure in GnuTLS v3.6.3 through v3.6.12.’
- ;; See <https://gitlab.com/gnutls/gnutls/-/issues/960>.
- ("gnutls" ,gnutls-3.6.14)
+ ("gnutls" ,gnutls)
("zlib" ,zlib)))
(inputs
`(("lz4" ,lz4)
(license license:lgpl2.1)
(home-page "https://www.infradead.org/openconnect/")))
+(define-public openconnect-sso
+ (package
+ (name "openconnect-sso")
+ (version "0.7.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "openconnect-sso" version))
+ (sha256
+ (base32
+ "0nb40zfpp38mz6389y0qvrr4mmak53swpg7578cldnhnk0g15qni"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f ; Tests not included, building from git requires poetry.
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-openconnect
+ (lambda _
+ (substitute* "openconnect_sso/app.py"
+ (("\"openconnect\"")
+ (string-append "\"" (which "openconnect") "\"")))
+ #t))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "pytest" "-v"))
+ #t))
+ (add-after 'install 'wrap-qt-process-path
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin/openconnect-sso"))
+ (qt-process-path (string-append
+ (assoc-ref inputs "qtwebengine")
+ "/lib/qt5/libexec/QtWebEngineProcess")))
+ (wrap-program bin
+ `("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)))
+ (native-inputs
+ `(("python-pytest" ,python-pytest)
+ ("python-setuptools-scm" ,python-setuptools-scm)))
+ (home-page "https://github.com/vlaci/openconnect-sso")
+ (synopsis "OpenConnect wrapper script supporting Azure AD (SAMLv2)")
+ (description
+ "This package provides a wrapper script for OpenConnect supporting Azure AD
+(SAMLv2) authentication to Cisco SSL-VPNs.")
+ (license license:gpl3)))
+
+(define-public openfortivpn
+ (package
+ (name "openfortivpn")
+ (version "1.15.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/adrienverge/openfortivpn")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1qsfgpxg553s8rc9cyrc4k96z0pislxsdxb9wyhp8fdprkak2mw2"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("autotools" ,automake)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("openssl" ,openssl)
+ ("ppp" ,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
+spawns a pppd process and operates the communication between the gateway and
+this process. It is compatible with Fortinet VPNs.")
+ (license license:gpl3+)))
+
(define-public openvpn
(package
(name "openvpn")
- (version "2.4.9")
+ (version "2.5.1")
(source (origin
(method url-fetch)
(uri (string-append
version ".tar.xz"))
(sha256
(base32
- "1qpbllwlha7cffsd5dlddb8rl22g9rar5zflkz1wrcllhvfkl7v4"))))
+ "157ikzap2bbkzx34hkh33bpk2i14xjx1x3pkadhmzh1pr24h94s0"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--enable-iproute2=yes")))
(define-public protonvpn-cli
(package
(name "protonvpn-cli")
- (version "2.2.2")
+ (version "2.2.6")
(source
(origin
;; PyPI has a ".whl" file but not a proper source release.
;; Thus, fetch code from Git.
(method git-fetch)
(uri (git-reference
- (url "https://github.com/ProtonVPN/linux-cli.git")
+ (url "https://github.com/ProtonVPN/linux-cli")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32
- "0ixjb02kj4z79whm1izd8mrn2h0rp9cmw4im1qvp93rahqxdd4n8"))))
+ (base32 "0y7v9ikrmy5dbjlpbpacp08gy838i8z54m8m4ps7ldk1j6kyia3n"))))
(build-system python-build-system)
- (arguments '(#:tests? #f)) ; no tests in repo
+ (arguments
+ '(#:tests? #f ; no tests in repo
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'wrap 'wrap-wrapper
+ ;; 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")))
+ (wrap-program entrypoint
+ `("PATH" ":" prefix
+ ,(map (lambda (name)
+ (let ((input (assoc-ref inputs name)))
+ (string-append input "/bin:"
+ input "/sbin")))
+ (list "dialog"
+ "iproute2"
+ "iptables"
+ "ncurses"
+ "openvpn"
+ "procps"
+ "which")))))
+ #t)))))
(native-inputs
- `(("docopt" ,python-docopt)))
+ `(("python-docopt" ,python-docopt)))
(inputs
- `(("pythondialog" ,python-pythondialog)
- ("requests" ,python-requests)))
- (propagated-inputs
- `(("openvpn" ,openvpn)))
+ `(("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)))
(synopsis "Command-line client for ProtonVPN")
(description
"This is the official command-line interface for ProtonVPN, a secure
(native-inputs
`(("python-setuptools-scm" ,python-setuptools-scm)
;; For tests only.
- ("python-flake8", python-flake8)
+ ("python-flake8" ,python-flake8)
("python-mock" ,python-mock)
("python-pytest-cov" ,python-pytest-cov)
("python-pytest-runner" ,python-pytest-runner)))
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/ambrop72/badvpn.git")
+ (url "https://github.com/ambrop72/badvpn")
(commit version)))
(file-name (git-file-name name version))
(sha256
(define-public wireguard-linux-compat
(package
(name "wireguard-linux-compat")
- (version "1.0.20200520")
+ (version "1.0.20201221")
(source (origin
(method url-fetch)
(uri (string-append "https://git.zx2c4.com/wireguard-linux-compat/"
".tar.xz"))
(sha256
(base32
- "1hvpbfpdd3v2k27ypa1y1j422irx7hxpz87f50s28jvkxx5sxrqn"))))
+ "0ci13in0fqq32n5qamch4qhjgbdq86ygrgmfhc9szsh2nsl8jlkf"))))
(build-system linux-module-build-system)
(outputs '("out"
"kernel-patch"))
(arguments
- `(#:tests? #f ; No test suite
+ `(#:linux ,linux-libre-5.4 ; mustn't have WG built-in
+ #:tests? #f ; no test suite
#:modules ((guix build linux-module-build-system)
(guix build utils)
(ice-9 popen)
(call-with-output-file "wireguard.patch"
(lambda (port)
(format port "~a" str))))
- #t))
+ #t))
(add-after 'install 'install-patch
(lambda* (#:key outputs #:allow-other-keys)
(install-file "wireguard.patch"
(define-public wireguard-tools
(package
(name "wireguard-tools")
- (version "1.0.20200513")
+ (version "1.0.20210315")
(source
(origin
(method git-fetch)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1yk8hng0qw2rf76hnawjbdpjssmah88bd5fk20h1c0j1yazlx0a9"))))
+ (base32 "1an5gm2dv111n3fylbrnyynxmi2d3iwf2b46zq08hc54kzazxcml"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
- (list "CC=gcc"
+ (list ,(string-append "CC=" (cc-for-target))
"--directory=src"
"WITH_BASHCOMPLETION=yes"
;; Install the ‘simple and dirty’ helper script wg-quick(8).
(define-public xl2tpd
(package
(name "xl2tpd")
- (version "1.3.15")
+ (version "1.3.16")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "0ppwza8nwm1av1vldw40gin9wrjrs4l9si50jad414js3k8ycaag"))))
+ "0is5ccrvijz0pfm45pfrlbb9y8231yz3c4zqs8mkgakl9rxajy6l"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags (list (string-append "PREFIX=" %output)
(delete 'configure) ;no configure script
(add-before 'build 'setup-environment
(lambda* (#:key inputs #:allow-other-keys)
- (setenv "CFLAGS"
- (string-append "-DPPD=\""
- (assoc-ref inputs "ppp")
- "/sbin/pppd\""))
+ (substitute* "l2tp.h"
+ (("/usr/sbin/pppd")
+ (string-append (assoc-ref inputs "ppp")
+ "/sbin/pppd")))
(setenv "KERNELSRC"
(assoc-ref inputs "linux-libre-headers"))
#t)))