unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [PATCHES] Add awscli and 7 pre-requisite Python libraries.
@ 2016-01-27 14:31 Dave Thompson
  2016-01-27 18:23 ` Efraim Flashner
  2016-02-01 22:28 ` Ludovic Courtès
  0 siblings, 2 replies; 4+ messages in thread
From: Dave Thompson @ 2016-01-27 14:31 UTC (permalink / raw)
  To: guix-devel

[-- Attachment #1: Type: text/plain, Size: 541 bytes --]

Here's a patch set I've been sitting on for awhile for the AWS CLI.  Do
note that the AWS APIs are not exclusive to Amazon.  Free software such
as Eucalyptus [0] and OpenStack also implement these APIs for
compatibility reasons, and both the boto library and awscli itself can
be used to manipulate them.  If this proves too controversial, I'd still
like to apply the first 6 uncontroversial patches. ;)

Thanks in advance for review.

- Dave

[0] https://support.eucalyptus.com/hc/en-us/articles/200844844-Usage-of-AWS-CLI-with-Eucalyptus


[-- Attachment #2: 0001-gnu-Add-python-colorama.patch --]
[-- Type: text/x-diff, Size: 2081 bytes --]

From 440d0afb9307bc01fb2804ee42e1e02a6d24039f Mon Sep 17 00:00:00 2001
From: David Thompson <dthompson@vistahigherlearning.com>
Date: Mon, 7 Dec 2015 16:18:35 -0500
Subject: [PATCH 1/8] gnu: Add python-colorama.

* gnu/packages/python.scm (python-colorama, python2-colorama): New
  variables.
---
 gnu/packages/python.scm | 27 ++++++++++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 813711a..a12709f 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -10,7 +10,7 @@
 ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015 Christopher Allan Webber <cwebber@dustycloud.org>
 ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
-;;; Copyright © 2015 David Thompson <davet@gnu.org>
+;;; Copyright © 2015, 2016 David Thompson <davet@gnu.org>
 ;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2015 Ben Woodcroft <donttrustben@gmail.com>
 ;;; Copyright © 2015, 2016 Erik Edrosa <erik.edrosa@gmail.com>
@@ -7252,3 +7252,28 @@ supports url redirection and retries, and also gzip and deflate decoding.")
 
 (define-public python2-urllib3
   (package-with-python2 python-urllib3))
+
+(define-public python-colorama
+  (package
+   (name "python-colorama")
+   (version "0.3.3")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (string-append
+           "https://pypi.python.org/packages/source/c/colorama/colorama-"
+           version ".tar.gz"))
+     (sha256
+      (base32
+       "1716z9pq1r5ys3nkg7wdrb3h2f9rmd0zdxpxzmx3bgwgf6xg48gb"))))
+   (build-system python-build-system)
+   (inputs
+    `(("python-setuptools" ,python-setuptools)))
+   (synopsis "colored terminal text rendering for Python")
+   (description "Colorama is a Python library for rendering colored terminal
+text.")
+   (home-page "https://pypi.python.org/pypi/colorama")
+   (license bsd-3)))
+
+(define-public python2-colorama
+  (package-with-python2 python-colorama))
-- 
2.6.3


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0002-gnu-Add-python-rsa.patch --]
[-- Type: text/x-diff, Size: 1585 bytes --]

From f66c61d088008b17c9c0a88936eb2adbb5d3ef94 Mon Sep 17 00:00:00 2001
From: David Thompson <dthompson@vistahigherlearning.com>
Date: Mon, 7 Dec 2015 16:19:35 -0500
Subject: [PATCH 2/8] gnu: Add python-rsa.

* gnu/packages/python.scm (python-rsa, python2-rsa): New variables.
---
 gnu/packages/python.scm | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index a12709f..6bdca89 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -7277,3 +7277,31 @@ text.")
 
 (define-public python2-colorama
   (package-with-python2 python-colorama))
+
+(define-public python-rsa
+  (package
+   (name "python-rsa")
+   (version "3.2")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (string-append
+           "https://pypi.python.org/packages/source/r/rsa/rsa-"
+           version ".tar.gz"))
+     (sha256
+      (base32
+       "0xwp929g7lvb1sghxfpqlxvgg96qcwqdbhh27sjplx30n3xp3wrh"))))
+   (build-system python-build-system)
+   (inputs
+    `(("python-pyasn1" ,python-pyasn1)
+      ("python-setuptools" ,python-setuptools)))
+   (synopsis "Pure-Python RSA implementation")
+   (description "Python-RSA is a pure-Python RSA implementation.  It supports
+encryption and decryption, signing and verifying signatures, and key
+generation according to PKCS#1 version 1.5.  It can be used as a Python
+library as well as on the command line.")
+   (home-page "http://stuvel.eu/rsa")
+   (license asl2.0)))
+
+(define-public python2-rsa
+  (package-with-python2 python-rsa))
-- 
2.6.3


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #4: 0003-gnu-Add-python-pluggy.patch --]
[-- Type: text/x-diff, Size: 1398 bytes --]

