Subject: [PATCH] gnu: Add ocproxy.

From: Pierre Langlois <[email-masked]>
Date: Sat, 21 Apr 2018 10:42:08 +0100

Hi Guix!

Here's a patch to add ocproxy, a SOCKS proxy for OpenConnect
(https://github.com/cernekee/ocproxy).

Thanks!
Pierre

>From 695844d61261c699852a9cf311cb807e358f792a Mon Sep 17 00:00:00 2001
From: Pierre Langlois <[email-masked]>
Date: Sat, 21 Apr 2018 10:37:20 +0100
Subject: [PATCH] gnu: Add ocproxy.

* gnu/packages/vpn.scm (ocproxy): 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 070b69565..6ba3677a9 100644
--- a/gnu/packages/vpn.scm
+++ b/gnu/packages/vpn.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2016, 2017 Efraim Flashner <[email-masked]>
 ;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <[email-masked]>
 ;;; Copyright © 2017 Julien Lepiller <[email-masked]>
+;;; Copyright © 2018 Pierre Langlois <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -32,9 +33,11 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages base)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages libevent)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
@@ -206,6 +209,39 @@ example for writing your own.  For example, @command{vpnc-script-sshd} contains
 the entire VPN in a network namespace accessible only through SSH.")
       (license license:gpl2+))))
 
+(define-public ocproxy
+  (package
+    (name "ocproxy")
+    (version "1.60")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/cernekee/ocproxy/archive/v"
+                    version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1b4rg3xq5jnrp2l14sw0msan8kqhdxmsd7gpw9lkiwvxy13pcdm7"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)))
+    (inputs
+     `(("libevent" ,libevent)))
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'autogen
+           (lambda _ (invoke "sh" "autogen.sh"))))))
+    (home-page "https://github.com/cernekee/ocproxy")
+    (synopsis "OpenConnect proxy")
+    (description
+     "User-level @dfn{SOCKS} and port forwarding proxy for OpenConnect based
+on LwIP.  When using ocproxy, OpenConnect only handles network activity that
+the user specifically asks to proxy, so the @dfn{VPN} interface no longer
+\"hijacks\" all network traffic on the host.")
+    (license license:bsd-3)))
+
 (define-public openconnect
   (package
    (name "openconnect")
-- 
2.17.0