about summary refs log tree commit diff
path: root/arunisaac
diff options
context:
space:
mode:
authorArun Isaac2026-06-30 16:12:24 +0100
committerArun Isaac2026-06-30 16:12:24 +0100
commit5aa9c79b7f8e0c3b4074cfeb634855a359ece876 (patch)
tree191f0edda843500aa235c5a16d904f6489e97046 /arunisaac
parent4ede78a08cd8e692894f43c58d2ff1b2c1f736f1 (diff)
downloadguix-arunisaac-5aa9c79b7f8e0c3b4074cfeb634855a359ece876.tar.gz
guix-arunisaac-5aa9c79b7f8e0c3b4074cfeb634855a359ece876.tar.lz
guix-arunisaac-5aa9c79b7f8e0c3b4074cfeb634855a359ece876.zip
Add openconnect-sso-ucl.
Diffstat (limited to 'arunisaac')
-rw-r--r--arunisaac/openconnect.scm42
1 files changed, 40 insertions, 2 deletions
diff --git a/arunisaac/openconnect.scm b/arunisaac/openconnect.scm
index 5e46b91..897345a 100644
--- a/arunisaac/openconnect.scm
+++ b/arunisaac/openconnect.scm
@@ -44,16 +44,20 @@
                           python-prompt-toolkit
                           python-pysocks
                           python-structlog))
-  #:use-module ((gnu packages qt) #:select (python-pyqt-6
+  #:use-module ((gnu packages qt) #:select (python-pyqt
+                                            python-pyqtwebengine
+                                            python-pyqt-6
                                             python-pyqtwebengine-6))
   #:use-module ((gnu packages vpn) #:select (openconnect))
   #:use-module ((gnu packages xml) #:select (python-lxml-4.9))
   #:use-module (guix build-system pyproject)
   #:use-module ((guix build-system python) #:hide (pypi-uri))
   #:use-module (guix download)
+  #:use-module (guix gexp)
   #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
-  #:use-module (guix packages))
+  #:use-module (guix packages)
+  #:use-module (guix utils))
 
 (define python-keyring-23.9
   (package
@@ -214,3 +218,37 @@
      (list shared-mime-info
            hicolor-icon-theme
            python-setuptools))))
+
+;; This is a fork of openconnect-sso that works with the UCL VPN. We
+;; use this until similar support is added to openconnect-sso
+;; upstream.
+(define openconnect-sso-ucl
+  (package
+    (inherit openconnect-sso)
+    (name "openconnect-sso-ucl")
+    (version "1.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/Beej126/openconnect-sso-windows-csd")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1gzpx14ks800kdljvivp43ybj89dqbnsq0naj33s7f54byih5v0c"))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments openconnect-sso)
+       ((#:phases phases #~%standard-phases)
+        #~(modify-phases #$phases
+            ;; Patch in fictitious host scan data to satisfy the VPN
+            ;; authenticator.
+            (add-after 'unpack 'patch-in-hostscan-data
+              (lambda _
+                (substitute* "openconnect_sso/authenticator.py"
+                  (("hostscan-data")
+                   #$(local-file "ucl-vpn-hostscan-data")))))))))
+    (inputs
+     (modify-inputs (package-inputs openconnect-sso)
+       (replace "python-pyqt" python-pyqt)
+       (replace "python-pyqtwebengine" python-pyqtwebengine)
+       (replace "python-pyxdg" python-pyxdg-0.27)))))