From 5994ce30c27b2c2e5d643cf63aa6c91c649edf31 Mon Sep 17 00:00:00 2001
From: David Thompson <dthompson@vistahigherlearning.com>
Date: Mon, 7 Dec 2015 16:20:07 -0500
Subject: [PATCH 3/8] gnu: Add python-pluggy.

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

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 6bdca89..2175b79 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -7305,3 +7305,25 @@ library as well as on the command line.")
 
 (define-public python2-rsa
   (package-with-python2 python-rsa))
+
+(define-public python-pluggy
+  (package
+   (name "python-pluggy")
+   (version "0.3.1")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (string-append
+           "https://pypi.python.org/packages/source/p/pluggy/pluggy-"
+           version ".tar.gz"))
+     (sha256
+      (base32
+       "18qfzfm40bgx672lkg8q9x5hdh76n7vax99aank7vh2nw21wg70m"))))
+   (build-system python-build-system)
+   (inputs
+    `(("python-setuptools" ,python-setuptools)))
+   (synopsis "Plugin and hook calling mechanism for Python")
+   (description "Pluggy is an extraction of the plugin manager as used by
+Pytest but stripped of Pytest specific details.")
+   (home-page "https://pypi.python.org/pypi/pluggy")
+   (license license:expat)))
-- 
2.6.3


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #5: 0004-gnu-Add-python-tox.patch --]
[-- Type: text/x-diff, Size: 1823 bytes --]

From 89818bbd5db9cf91ae90b4f3143c87ed9296a7bd Mon Sep 17 00:00:00 2001
From: David Thompson <dthompson@vistahigherlearning.com>
Date: Mon, 7 Dec 2015 16:20:35 -0500
Subject: [PATCH 4/8] gnu: Add python-tox.

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

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 2175b79..c63e38e 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -7327,3 +7327,34 @@ library as well as on the command line.")
 Pytest but stripped of Pytest specific details.")
    (home-page "https://pypi.python.org/pypi/pluggy")
    (license license:expat)))
+
+(define-public python-tox
+  (package
+   (name "python-tox")
+   (version "2.3.1")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (string-append
+           "https://pypi.python.org/packages/source/t/tox/tox-"
+           version ".tar.gz"))
+     (sha256
+      (base32
+       "1vj73ar4rimq3fwy5r2z3jv4g9qbh8rmpmncsc00g0k310acqzxz"))))
+   (build-system python-build-system)
+   (arguments
+    '(#:tests? #f))
+   (inputs
+    `(("python-setuptools" ,python-setuptools)
+      ("python-pluggy" ,python-pluggy)
+      ("python-py" ,python-py)
+      ("python-virtualenv" ,python-virtualenv)
+      ("python-pytest" ,python-pytest)))
+   (home-page "http://tox.testrun.org/")
+   (synopsis "Virtualenv-based automation of test activities")
+   (description "Tox is a generic virtualenv management and test command line
+tool.  It can be used to check that a package installs correctly with
+different Python versions and interpreters, or run tests in each type of
+supported environment, or act as a frontend to continuous integration
+servers.")
+   (license license:expat)))
-- 
2.6.3


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #6: 0005-gnu-Add-python-wheel.patch --]
[-- Type: text/x-diff, Size: 1610 bytes --]

