[PATCH] gnu: Add protonvpn-cli.

DoneSubmitted by Ryan Prior.
Details
2 participants
  • Ludovic Courtès
  • Ryan Prior
Owner
unassigned
Severity
normal
R
R
Ryan Prior wrote on 21 May 2020 05:29
(address . guix-patches@gnu.org)
20200521032943.26115-1-rprior@protonmail.com
* gnu/packages/vpn.scm (protonvpn-cli): New variable.--- gnu/packages/vpn.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+)
Toggle diff (61 lines)diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scmindex da881493bf..b47cad2ae0 100644--- a/gnu/packages/vpn.scm+++ b/gnu/packages/vpn.scm@@ -12,6 +12,7 @@ ;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>+;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com> ;;; ;;; This file is part of GNU Guix. ;;;@@ -55,6 +56,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages python-xyz)+ #:use-module (gnu packages python-web) #:use-module (gnu packages tls) #:use-module (gnu packages xml)) @@ -311,6 +313,38 @@ security protocol that utilizes SSL/TLS for key exchange. It is capable of traversing network address translators (@dfn{NAT}s) and firewalls.") (license license:gpl2))) +(define-public protonvpn-cli+ (package+ (name "protonvpn-cli")+ (version "2.2.2")+ (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")+ (commit (string-append "v" version))))+ (file-name (git-file-name name version))+ (sha256+ (base32+ "0ixjb02kj4z79whm1izd8mrn2h0rp9cmw4im1qvp93rahqxdd4n8"))))+ (build-system python-build-system)+ (arguments '(#:tests? #f))+ (native-inputs+ `(("docopt" ,python-docopt)))+ (inputs+ `(("pythondialog" ,python-pythondialog)+ ("requests" ,python-requests)))+ (propagated-inputs+ `(("openvpn" ,openvpn)))+ (synopsis "Command-line client for ProtonVPN")+ (description+ "ProtonVPN is a secure point-to-point virtual private networking service+with a gratis tier.")+ (home-page "https://github.com/ProtonVPN/linux-cli")+ (license license:gpl3)))+ (define-public tinc (package (name "tinc")-- 2.26.2
L
L
Ludovic Courtès wrote on 23 May 2020 16:17
(name . Ryan Prior)(address . rprior@protonmail.com)(address . 41431@debbugs.gnu.org)
87o8qe68hh.fsf@gnu.org
Hi,
Ryan Prior <rprior@protonmail.com> skribis:
Toggle quote (2 lines)> * gnu/packages/vpn.scm (protonvpn-cli): New variable.
Overall LGTM, with minor issues:
Toggle quote (2 lines)> + (arguments '(#:tests? #f))
When enabling the tests, I get:
Toggle snippet (16 lines)starting phase `check'running "python setup.py" with command "test" and parameters ()running testrunning egg_infowriting protonvpn_cli.egg-info/PKG-INFOwriting dependency_links to protonvpn_cli.egg-info/dependency_links.txtwriting entry points to protonvpn_cli.egg-info/entry_points.txtwriting requirements to protonvpn_cli.egg-info/requires.txtwriting top-level names to protonvpn_cli.egg-info/top_level.txtreading manifest file 'protonvpn_cli.egg-info/SOURCES.txt'writing manifest file 'protonvpn_cli.egg-info/SOURCES.txt'running build_exterror: [Errno 13] Permission denied: '/.pvpn-cli'command "python" "-c" "import setuptools, tokenize;__file__='setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\\r\\n', '\\n');f.close();exec(compile(code, __file__, 'exec'))" "test" failed with status 1
So there are definitely tests, but for some reason they’re not workingas expected. Could you take a look? (In general we don’t disable testsunless there’s a compelling reason to do so.)
Toggle quote (6 lines)> + (description> + "ProtonVPN is a secure point-to-point virtual private networking service> +with a gratis tier.")> + (home-page "https://github.com/ProtonVPN/linux-cli")> + (license license:gpl3)))
This is ‘gpl3+’ AFAICS since nothing says “version 3 only.”
Could you send an updated patch?
Bonus points if you expound the description a bit. :-)
Thanks,Ludo’.
R
R
Ryan Prior wrote on 23 May 2020 21:11
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 41431@debbugs.gnu.org)
FcbDXqVEwHrupr0XmpHuOF2BQE1lctUHTPQvcjNxWeJA1O3yjKsuP20q-uGCKTphx1_xKHN0Paet8Cwfld9fsIAau-GnHlzQyIohHTm0FIg=@protonmail.com
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐On Saturday, May 23, 2020 2:17 PM, Ludovic Courtès <ludo@gnu.org> wrote:
Toggle quote (2 lines)> there are definitely tests
What makes you so sure? `grep -r '\Wtest' .` suggests that the only reference to testing in the whole repo is in protonvpn_cli/utils.py (wait_for_network) which tests for a network connection at runtime. I don't think they are shipping any tests; setup.py can test to make sure you can actually install your dependencies, but that's not a meaningful upstream test, it's a default behavior.

Toggle quote (4 lines)> > - (license license:gpl3)))>> This is ‘gpl3+’ AFAICS since nothing says “version 3 only.”
Nothing says "or any later version" either—I had been under the impression that the "plus" was opt-in, but reading GPLv3 again it appears to be opt-out. I don't know, that's not my area of expertise. I've updated the patch to gpl3+ with your recommendation in any case.
Toggle quote (4 lines)> Could you send an updated patch?>> Bonus points if you expound the description a bit. :-)
Of course! Here you go.

Thanks,Ryan
From e24ca007737ab7f6e7572cee2b827578ff42a36a Mon Sep 17 00:00:00 2001From: Ryan Prior <rprior@protonmail.com>Date: Wed, 20 May 2020 22:28:11 -0500Subject: [PATCH] gnu: Add protonvpn-cli.
* gnu/packages/vpn.scm (protonvpn-cli): New variable.--- gnu/packages/vpn.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+)
Toggle diff (63 lines)diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scmindex da881493bf..8f7fb3b577 100644--- a/gnu/packages/vpn.scm+++ b/gnu/packages/vpn.scm@@ -12,6 +12,7 @@ ;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>+;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com> ;;; ;;; This file is part of GNU Guix. ;;;@@ -55,6 +56,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages python-xyz)+ #:use-module (gnu packages python-web) #:use-module (gnu packages tls) #:use-module (gnu packages xml)) @@ -311,6 +313,40 @@ security protocol that utilizes SSL/TLS for key exchange. It is capable of traversing network address translators (@dfn{NAT}s) and firewalls.") (license license:gpl2))) +(define-public protonvpn-cli+ (package+ (name "protonvpn-cli")+ (version "2.2.2")+ (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")+ (commit (string-append "v" version))))+ (file-name (git-file-name name version))+ (sha256+ (base32+ "0ixjb02kj4z79whm1izd8mrn2h0rp9cmw4im1qvp93rahqxdd4n8"))))+ (build-system python-build-system)+ (arguments '(#:tests? #f)) ; no tests in repo+ (native-inputs+ `(("docopt" ,python-docopt)))+ (inputs+ `(("pythondialog" ,python-pythondialog)+ ("requests" ,python-requests)))+ (propagated-inputs+ `(("openvpn" ,openvpn)))+ (synopsis "Command-line client for ProtonVPN")+ (description+ "Official CLI for ProtonVPN, a secure point-to-point virtual private+networking service with a gratis tier. It can automatically find and connect+to the fastest servers or use TOR over VPN. The gratis tier offers unlimited+bandwidth for up to 10 devices.")+ (home-page "https://github.com/ProtonVPN/linux-cli")+ (license license:gpl3+)))+ (define-public tinc (package (name "tinc")-- 2.26.2
L
L
Ludovic Courtès wrote on 24 May 2020 22:02
(name . Ryan Prior)(address . rprior@protonmail.com)(address . 41431-done@debbugs.gnu.org)
87zh9x2j9z.fsf@gnu.org
Hi,
Ryan Prior <rprior@protonmail.com> skribis:
Toggle quote (7 lines)> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐> On Saturday, May 23, 2020 2:17 PM, Ludovic Courtès <ludo@gnu.org> wrote:>>> there are definitely tests>> What makes you so sure? `grep -r '\Wtest' .` suggests that the only reference to testing in the whole repo is in protonvpn_cli/utils.py (wait_for_network) which tests for a network connection at runtime. I don't think they are shipping any tests; setup.py can test to make sure you can actually install your dependencies, but that's not a meaningful upstream test, it's a default behavior.
Oh my bad. I was fooled by the fact that “something” seemed to behappening when enabling tests.
Toggle quote (6 lines)>> > - (license license:gpl3)))>>>> This is ‘gpl3+’ AFAICS since nothing says “version 3 only.”>> Nothing says "or any later version" either—I had been under the impression that the "plus" was opt-in, but reading GPLv3 again it appears to be opt-out. I don't know, that's not my area of expertise. I've updated the patch to gpl3+ with your recommendation in any case.
Right, there’s this paragraph in the license:
Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation.
In Guix we encode it by adding “+” as in “or any later version”.
Toggle quote (6 lines)> From: Ryan Prior <rprior@protonmail.com>> Date: Wed, 20 May 2020 22:28:11 -0500> Subject: [PATCH] gnu: Add protonvpn-cli.>> * gnu/packages/vpn.scm (protonvpn-cli): New variable.
Applied, thanks!
Ludo’.
Closed
?