Subject: [bug#59018] [PATCH 0/1] OAuth2 for mbsync

From: Peter Polidoro <[email-masked]>
Date: Fri, 18 Nov 2022 10:50:34 -0500

Ludovic Courtès <[email-masked]> writes:
>
> Could you send an updated patch?  TIA!
>
> Ludo’.

I was able to get the package to build by adding a 
"--with-cyrus-sasl" configure-flag.

I am not sure if I used the correct value for this flag, however.

The package's configure file says:

  --with-cyrus-sasl=PREFIX
                          Installation prefix of Cyrus-SASL 
                          (defaults to /usr)

That seems to imply that should be the install location of the 
cyrus-sasl package and that the cyrus-sasl-xoauth2 package will 
get installed into the location specified by the "--prefix" 
configure-flag.

The build failed, though, since it was trying to install into the 
/usr directory, even though "--prefix" was set to something else. 
So I set "--with-cyrus-sasl" to be the path of the 
cyrus-sasl-xoauth2 package out and that seems to work now. I 
assume the compilation would have failed if "--with-cyrus-sasl" 
needed to point to the cyrus-sasl location for dependency reasons.

Now hopefully adding the correct search path to the cyrus-sasl 
package will get the cyrus-sasl-xoauth2 properly recognized as a 
plugin. I can work on that patch when I have some time.

Thank you for your all of your help and patience as I am still 
learning how to create guix packages.

>From ba3fe6dff1d2dbf1cb4d3c383acad57e40f79367 Mon Sep 17 00:00:00 2001
Message-Id: <[email-masked]>
From: Peter Polidoro <[email-masked]>
Date: Fri, 18 Nov 2022 12:38:06 -0500
Subject: [PATCH] gnu: Add cyrus-sasl-xoauth2.

* gnu/packages/cyrus-sasl.scm (cyrus-sasl-xoauth2): New variable.
---
 gnu/packages/cyrus-sasl.scm | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/gnu/packages/cyrus-sasl.scm b/gnu/packages/cyrus-sasl.scm
index 2cd18f3e5e..1134996d34 100644
--- a/gnu/packages/cyrus-sasl.scm
+++ b/gnu/packages/cyrus-sasl.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2013 Andreas Enge <[email-masked]>
 ;;; Copyright © 2016 Leo Famulari <[email-masked]>
 ;;; Copyright © 2019 Mathieu Othacehe <[email-masked]>
+;;; Copyright © 2022 Peter Polidoro <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -28,6 +29,7 @@ (define-module (gnu packages cyrus-sasl)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix build-system gnu))
 
 (define-public cyrus-sasl
@@ -78,3 +80,31 @@ (define-public cyrus-sasl
    (license (license:non-copyleft "file://COPYING"
                                   "See COPYING in the distribution."))
    (home-page "https://cyrusimap.org/sasl/")))
+
+(define-public cyrus-sasl-xoauth2
+  (package
+    (name "cyrus-sasl-xoauth2")
+    (version "0.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/moriyoshi/cyrus-sasl-xoauth2")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1py9f1mn5k5xihrk0lfrwr6723c22gjb7lmgya83ibvislm2x3wl"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags (list (string-append "--with-cyrus-sasl="
+                                              (assoc-ref %outputs "out")))))
+    (native-inputs (list autoconf automake libtool))
+    (inputs (list cyrus-sasl))
+    (home-page "https://github.com/moriyoshi/cyrus-sasl-xoauth2")
+    (synopsis "XOAUTH2 mechanism plugin for cyrus-sasl")
+    (description "This package adds the Open Authorization standard, OAuth2,
+authentication mechanism to cyrus-sasl as a plugin.  OAuth is an open standard
+for access delegation, commonly used as a way for internet users to grant
+websites or applications access to their information on other websites but
+without giving them the passwords.")
+    (license (list license:expat license:expat))))
-- 
2.38.1