From 24950904587c4d1ae59a75954230383bd242f155 Mon Sep 17 00:00:00 2001
From: David Thompson <dthompson@vistahigherlearning.com>
Date: Mon, 7 Dec 2015 16:21:41 -0500
Subject: [PATCH 5/8] gnu: Add python-wheel.

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

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index c63e38e..f4f02e8 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -7358,3 +7358,29 @@ different Python versions and interpreters, or run tests in each type of
 supported environment, or act as a frontend to continuous integration
 servers.")
    (license license:expat)))
+
+(define-public python-wheel
+  (package
+   (name "python-wheel")
+   (version "0.26.0")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (string-append
+           "https://pypi.python.org/packages/source/w/wheel/wheel-"
+           version ".tar.gz"))
+     (sha256
+      (base32
+       "032k1ajijbqnv0z0k88bhf75mdimi18fcmm28mss90610lw3bbga"))))
+   (build-system python-build-system)
+   (arguments
+    '(#:tests? #f))
+   (inputs
+    `(("python-setuptools" ,python-setuptools)))
+   (home-page "https://bitbucket.org/pypa/wheel/")
+   (synopsis "A built-package format for Python")
+   (description "A wheel is a ZIP-format archive with a specially formatted
+filename and the .whl extension.  It is designed to contain all the files for
+a PEP 376 compatible install in a way that is very close to the on-disk
+format.")
+   (license license:expat)))
-- 
2.6.3


[-- Attachment #7: 0006-gnu-Add-python-jmespath.patch --]
[-- Type: text/x-diff, Size: 1564 bytes --]

From 9970f4fe9f8672f33778f7dbc2d751f8ca67cfd8 Mon Sep 17 00:00:00 2001
From: David Thompson <dthompson@vistahigherlearning.com>
Date: Mon, 7 Dec 2015 16:22:00 -0500
Subject: [PATCH 6/8] gnu: Add python-jmespath.

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

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index f4f02e8..09035d5 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -7384,3 +7384,26 @@ filename and the .whl extension.  It is designed to contain all the files for
 a PEP 376 compatible install in a way that is very close to the on-disk
 format.")
    (license license:expat)))
+
+(define-public python-jmespath
+  (package
+   (name "python-jmespath")
+   (version "0.9.0")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (string-append
+           "https://pypi.python.org/packages/source/j/jmespath/jmespath-"
+           version ".tar.gz"))
+     (sha256
+      (base32
+       "0g9xvl69y7nr3w7ag4fsp6sm4fqf6vrqjw7504x2hzrrsh3ampq8"))))
+   (build-system python-build-system)
+   (inputs
+    `(("python-setuptools" ,python-setuptools)))
+   (synopsis "JSON Matching Expressions")
+   (description "JMESPath (pronounced “james path”) is a Python library that
+allows one to declaratively specify how to extract elements from a JSON
+document.")
+   (home-page "https://github.com/jmespath/jmespath.py")
+   (license license:expat)))
-- 
2.6.3


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #8: 0007-gnu-Add-python-botocore.patch --]
[-- Type: text/x-diff, Size: 1729 bytes --]

From 386e5c60a3725db2d13ca1017d6d8472b0c851f5 Mon Sep 17 00:00:00 2001
From: David Thompson <dthompson@vistahigherlearning.com>
Date: Mon, 7 Dec 2015 16:22:20 -0500
Subject: [PATCH 7/8] gnu: Add python-botocore.

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

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 09035d5..02dc6c3 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -7407,3 +7407,32 @@ allows one to declaratively specify how to extract elements from a JSON
 document.")
    (home-page "https://github.com/jmespath/jmespath.py")
    (license license:expat)))
