diff mbox series

[bug#41431] gnu: Add protonvpn-cli.

Message ID FcbDXqVEwHrupr0XmpHuOF2BQE1lctUHTPQvcjNxWeJA1O3yjKsuP20q-uGCKTphx1_xKHN0Paet8Cwfld9fsIAau-GnHlzQyIohHTm0FIg=@protonmail.com
State Accepted
Headers show
Series [bug#41431] gnu: Add protonvpn-cli. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch fail View Laminar job

Commit Message

guix--- via Guix-patches via May 23, 2020, 7:11 p.m. UTC
‐‐‐‐‐‐‐ 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.


> > -   (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.

> Could you send an updated patch?
>
> Bonus points if you expound the description a bit. :-)

Of course! Here you go.


Thanks,
Ryan

Comments

Ludovic Courtès May 24, 2020, 8:02 p.m. UTC | #1
Hi,

Ryan Prior <rprior@protonmail.com> skribis:

> ‐‐‐‐‐‐‐ 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 be
happening when enabling tests.

>> > -   (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”.

> 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’.
diff mbox series

Patch

From e24ca007737ab7f6e7572cee2b827578ff42a36a Mon Sep 17 00:00:00 2001
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.
---
 gnu/packages/vpn.scm | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm
index 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