Subject: [bug#38957] [PATCH] gnu: Add python-pywinrm

From: Alexandros Theodotou <[email-masked]>
Date: Wed, 08 Jan 2020 15:02:26 +0000

Hi Brett,

Thanks for taking a look at this.

On Mon, 2020-01-06 at 03:22 -0600, Brett Gilio wrote:
> Could you please split these package
> definitions into a patch series, rather than as a single patch? This
> is
> preferable for how our Git workflow is utilized so that we can keep
> track of packages individually in the commit log if we ever need to
> go
> back and look at our records.

Attaching the split patches.

Thanks,
Alex
From 0a619578c282dd4cf1ccbe14773f3f10287621f5 Mon Sep 17 00:00:00 2001
From: Alexandros Theodotou <[email-masked]>
Date: Wed, 8 Jan 2020 14:55:28 +0000
Subject: [PATCH 1/4] gnu: Add python-kerberos.

* gnu/packages/python-crypto.scm (python-kerberos): New variable.
---
 gnu/packages/python-crypto.scm | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm
index 63d3be17c2..a60ee6289d 100644
--- a/gnu/packages/python-crypto.scm
+++ b/gnu/packages/python-crypto.scm
@@ -21,6 +21,7 @@
 ;;; Copyright © 2018 Nam Nguyen <[email-masked]>
 ;;; Copyright © 2019 Guillaume Le Vaillant <[email-masked]>
 ;;; Copyright © 2019 Clément Lassieur <[email-masked]>
+;;; Copyright © 2020 Alexandros Theodotou <[email-masked]>>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -45,6 +46,7 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages check)
   #:use-module (gnu packages crypto)
+  #:use-module (gnu packages kerberos)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages protobuf)
@@ -1135,3 +1137,28 @@ storing and retrieving sensitive information in your programs.")
 package provides a tool to securely sign firmware images for booting by
 MCUboot.")
     (license license:expat)))
+
+(define-public python-kerberos
+  (package
+    (name "python-kerberos")
+    (version "1.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "kerberos" version))
+       (sha256
+        (base32
+         "19663qxmma0i8bfbjc2iwy5hgq0g4pfb75r023v5dps68zfvffgh"))))
+    (build-system python-build-system)
+    (inputs
+      `(("mit-krb5" ,mit-krb5)))
+    (home-page "https://github.com/apple/ccs-pykerberos")
+    (synopsis
+      "Python Kerberos library used by CalendarServer")
+    (description
+      "This Python package is a high-level wrapper for Kerberos (GSSAPI)
+operations.  The goal is to avoid having to build a module that wraps the
+entire Kerberos.framework, and instead offer a limited set of functions that
+do what is needed for client/server Kerberos authentication based on
+<http://www.ietf.org/rfc/rfc4559.txt>.")
+    (license license:asl2.0)))
--
2.24.1

From 8942151b1178fd25625a3f9a9213eba1c9c4646d Mon Sep 17 00:00:00 2001
From: Alexandros Theodotou <[email-masked]>
Date: Wed, 8 Jan 2020 14:59:27 +0000
Subject: [PATCH 4/4] gnu: Add python-pywinrm.

* gnu/packages/python-xyz.scm (python-pywinrm): New variable.
---
 gnu/packages/python-xyz.scm | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index db43bd72e4..6e301a59ad 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -68,6 +68,7 @@
 ;;; Copyright © 2019 Wiktor Żelazny <[email-masked]>
 ;;; Copyright © 2019 Tanguy Le Carrour <[email-masked]>
 ;;; Copyright © 2019 Mădălin Ionel Patrașcu <[email-masked]>
+;;; Copyright © 2020 Alexandros Theodotou <[email-masked]>>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -107,6 +108,7 @@
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages graphics)
+  #:use-module (gnu packages gsasl)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages icu4c)
@@ -17112,3 +17114,32 @@ scripts to load entry points more quickly.")
 functional combinators.  Parser combinators are just higher-order functions
 that take parsers as their arguments and return them as result values.")
     (license license:expat)))
+
+(define-public python-pywinrm
+  (package
+    (name "python-pywinrm")
+    (version "0.4.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pywinrm" version))
+       (sha256
+        (base32
+         "10gabhhg3rgacd5ahmi2r128z99fzbrbx6mz1nnq0dxmhmn5rpjf"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-six" ,python-six)
+       ("python-requests_ntlm" ,python-requests_ntlm)
+       ("python-xmltodict" ,python-xmltodict)
+       ("python-kerberos" ,python-kerberos)))
+    (native-inputs
+      `(("python-mock" ,python-mock)
+       ("python-pytest" ,python-pytest)))
+    (home-page "https://github.com/diyan/pywinrm/")
+    (synopsis
+      "Python library for Windows Remote Management (WinRM)")
+    (description
+      "pywinrm is a Python client for the Windows Remote Management (WinRM)
+service.  It allows you to invoke commands on target Windows machines from
+any machine that can run Python.")
+    (license license:expat)))
-- 
2.24.1