+
+(define-public python-botocore
+  (package
+   (name "python-botocore")
+   (version "1.3.17")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (string-append
+           "https://pypi.python.org/packages/source/b/botocore/botocore-"
+           version ".tar.gz"))
+     (sha256
+      (base32
+       "08vpvdixx1c1lfv6vzjig68bpiir7wfyhzf49ysxgvhbprg5ra0w"))))
+   (build-system python-build-system)
+   (inputs
+    `(("python-dateutil" ,python-dateutil-2)
+      ("python-docutils" ,python-docutils)
+      ("python-mock" ,python-mock)
+      ("python-nose" ,python-nose)
+      ("python-setuptools" ,python-setuptools)
+      ("python-tox" ,python-tox)
+      ("python-wheel" ,python-wheel)
+      ("python-jmespath" ,python-jmespath)))
+   (home-page "https://github.com/boto/botocore")
+   (synopsis "Low-level interface to AWS")
+   (description "Botocore is a Python library that provides a low-level
+interface to the Amazon Web Services (AWS) API.")
+   (license asl2.0)))
-- 
2.6.3


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #9: 0008-gnu-Add-awscli.patch --]
[-- Type: text/x-diff, Size: 1721 bytes --]

From d7b7f9cb214663d2c1e16e38152b7123ea83bb92 Mon Sep 17 00:00:00 2001
From: David Thompson <dthompson@vistahigherlearning.com>
Date: Mon, 7 Dec 2015 16:22:39 -0500
Subject: [PATCH 8/8] gnu: Add awscli.

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

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 02dc6c3..22b9311 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -7436,3 +7436,34 @@ document.")
    (description "Botocore is a Python library that provides a low-level
 interface to the Amazon Web Services (AWS) API.")
    (license asl2.0)))
+
+(define-public awscli
+  (package
+   (name "awscli")
+   (version "1.9.17")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (string-append
+           "https://pypi.python.org/packages/source/a/awscli/awscli-"
+           version ".tar.gz"))
+     (sha256
+      (base32
+       "1nj7jqvlpq57hfhby1njsbf8303gapa3njc4dramr6p3ffzvfi2i"))))
+   (build-system python-build-system)
+   (inputs
+    `(("python-colorama" ,python-colorama)
+      ("python-docutils" ,python-docutils)
+      ("python-mock" ,python-mock)
+      ("python-nose" ,python-nose)
+      ("python-rsa" ,python-rsa)
+      ("python-setuptools" ,python-setuptools)
+      ("python-sphinx" ,python-sphinx)
+      ("python-tox" ,python-tox)
+      ("python-wheel" ,python-wheel)
+      ("python-botocore" ,python-botocore)))
+   (home-page "http://aws.amazon.com/cli/")
+   (synopsis "Command line client for AWS")
+   (description "AWS CLI provides a unified command line interface to Amazon
+Web Services (AWS).")
+   (license asl2.0)))
-- 
2.6.3


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCHES] Add awscli and 7 pre-requisite Python libraries.
  2016-01-27 14:31 [PATCHES] Add awscli and 7 pre-requisite Python libraries Dave Thompson
@ 2016-01-27 18:23 ` Efraim Flashner
  2016-02-01 22:28 ` Ludovic Courtès
  1 sibling, 0 replies; 4+ messages in thread
From: Efraim Flashner @ 2016-01-27 18:23 UTC (permalink / raw)
  To: Dave Thompson; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 1406 bytes --]

On Wed, 27 Jan 2016 09:31:03 -0500
Dave Thompson <dthompson2@worcester.edu> wrote:

> Here's a patch set I've been sitting on for awhile for the AWS CLI.  Do
> note that the AWS APIs are not exclusive to Amazon.  Free software such
> as Eucalyptus [0] and OpenStack also implement these APIs for
> compatibility reasons, and both the boto library and awscli itself can
> be used to manipulate them.  If this proves too controversial, I'd still
> like to apply the first 6 uncontroversial patches. ;)
> 
> Thanks in advance for review.
> 
> - Dave
> 
> [0] https://support.eucalyptus.com/hc/en-us/articles/200844844-Usage-of-AWS-CLI-with-Eucalyptus
> 

