diff mbox series

[bug#36091] gnu: Add emacs-excorporate

Message ID n_YztFw412lx5VOCWh9kbK1K-3vlVj0Na5mHSEyssAoeogh2jfjsh_jF45h7BkvsQ_3ogOou9tFM5dfUFksumlwP5UCMnCLwE_cLx_dRRmw=@protonmail.com
State Accepted
Headers show
Series [bug#36091] gnu: Add emacs-excorporate | expand

Checks

Context Check Description
cbaines/applying patch fail View Laminar job
cbaines/issue success View issue
cbaines/applying patch fail View Laminar job
cbaines/issue success View issue
cbaines/applying patch fail View Laminar job
cbaines/issue success View issue
cbaines/applying patch fail Apply failed

Commit Message

TK June 4, 2019, 11:29 a.m. UTC
Empty Message

Comments

Oleg Pykhalov June 5, 2019, 6:33 a.m. UTC | #1
Hello,

First of all thank you for a contribution!

Could you split this patch to make a single patch per package, please?

Also several notes about current patch below.

TK <tkprom@protonmail.com> writes:

> Empty Message
> From 73a918c84f1a25c2def96b6830e68b3b6368e06e Mon Sep 17 00:00:00 2001
> From: =?UTF-8?q?Todor=20Kondi=C4=87?= <tk.code@protonmail.com>
> Date: Tue, 4 Jun 2019 13:15:52 +0200
> Subject: [PATCH] gnu: Add emacs-excorporate
>
> * gnu/packages/emacs-xyz.scm (emacs-ntlm, emacs-ntlm): New variables.
>   (emacs-url-http-ntlm, emacs-soap-client): New variables.
>   (emacs-fsm,emacs-excorporate): New variables.

This could be in a single (emacs-ntlm, emacs-url-http-ntlm,
emacs-soap-client, &): New variables., but after splitting the patch
it will be not relevant.

> ---
>  gnu/packages/emacs-xyz.scm | 189 +++++++++++++++++++++++++++++++++++++
>  1 file changed, 189 insertions(+)
>
> diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
> index f9f0b2156f..81880886d3 100644
> --- a/gnu/packages/emacs-xyz.scm
> +++ b/gnu/packages/emacs-xyz.scm
> @@ -47,6 +47,7 @@
>  ;;; Copyright © 2019 mikadoZero <mikadozero@yandex.com>
>  ;;; Copyright © 2019 Gabriel Hondet <gabrielhondet@gmail.com>
>  ;;; Copyright © 2019 LaFreniere, Joseph <joseph@lafreniere.xyz>
> +;;; Copyright © 2019 Todor Kondi‡ <tk.code@protonmail.com>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -15669,3 +15670,191 @@ verb commands which would are normally destructive (such as deletion) are
>  provided.  Those alternative commands are and bound by default to their
>  corresponding Evil keys.")
>        (license license:expat))))
> +
> +
> +(define-public emacs-ntlm
> +  (package
> +   (name "emacs-ntlm")
> +   (version "2.1.0")
> +   (source
> +    (origin
> +     (method url-fetch)
> +     (uri (string-append
> +           "https://elpa.gnu.org/packages/ntlm-"
> +           version
> +           ".el"))

Last three lines could be on a single line.

> +     (sha256
> +      (base32
> +       "01d0bcmh8a36qf871w6bc05kjk9bmnh843m9869xw06zyvqwg9mv"))))
> +   (build-system emacs-build-system)
> +   (home-page
> +    "http://elpa.gnu.org/packages/ntlm.html")

Use https://elpa.gnu.org/packages/ntlm.html and on single line.

> +   (synopsis
> +    "NTLM (NT LanManager) authentication support")

Could be one line.

> +   (description
> +    "This library is a direct translation of the Samba release 2.2.0
> +implementation of Windows NT and LanManager compatible password
> +encryption.")
> +   (license license:gpl3+)))
> +
> +(define-public emacs-nadvice
> +  (package
> +    (name "emacs-nadvice")
> +    (version "0.3")
> +    (source
> +      (origin
> +        (method url-fetch)
> +        (uri (string-append
> +               "https://elpa.gnu.org/packages/nadvice-"
> +               version
> +               ".el"))

One line.

> +        (sha256
> +          (base32
> +            "0gi3csnxbs8h7iy0scsl35sic3gv90swa89hhdjwb7qvpirfdcgw"))))
> +    (build-system emacs-build-system)
> +    (home-page
> +      "http://elpa.gnu.org/packages/nadvice.html")

One line and https.

> +    (synopsis
> +      "Forward compatibility for Emacs-24.4's nadvice")

One line.

> +    (description
> +      "This package tries to re-implement some of nadvice.el's functionality
> +on top of the old defadvice system, to help users of defadvice
> +move to the new advice system without dropping support for Emacs<24.4.")
> +    (license license:gpl3+)))
> +
> +(define-public emacs-url-http-ntlm
> +  (package
> +    (name "emacs-url-http-ntlm")
> +    (version "2.0.4")
> +    (source
> +      (origin
> +        (method url-fetch)
> +        (uri (string-append
> +               "https://elpa.gnu.org/packages/url-http-ntlm-"
> +               version
> +               ".el"))
> +        (sha256
> +          (base32
> +            "1cakq2ykraci7d1gl8rnpv4f2f5ffyaidhqb1282g7i72adwmb98"))))
> +    (build-system emacs-build-system)
> +    (propagated-inputs `(("emacs-ntlm" ,emacs-ntlm)))
> +    (home-page
> +      "http://elpa.gnu.org/packages/url-http-ntlm.html")

One line and https.

> +    (synopsis
> +      "NTLM authentication for the url library")

One line.

> +    (description
> +      "This package provides a NTLM handler for the URL package.")

One line.

> +    (license license:gpl3+)))
> +
> +(define-public emacs-soap-client
> +  (package
> +    (name "emacs-soap-client")
> +    (version "3.1.5")
> +    (source
> +      (origin
> +        (method url-fetch)
> +        (uri (string-append
> +               "https://elpa.gnu.org/packages/soap-client-"
> +               version
> +               ".tar"))
> +        (sha256
> +          (base32
> +            "0nnf075ywxmsfd6vmzk2yg3khx6sycl5l6qrgp5rqqmw0wzhxlh0"))))
> +    (build-system emacs-build-system)
> +    (home-page
> +      "http://elpa.gnu.org/packages/soap-client.html")

One line and https.

> +    (synopsis "Access SOAP web services")
> +    (description
> +      "To use the SOAP client, you first need to load the WSDL document for the
> +service you want to access, using `soap-load-wsdl-from-url'.  A WSDL
> +document describes the available operations of the SOAP service, how their
> +parameters and responses are encoded.  To invoke operations, you use the
> +`soap-invoke' method passing it the WSDL, the service name, the operation
> +you wish to invoke and any required parameters.
> +
> +Ideally, the service you want to access will have some documentation about
> +the operations it supports.  If it does not, you can try using
> +`soap-inspect' to browse the WSDL document and see the available operations
> +and their parameters.")
> +    (license license:gpl3+)))

I think we should replace this instruction with a package description
instead, because we have the same tutorial in soap-client.el file.

> +(define-public emacs-fsm
> +  (package
> +    (name "emacs-fsm")
> +    (version "0.2.1")
> +    (source
> +      (origin
> +        (method url-fetch)
> +        (uri (string-append
> +               "https://elpa.gnu.org/packages/fsm-"
> +               version
> +               ".el"))

One line.

> +        (sha256
> +          (base32
> +            "1jyxyqdbfl8nv7c50q0sg3w5p7whp1sqgi7w921k5hfar4d11qqp"))))
> +    (build-system emacs-build-system)
> +    (home-page
> +      "http://elpa.gnu.org/packages/fsm.html")

One line and https.

> +    (synopsis "state machine library")

Linter has some warnings:

$ ./pre-inst-env guix lint emacs-fsm
gnu/packages/emacs-xyz.scm:15903:14: emacs-fsm@0.2.1: synopsis should
start with an upper-case letter or digit

Also, State machine Emacs library will be better for guix search.

> +    (description
> +      "fsm.el is an exercise in metaprogramming inspired by gen_fsm of
> +Erlang/OTP.  It aims to make asynchronous programming in Emacs Lisp
> +easy and fun.

I think it's enough for the description.

gnu/packages/emacs-xyz.scm:15905:6: emacs-fsm@0.2.1: description should
start with an upper-case letter or digit

The warning above could be fixed by @code{fsm.el}.

> By \"asynchronous\" I mean that long-lasting tasks don't interfer
> with normal editing.
> +
> +Some people say that it would be nice if Emacs Lisp had threads
> +and/or continuations.  They are probably right, but there are few
> +things that can't be made to run in the background using facilities
> +already available: timers, filters and sentinels.  As the code can
> +become a bit messy when using such means, with callbacks everywhere
> +and such things, it can be useful to structure the program as a
> +state machine.")
> 
> +    (license license:gpl3+)))
> +
> +(define-public emacs-excorporate
> +  (package
> +    (name "emacs-excorporate")
> +    (version "0.8.1")
> +    (source
> +      (origin
> +        (method url-fetch)
> +        (uri (string-append
> +               "https://elpa.gnu.org/packages/excorporate-"
> +               version
> +               ".tar"))

One line.

> +        (sha256
> +          (base32
> +            "1k89472x80wsn14y16km5bgynmmd2kbdfhylb3cc17jvdn1xr53y"))))
> +    (build-system emacs-build-system)
> +    (propagated-inputs
> +      `(("emacs-fsm" ,emacs-fsm)
> +        ("emacs-soap-client" ,emacs-soap-client)
> +        ("emacs-url-http-ntlm" ,emacs-url-http-ntlm)
> +        ("emacs-nadvice" ,emacs-nadvice)))
> +    (home-page
> +      "http://elpa.gnu.org/packages/excorporate.html")

One line and https.

> +    (synopsis "Exchange integration")

Maybe Exchange integration for Emacs as in description.

> +    (description
> +      "Excorporate provides Exchange integration for Emacs.

That's enough, we will have the following after installing a package.

> +To create a connection to a web service:
> +
> +M-x excorporate
> +
> +Excorporate will prompt for an email address that it will use to
> +automatically discover settings.  Then it will prompt you for your
> +credentials two or three times depending on the server configuration.
> +
> +You should see a message indicating that the connection is ready
> +either in the minibuffer or in the *Messages* buffer.
> +
> +Finally, run M-x calendar, and press @code{e} to show today's meetings.
> +
> +If autodiscovery fails, customize @code{excorporate-configuration} to skip
> +autodiscovery.
> +
> +For further information including connection troubleshooting, see the
> +Excorporate Info node at C-h i d m Excorporate.
> +")
> +    (license license:gpl3+)))
> +

Regards,
Oleg.
Brett Gilio Dec. 10, 2019, 5:31 a.m. UTC | #2
Oleg Pykhalov <go.wigust@gmail.com> writes:

> Hello,
>
> First of all thank you for a contribution!
>
> Could you split this patch to make a single patch per package, please?
>
> Also several notes about current patch below.
>
> TK <tkprom@protonmail.com> writes:
>
>> Empty Message
>> From 73a918c84f1a25c2def96b6830e68b3b6368e06e Mon Sep 17 00:00:00 2001
>> From: =?UTF-8?q?Todor=20Kondi=C4=87?= <tk.code@protonmail.com>
>> Date: Tue, 4 Jun 2019 13:15:52 +0200
>> Subject: [PATCH] gnu: Add emacs-excorporate
>>
>> * gnu/packages/emacs-xyz.scm (emacs-ntlm, emacs-ntlm): New variables.
>>   (emacs-url-http-ntlm, emacs-soap-client): New variables.
>>   (emacs-fsm,emacs-excorporate): New variables.
>
> This could be in a single (emacs-ntlm, emacs-url-http-ntlm,
> emacs-soap-client, &): New variables., but after splitting the patch
> it will be not relevant.
>
>> ---
>>  gnu/packages/emacs-xyz.scm | 189 +++++++++++++++++++++++++++++++++++++
>>  1 file changed, 189 insertions(+)
>>
>> diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
>> index f9f0b2156f..81880886d3 100644
>> --- a/gnu/packages/emacs-xyz.scm
>> +++ b/gnu/packages/emacs-xyz.scm
>> @@ -47,6 +47,7 @@
>>  ;;; Copyright  2019 mikadoZero <mikadozero@yandex.com>
>>  ;;; Copyright  2019 Gabriel Hondet <gabrielhondet@gmail.com>
>>  ;;; Copyright  2019 LaFreniere, Joseph <joseph@lafreniere.xyz>
>> +;;; Copyright  2019 Todor Kondi‡ <tk.code@protonmail.com>
>>  ;;;
>>  ;;; This file is part of GNU Guix.
>>  ;;;
>> @@ -15669,3 +15670,191 @@ verb commands which would are normally destructive (such as deletion) are
>>  provided.  Those alternative commands are and bound by default to their
>>  corresponding Evil keys.")
>>        (license license:expat))))
>> +
>> +
>> +(define-public emacs-ntlm
>> +  (package
>> +   (name "emacs-ntlm")
>> +   (version "2.1.0")
>> +   (source
>> +    (origin
>> +     (method url-fetch)
>> +     (uri (string-append
>> +           "https://elpa.gnu.org/packages/ntlm-"
>> +           version
>> +           ".el"))
>
> Last three lines could be on a single line.
>
>> +     (sha256
>> +      (base32
>> +       "01d0bcmh8a36qf871w6bc05kjk9bmnh843m9869xw06zyvqwg9mv"))))
>> +   (build-system emacs-build-system)
>> +   (home-page
>> +    "http://elpa.gnu.org/packages/ntlm.html")
>
> Use https://elpa.gnu.org/packages/ntlm.html and on single line.
>
>> +   (synopsis
>> +    "NTLM (NT LanManager) authentication support")
>
> Could be one line.
>
>> +   (description
>> +    "This library is a direct translation of the Samba release 2.2.0
>> +implementation of Windows NT and LanManager compatible password
>> +encryption.")
>> +   (license license:gpl3+)))
>> +
>> +(define-public emacs-nadvice
>> +  (package
>> +    (name "emacs-nadvice")
>> +    (version "0.3")
>> +    (source
>> +      (origin
>> +        (method url-fetch)
>> +        (uri (string-append
>> +               "https://elpa.gnu.org/packages/nadvice-"
>> +               version
>> +               ".el"))
>
> One line.
>
>> +        (sha256
>> +          (base32
>> +            "0gi3csnxbs8h7iy0scsl35sic3gv90swa89hhdjwb7qvpirfdcgw"))))
>> +    (build-system emacs-build-system)
>> +    (home-page
>> +      "http://elpa.gnu.org/packages/nadvice.html")
>
> One line and https.
>
>> +    (synopsis
>> +      "Forward compatibility for Emacs-24.4's nadvice")
>
> One line.
>
>> +    (description
>> +      "This package tries to re-implement some of nadvice.el's functionality
>> +on top of the old defadvice system, to help users of defadvice
>> +move to the new advice system without dropping support for Emacs<24.4.")
>> +    (license license:gpl3+)))
>> +
>> +(define-public emacs-url-http-ntlm
>> +  (package
>> +    (name "emacs-url-http-ntlm")
>> +    (version "2.0.4")
>> +    (source
>> +      (origin
>> +        (method url-fetch)
>> +        (uri (string-append
>> +               "https://elpa.gnu.org/packages/url-http-ntlm-"
>> +               version
>> +               ".el"))
>> +        (sha256
>> +          (base32
>> +            "1cakq2ykraci7d1gl8rnpv4f2f5ffyaidhqb1282g7i72adwmb98"))))
>> +    (build-system emacs-build-system)
>> +    (propagated-inputs `(("emacs-ntlm" ,emacs-ntlm)))
>> +    (home-page
>> +      "http://elpa.gnu.org/packages/url-http-ntlm.html")
>
> One line and https.
>
>> +    (synopsis
>> +      "NTLM authentication for the url library")
>
> One line.
>
>> +    (description
>> +      "This package provides a NTLM handler for the URL package.")
>
> One line.
>
>> +    (license license:gpl3+)))
>> +
>> +(define-public emacs-soap-client
>> +  (package
>> +    (name "emacs-soap-client")
>> +    (version "3.1.5")
>> +    (source
>> +      (origin
>> +        (method url-fetch)
>> +        (uri (string-append
>> +               "https://elpa.gnu.org/packages/soap-client-"
>> +               version
>> +               ".tar"))
>> +        (sha256
>> +          (base32
>> +            "0nnf075ywxmsfd6vmzk2yg3khx6sycl5l6qrgp5rqqmw0wzhxlh0"))))
>> +    (build-system emacs-build-system)
>> +    (home-page
>> +      "http://elpa.gnu.org/packages/soap-client.html")
>
> One line and https.
>
>> +    (synopsis "Access SOAP web services")
>> +    (description
>> +      "To use the SOAP client, you first need to load the WSDL document for the
>> +service you want to access, using `soap-load-wsdl-from-url'.  A WSDL
>> +document describes the available operations of the SOAP service, how their
>> +parameters and responses are encoded.  To invoke operations, you use the
>> +`soap-invoke' method passing it the WSDL, the service name, the operation
>> +you wish to invoke and any required parameters.
>> +
>> +Ideally, the service you want to access will have some documentation about
>> +the operations it supports.  If it does not, you can try using
>> +`soap-inspect' to browse the WSDL document and see the available operations
>> +and their parameters.")
>> +    (license license:gpl3+)))
>
> I think we should replace this instruction with a package description
> instead, because we have the same tutorial in soap-client.el file.
>
>> +(define-public emacs-fsm
>> +  (package
>> +    (name "emacs-fsm")
>> +    (version "0.2.1")
>> +    (source
>> +      (origin
>> +        (method url-fetch)
>> +        (uri (string-append
>> +               "https://elpa.gnu.org/packages/fsm-"
>> +               version
>> +               ".el"))
>
> One line.
>
>> +        (sha256
>> +          (base32
>> +            "1jyxyqdbfl8nv7c50q0sg3w5p7whp1sqgi7w921k5hfar4d11qqp"))))
>> +    (build-system emacs-build-system)
>> +    (home-page
>> +      "http://elpa.gnu.org/packages/fsm.html")
>
> One line and https.
>
>> +    (synopsis "state machine library")
>
> Linter has some warnings:
>
> $ ./pre-inst-env guix lint emacs-fsm
> gnu/packages/emacs-xyz.scm:15903:14: emacs-fsm@0.2.1: synopsis should
> start with an upper-case letter or digit
>
> Also, State machine Emacs library will be better for guix search.
>
>> +    (description
>> +      "fsm.el is an exercise in metaprogramming inspired by gen_fsm of
>> +Erlang/OTP.  It aims to make asynchronous programming in Emacs Lisp
>> +easy and fun.
>
> I think it's enough for the description.
>
> gnu/packages/emacs-xyz.scm:15905:6: emacs-fsm@0.2.1: description should
> start with an upper-case letter or digit
>
> The warning above could be fixed by @code{fsm.el}.
>
>> By \"asynchronous\" I mean that long-lasting tasks don't interfer
>> with normal editing.
>> +
>> +Some people say that it would be nice if Emacs Lisp had threads
>> +and/or continuations.  They are probably right, but there are few
>> +things that can't be made to run in the background using facilities
>> +already available: timers, filters and sentinels.  As the code can
>> +become a bit messy when using such means, with callbacks everywhere
>> +and such things, it can be useful to structure the program as a
>> +state machine.")
>> 
>> +    (license license:gpl3+)))
>> +
>> +(define-public emacs-excorporate
>> +  (package
>> +    (name "emacs-excorporate")
>> +    (version "0.8.1")
>> +    (source
>> +      (origin
>> +        (method url-fetch)
>> +        (uri (string-append
>> +               "https://elpa.gnu.org/packages/excorporate-"
>> +               version
>> +               ".tar"))
>
> One line.
>
>> +        (sha256
>> +          (base32
>> +            "1k89472x80wsn14y16km5bgynmmd2kbdfhylb3cc17jvdn1xr53y"))))
>> +    (build-system emacs-build-system)
>> +    (propagated-inputs
>> +      `(("emacs-fsm" ,emacs-fsm)
>> +        ("emacs-soap-client" ,emacs-soap-client)
>> +        ("emacs-url-http-ntlm" ,emacs-url-http-ntlm)
>> +        ("emacs-nadvice" ,emacs-nadvice)))
>> +    (home-page
>> +      "http://elpa.gnu.org/packages/excorporate.html")
>
> One line and https.
>
>> +    (synopsis "Exchange integration")
>
> Maybe Exchange integration for Emacs as in description.
>
>> +    (description
>> +      "Excorporate provides Exchange integration for Emacs.
>
> That's enough, we will have the following after installing a package.
>
>> +To create a connection to a web service:
>> +
>> +M-x excorporate
>> +
>> +Excorporate will prompt for an email address that it will use to
>> +automatically discover settings.  Then it will prompt you for your
>> +credentials two or three times depending on the server configuration.
>> +
>> +You should see a message indicating that the connection is ready
>> +either in the minibuffer or in the *Messages* buffer.
>> +
>> +Finally, run M-x calendar, and press @code{e} to show today's meetings.
>> +
>> +If autodiscovery fails, customize @code{excorporate-configuration} to skip
>> +autodiscovery.
>> +
>> +For further information including connection troubleshooting, see the
>> +Excorporate Info node at C-h i d m Excorporate.
>> +")
>> +    (license license:gpl3+)))
>> +
>
> Regards,
> Oleg.
>

Hello Oleg and TK,

I'd like to see these changes get pushed to master. TK, we are just
needing you to split these packages and follow the revisions that Oleg
proposed which I agree with. Depending on the age of these packages they
now likely lag behind its dependent packages so some version adjustments
may be indicated.

If you need some help, please do not hesitate to ask!
phodina Nov. 4, 2021, 9:39 p.m. UTC | #3
Hello Oleg, Brett and TK,

here are the modified patches. Hope all the issues are fixed.

Petr
Nicolas Goaziou Nov. 6, 2021, 9:45 a.m. UTC | #4
Hello,

phodina via Guix-patches via <guix-patches@gnu.org> writes:

> here are the modified patches. Hope all the issues are fixed.

Applied. Thank you.

Note that the indentation was off in most of the package definitions.
You may want to double-check how you indent the code, using ,e.g.,
etc/indent-code.el.

Regards,
phodina Nov. 6, 2021, 4:19 p.m. UTC | #5
Hi Nicolas,

On Saturday, November 6th, 2021 at 10:45 AM, Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote:

> Hello,
>
> phodina via Guix-patches via guix-patches@gnu.org writes:
>
> > here are the modified patches. Hope all the issues are fixed.
>
> Applied. Thank you.
>
> Note that the indentation was off in most of the package definitions.
>
> You may want to double-check how you indent the code, using ,e.g.,
>
> etc/indent-code.el.
>
> Regards,
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Nicolas Goaziou

Sorry for the indentation and additional effort. I sometimes forget to run it.

Do you now some git hook that would do that?

My thinking was to parse the first line in git commit and extract the package name, then run the script.

Petr
Nicolas Goaziou Nov. 7, 2021, 8:27 p.m. UTC | #6
Hello,

phodina via Guix-patches via <guix-patches@gnu.org> writes:

> Do you now some git hook that would do that?

I just hit M-q in Emacs out of habit.

I guess you could use pre-commit hook, grab the package name, and call
indent-code.el on it.

Regards,
diff mbox series

Patch

From 73a918c84f1a25c2def96b6830e68b3b6368e06e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Todor=20Kondi=C4=87?= <tk.code@protonmail.com>
Date: Tue, 4 Jun 2019 13:15:52 +0200
Subject: [PATCH] gnu: Add emacs-excorporate

* gnu/packages/emacs-xyz.scm (emacs-ntlm, emacs-ntlm): New variables.
  (emacs-url-http-ntlm, emacs-soap-client): New variables.
  (emacs-fsm,emacs-excorporate): New variables.
---
 gnu/packages/emacs-xyz.scm | 189 +++++++++++++++++++++++++++++++++++++
 1 file changed, 189 insertions(+)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index f9f0b2156f..81880886d3 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -47,6 +47,7 @@ 
 ;;; Copyright © 2019 mikadoZero <mikadozero@yandex.com>
 ;;; Copyright © 2019 Gabriel Hondet <gabrielhondet@gmail.com>
 ;;; Copyright © 2019 LaFreniere, Joseph <joseph@lafreniere.xyz>
+;;; Copyright © 2019 Todor Kondić <tk.code@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -15669,3 +15670,191 @@  verb commands which would are normally destructive (such as deletion) are
 provided.  Those alternative commands are and bound by default to their
 corresponding Evil keys.")
       (license license:expat))))
+
+
+(define-public emacs-ntlm
+  (package
+   (name "emacs-ntlm")
+   (version "2.1.0")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (string-append
+           "https://elpa.gnu.org/packages/ntlm-"
+           version
+           ".el"))
+     (sha256
+      (base32
+       "01d0bcmh8a36qf871w6bc05kjk9bmnh843m9869xw06zyvqwg9mv"))))
+   (build-system emacs-build-system)
+   (home-page
+    "http://elpa.gnu.org/packages/ntlm.html")
+   (synopsis
+    "NTLM (NT LanManager) authentication support")
+   (description
+    "This library is a direct translation of the Samba release 2.2.0
+implementation of Windows NT and LanManager compatible password
+encryption.")
+   (license license:gpl3+)))
+
+(define-public emacs-nadvice
+  (package
+    (name "emacs-nadvice")
+    (version "0.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://elpa.gnu.org/packages/nadvice-"
+               version
+               ".el"))
+        (sha256
+          (base32
+            "0gi3csnxbs8h7iy0scsl35sic3gv90swa89hhdjwb7qvpirfdcgw"))))
+    (build-system emacs-build-system)
+    (home-page
+      "http://elpa.gnu.org/packages/nadvice.html")
+    (synopsis
+      "Forward compatibility for Emacs-24.4's nadvice")
+    (description
+      "This package tries to re-implement some of nadvice.el's functionality
+on top of the old defadvice system, to help users of defadvice
+move to the new advice system without dropping support for Emacs<24.4.")
+    (license license:gpl3+)))
+
+(define-public emacs-url-http-ntlm
+  (package
+    (name "emacs-url-http-ntlm")
+    (version "2.0.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://elpa.gnu.org/packages/url-http-ntlm-"
+               version
+               ".el"))
+        (sha256
+          (base32
+            "1cakq2ykraci7d1gl8rnpv4f2f5ffyaidhqb1282g7i72adwmb98"))))
+    (build-system emacs-build-system)
+    (propagated-inputs `(("emacs-ntlm" ,emacs-ntlm)))
+    (home-page
+      "http://elpa.gnu.org/packages/url-http-ntlm.html")
+    (synopsis
+      "NTLM authentication for the url library")
+    (description
+      "This package provides a NTLM handler for the URL package.")
+    (license license:gpl3+)))
+
+(define-public emacs-soap-client
+  (package
+    (name "emacs-soap-client")
+    (version "3.1.5")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://elpa.gnu.org/packages/soap-client-"
+               version
+               ".tar"))
+        (sha256
+          (base32
+            "0nnf075ywxmsfd6vmzk2yg3khx6sycl5l6qrgp5rqqmw0wzhxlh0"))))
+    (build-system emacs-build-system)
+    (home-page
+      "http://elpa.gnu.org/packages/soap-client.html")
+    (synopsis "Access SOAP web services")
+    (description
+      "To use the SOAP client, you first need to load the WSDL document for the
+service you want to access, using `soap-load-wsdl-from-url'.  A WSDL
+document describes the available operations of the SOAP service, how their
+parameters and responses are encoded.  To invoke operations, you use the
+`soap-invoke' method passing it the WSDL, the service name, the operation
+you wish to invoke and any required parameters.
+
+Ideally, the service you want to access will have some documentation about
+the operations it supports.  If it does not, you can try using
+`soap-inspect' to browse the WSDL document and see the available operations
+and their parameters.")
+    (license license:gpl3+)))
+
+(define-public emacs-fsm
+  (package
+    (name "emacs-fsm")
+    (version "0.2.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://elpa.gnu.org/packages/fsm-"
+               version
+               ".el"))
+        (sha256
+          (base32
+            "1jyxyqdbfl8nv7c50q0sg3w5p7whp1sqgi7w921k5hfar4d11qqp"))))
+    (build-system emacs-build-system)
+    (home-page
+      "http://elpa.gnu.org/packages/fsm.html")
+    (synopsis "state machine library")
+    (description
+      "fsm.el is an exercise in metaprogramming inspired by gen_fsm of
+Erlang/OTP.  It aims to make asynchronous programming in Emacs Lisp
+easy and fun.  By \"asynchronous\" I mean that long-lasting tasks
+don't interfer with normal editing.
+
+Some people say that it would be nice if Emacs Lisp had threads
+and/or continuations.  They are probably right, but there are few
+things that can't be made to run in the background using facilities
+already available: timers, filters and sentinels.  As the code can
+become a bit messy when using such means, with callbacks everywhere
+and such things, it can be useful to structure the program as a
+state machine.")
+    (license license:gpl3+)))
+
+(define-public emacs-excorporate
+  (package
+    (name "emacs-excorporate")
+    (version "0.8.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://elpa.gnu.org/packages/excorporate-"
+               version
+               ".tar"))
+        (sha256
+          (base32
+            "1k89472x80wsn14y16km5bgynmmd2kbdfhylb3cc17jvdn1xr53y"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+      `(("emacs-fsm" ,emacs-fsm)
+        ("emacs-soap-client" ,emacs-soap-client)
+        ("emacs-url-http-ntlm" ,emacs-url-http-ntlm)
+        ("emacs-nadvice" ,emacs-nadvice)))
+    (home-page
+      "http://elpa.gnu.org/packages/excorporate.html")
+    (synopsis "Exchange integration")
+    (description
+      "Excorporate provides Exchange integration for Emacs.
+
+To create a connection to a web service:
+
+M-x excorporate
+
+Excorporate will prompt for an email address that it will use to
+automatically discover settings.  Then it will prompt you for your
+credentials two or three times depending on the server configuration.
+
+You should see a message indicating that the connection is ready
+either in the minibuffer or in the *Messages* buffer.
+
+Finally, run M-x calendar, and press @code{e} to show today's meetings.
+
+If autodiscovery fails, customize @code{excorporate-configuration} to skip
+autodiscovery.
+
+For further information including connection troubleshooting, see the
+Excorporate Info node at C-h i d m Excorporate.
+")
+    (license license:gpl3+)))
+
-- 
2.21.0