From dda41af4a8292633a4d38f01c35c8a007c001c59 Mon Sep 17 00:00:00 2001
From: Alexandros Theodotou <[email-masked]>
Date: Wed, 8 Jan 2020 14:58:06 +0000
Subject: [PATCH 3/4] gnu: Add python-requests_ntlm.

* gnu/packages/python-web.scm (python-requests_ntlm): New variable.
---
 gnu/packages/python-web.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 179e64e0a1..7ea83808f0 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -31,6 +31,7 @@
 ;;; Copyright © 2019 Brendan Tildesley <[email-masked]>
 ;;; Copyright © 2019 Pierre Langlois <[email-masked]>
 ;;; Copyright © 2019 Tanguy Le Carrour <[email-masked]>
+;;; Copyright © 2020 Alexandros Theodotou <[email-masked]>>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -3421,3 +3422,27 @@ Unicorn project.  The Gunicorn server is broadly compatible with
 various web frameworks, simply implemented, light on server resources,
 and fairly speedy.")
   (license license:expat)))
+
+(define-public python-requests_ntlm
+  (package
+    (name "python-requests_ntlm")
+    (version "1.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "requests_ntlm" version))
+       (sha256
+        (base32
+         "0wgbqzaq9w7bas16b7brdb75f91bh3275fb459093bk1ihpck2ci"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-cryptography" ,python-cryptography)
+       ("python-ntlm-auth" ,python-ntlm-auth)
+       ("python-requests" ,python-requests)))
+    (home-page "https://github.com/requests/requests-ntlm")
+    (synopsis
+      "NTLM authentication support for Requests")
+    (description
+      "This package allows for HTTP NTLM authentication using the requests
+library.")
+    (license license:isc)))
-- 
2.24.1

From d89f6bdb5559c60d568749ab864e8503bf2e91f4 Mon Sep 17 00:00:00 2001
From: Alexandros Theodotou <[email-masked]>
Date: Wed, 8 Jan 2020 14:56:52 +0000
Subject: [PATCH 2/4] gnu: Add python-ntlm-auth.

* gnu/packages/python-crypto.scm (python-ntlm-auth): New variable.
---
 gnu/packages/python-crypto.scm | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm
index a60ee6289d..61e1107248 100644
--- a/gnu/packages/python-crypto.scm
+++ b/gnu/packages/python-crypto.scm
@@ -1138,6 +1138,35 @@ package provides a tool to securely sign firmware images for booting by
 MCUboot.")
     (license license:expat)))
 
+(define-public python-ntlm-auth
+  (package
+    (name "python-ntlm-auth")
+    (version "1.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "ntlm-auth" version))
+       (sha256
+        (base32
+         "16mavidki4ma5ip8srqalr19gz4f5yn3cnmmgps1fmgfr24j63rm"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-cryptography" ,python-cryptography)))
+    (home-page "https://github.com/jborean93/ntlm-auth")
+    (synopsis
+      "Calculates NTLM Authentication codes")
+    (description
+      "This library handles the low-level details of NTLM authentication for
+use in authenticating with a service that uses NTLM.  It will create and parse
+the 3 different message types in the order required and produce a base64
+encoded value that can be attached to the HTTP header.
+
+The goal of this library is to offer full NTLM support including signing and
+sealing of messages as well as supporting MIC for message integrity and the
+ability to customise and set limits on the messages sent.  Please see Features
+and Backlog for a list of what is and is not currently supported.")
+    (license license:expat)))
+
 (define-public python-kerberos
   (package
     (name "python-kerberos")
-- 
2.24.1