The urls of the packages could use the pypi-uri format.
Other than python-rsa which has python2-rsa which for sure needs
python2-setuptools, do the other packages actually need python-setuptools to
build?
python-tox: there are no test targets?
python-wheel: We actually already have this in python.scm :)
python-awscli: The description only mentions aws but you said at the top that
it works with a bunch of other services/providers that also implemented the
APIs. That should probably be added to the description.

-- 
Efraim Flashner   <efraim@flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCHES] Add awscli and 7 pre-requisite Python libraries.
  2016-01-27 14:31 [PATCHES] Add awscli and 7 pre-requisite Python libraries Dave Thompson
  2016-01-27 18:23 ` Efraim Flashner
@ 2016-02-01 22:28 ` Ludovic Courtès
  2016-02-02 14:26   ` Thompson, David
  1 sibling, 1 reply; 4+ messages in thread
From: Ludovic Courtès @ 2016-02-01 22:28 UTC (permalink / raw)
  To: Dave Thompson; +Cc: guix-devel

Dave Thompson <dthompson2@worcester.edu> skribis:

> Here's a patch set I've been sitting on for awhile for the AWS CLI.  Do
> note that the AWS APIs are not exclusive to Amazon.  Free software such
> as Eucalyptus [0] and OpenStack also implement these APIs for
> compatibility reasons, and both the boto library and awscli itself can
> be used to manipulate them.

I think it’s OK to include AWS clients.  After all, AWS is essentially a
“hosting service”, it’s not SaaSS or anything directly conflicting with
our goals and the GNU FSDG.

> If this proves too controversial, I'd still like to apply the first 6
> uncontroversial patches. ;)

Nothing to add to what Efraim already said.  Except that, now that Tox
gets in, you’ll have to add Guix-Tox.  ;-)

Thanks!

Ludo’.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCHES] Add awscli and 7 pre-requisite Python libraries.
  2016-02-01 22:28 ` Ludovic Courtès
@ 2016-02-02 14:26   ` Thompson, David
  0 siblings, 0 replies; 4+ messages in thread
From: Thompson, David @ 2016-02-02 14:26 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

On Mon, Feb 1, 2016 at 5:28 PM, Ludovic Courtès <ludo@gnu.org> wrote:
> Dave Thompson <dthompson2@worcester.edu> skribis:
>
>> Here's a patch set I've been sitting on for awhile for the AWS CLI.  Do
>> note that the AWS APIs are not exclusive to Amazon.  Free software such
>> as Eucalyptus [0] and OpenStack also implement these APIs for
>> compatibility reasons, and both the boto library and awscli itself can
>> be used to manipulate them.
>
> I think it’s OK to include AWS clients.  After all, AWS is essentially a
> “hosting service”, it’s not SaaSS or anything directly conflicting with
> our goals and the GNU FSDG.

Thanks for the clarification!  Much appreciated.

>> If this proves too controversial, I'd still like to apply the first 6
>> uncontroversial patches. ;)
>
> Nothing to add to what Efraim already said.  Except that, now that Tox
> gets in, you’ll have to add Guix-Tox.  ;-)

:)

Efraim, I incorporated most of your suggestions, but the Tox test
suite remains disabled with a "FIXME" above it because it requires a
more recent version of pytest than we have, but upgrading the existing
pytest package causes breakage.  That's a task for another day!

Pushed everything, sans the redundant python-wheel patch.  Thanks!

- Dave

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-02-02 14:26 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-01-27 14:31 [PATCHES] Add awscli and 7 pre-requisite Python libraries Dave Thompson
2016-01-27 18:23 ` Efraim Flashner
2016-02-01 22:28 ` Ludovic Courtès
2016-02-02 14:26   ` Thompson, David

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).