On Fri, 11 Dec 2015 15:15:35 +0100
Ricardo Wurmus <ricardo.wur...@mdc-berlin.de> wrote:

> Efraim Flashner <efr...@flashner.co.il> writes:
> 
>  [...]  
> 
>  [...]  
> 
>  [...]  
>  
>  [...]  
>  
>  [...]  
>  
> >  (define-public python2-oslo.utils
> >    (package-with-python2 python-oslo.utils))
> > +
> > +(define-public python-keystoneclient
> > +  (package
> > +    (name "python-keystoneclient")
> > +    (version "1.8.1")
> > +    (source
> > +      (origin
> > +        (method url-fetch)
> > +        (uri (pypi-uri "python-keystoneclient" version))
> > +        (sha256
> > +          (base32
> > +           "1w4csvkah67rfpxylxnvs2s3594i0f9isy8pf4gnsqs5zirvjaa4"))))  
> 
> The indentation is a bit off.  If this was the only thing I could fix
> this before pushing, but I still have some other comments.
> 
> > +  (build-system python-build-system)
> > +  (native-inputs
> > +   `(("python-setuptools" ,python-setuptools)
> > +     ;; and some packages for the tests
> > +     ("openssl" ,openssl)
> > +     ("python-coverage" ,python-coverage)
> > +     ("python-discover" ,python-discover)
> > +     ("python-fixtures" ,python-fixtures)
> > +     ("python-hacking" ,python-hacking)
> > +     ("python-keyring" ,python-keyring)
> > +     ("python-lxml" ,python-lxml)
> > +     ("python-mock" ,python-mock)
> > +     ("python-mox3" ,python-mox3)
> > +     ("python-oauthlib" ,python-oauthlib)
> > +     ("python-oslosphinx" ,python-oslosphinx)
> > +     ("python-oslotest" ,python-oslotest)
> > +     ("python-pycrypto" ,python-pycrypto)
> > +     ("python-requests-mock" ,python-requests-mock)
> > +     ("python-sphinx" ,python-sphinx)  
> 
> This doesn’t look like it’s needed for the tests.  Maybe you could move
> it above the comment (or remove the comment)?

Do you mean python-sphinx or all of the above? (Just read the next one about
python-sphinx being for documentation, moved that one.) Openssl isn't a
declared test dependency, but testing failed without it.

> 
> > +     ("python-temptest-lib" ,python-tempest-lib)
> > +     ("python-testrepository" ,python-testrepository)
> > +     ("python-testresources" ,python-testresources)
> > +     ("python-testtools" ,python-testtools)
> > +     ("python-webob" ,python-webob)))  
> 
> Wow!  That’s a very long list of test dependencies.  Thanks for your
> patience in tracking them down rather than taking the easy route of
> disabling tests!

Openstack is pretty good about declaring dependencies, with both a
requirements.txt and a test-requirements.txt in the source tree, and that
helped a lot.
https://git.openstack.org/cgit/openstack/python-keystoneclient/tree/?h=1.8.1

> 
> > +  (propagated-inputs
> > +   `(("python-babel" ,python-babel)
> > +     ("python-debtcollector" ,python-debtcollector)
> > +     ("python-iso8601" ,python-iso8601)
> > +     ("python-netaddr" ,python-netaddr)
> > +     ("python-oslo.config" ,python-oslo.config)
> > +     ("python-oslo.i18n" ,python-oslo.i18n)
> > +     ("python-oslo.serialization" ,python-oslo.serialization)
> > +     ("python-oslo.utils" ,python-oslo.utils)
> > +     ("python-pbr" ,python-pbr)
> > +     ("python-prettytable" ,python-prettytable)
> > +     ("python-requests" ,python-requests)
> > +     ("python-six" ,python-six)
> > +     ("python-stevedore" ,python-stevedore)))
> > +  (home-page "http://www.openstack.org/";)
> > +  (synopsis "Client Library for OpenStack Identity")
> > +  (description
> > +   "Python-keystoneclient is the identity service used by OpenStack for
> > +authentication (authN) and high-level authorization (authZ).  It currently
> > +supports token-based authN with user/service authZ, and is scalable to 
> > support
> > +OAuth, SAML, and OpenID in future versions.  Out of the box, Keystone uses
> > +SQLite for its identity store database, with the option to connect to 
> > external
> > +LDAP.")  
> 
> I wonder: if it does uses Sqlite by default, how come sqlite is not
> among the inputs?  Does it bundle sqlite sources?  Or does it just fail
> by default unless sqlite is installed?
> 

It doesn't bundle sqlite, and it looks like the included description doesn't
differentiate too much between keystone and keystoneclient. As per the name,
keystoneclient connects to keystone, which would need sqlite.

> > +  (license asl2.0)))
> > +
> > +(define-public python2-keystoneclient
> > +  (let ((keystoneclient (package-with-python2 python-keystoneclient)))
> > +    (package (inherit keystoneclient)
> > +      (native-inputs
> > +       `(("python2-oauthlib" ,python2-oauthlib)
> > +         ,@(alist-delete
> > +            "python-oauthlib"
> > +            (package-native-inputs keystoneclient)))))))  
> 
> Okay!
> 
> ~~ Ricardo

2.0.0 was tagged about 4 weeks ago, but it ended up needing more packages
packaged and more dependencies updated and it looks like a project for
another time.

-- 
Efraim Flashner   <efr...@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
From 63b7c408bfd97a79554907f527469ab93826d390 Mon Sep 17 00:00:00 2001
From: Efraim Flashner <efr...@flashner.co.il>
Date: Mon, 23 Nov 2015 20:29:12 +0200
Subject: [PATCH 1/9] gnu: Add python-keystoneclient.

* gnu/packages/openstack.scm (python-keystoneclient)
(python2-keystoneclient): New variables.
---
 gnu/packages/openstack.scm | 73 +++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 72 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index 2578292..32507ad 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -19,12 +19,14 @@
 
 (define-module (gnu packages openstack)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages tls)
   #:use-module (gnu packages version-control)
   #:use-module (guix build-system python)
   #:use-module (guix download)
   #:use-module ((guix licenses)
                 #:select (asl2.0))
-  #:use-module (guix packages))
+  #:use-module (guix packages)
+  #:use-module (srfi srfi-1))
 
 (define-public python-bandit
   (package
@@ -679,3 +681,72 @@ handling.")
 
 (define-public python2-oslo.utils
   (package-with-python2 python-oslo.utils))
+
+(define-public python-keystoneclient
+  (package
+    (name "python-keystoneclient")
+    (version "1.8.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "python-keystoneclient" version))
+        (sha256
+         (base32
+          "1w4csvkah67rfpxylxnvs2s3594i0f9isy8pf4gnsqs5zirvjaa4"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-setuptools" ,python-setuptools)
+       ("python-sphinx" ,python-sphinx)
+       ;; and some packages for the tests
+       ("openssl" ,openssl)
+       ("python-coverage" ,python-coverage)
+       ("python-discover" ,python-discover)
+       ("python-fixtures" ,python-fixtures)
+       ("python-hacking" ,python-hacking)
+       ("python-keyring" ,python-keyring)
+       ("python-lxml" ,python-lxml)
+       ("python-mock" ,python-mock)
+       ("python-mox3" ,python-mox3)
+       ("python-oauthlib" ,python-oauthlib)
+       ("python-oslosphinx" ,python-oslosphinx)
+       ("python-oslotest" ,python-oslotest)
+       ("python-pycrypto" ,python-pycrypto)
+       ("python-requests-mock" ,python-requests-mock)
+       ("python-temptest-lib" ,python-tempest-lib)
+       ("python-testrepository" ,python-testrepository)
+       ("python-testresources" ,python-testresources)
+       ("python-testtools" ,python-testtools)
+       ("python-webob" ,python-webob)))
+    (propagated-inputs
+     `(("python-babel" ,python-babel)
+       ("python-debtcollector" ,python-debtcollector)
+       ("python-iso8601" ,python-iso8601)
+       ("python-netaddr" ,python-netaddr)
+       ("python-oslo.config" ,python-oslo.config)
+       ("python-oslo.i18n" ,python-oslo.i18n)
+       ("python-oslo.serialization" ,python-oslo.serialization)
+       ("python-oslo.utils" ,python-oslo.utils)
+       ("python-pbr" ,python-pbr)
+       ("python-prettytable" ,python-prettytable)
+       ("python-requests" ,python-requests)
+       ("python-six" ,python-six)
+       ("python-stevedore" ,python-stevedore)))
+    (home-page "http://www.openstack.org/";)
+    (synopsis "Client Library for OpenStack Identity")
+    (description
+     "Python-keystoneclient is the identity service used by OpenStack for
+authentication (authN) and high-level authorization (authZ).  It currently
+supports token-based authN with user/service authZ, and is scalable to support
+OAuth, SAML, and OpenID in future versions.  Out of the box, Keystone uses
+SQLite for its identity store database, with the option to connect to external
+LDAP.")
+    (license asl2.0)))
+
+(define-public python2-keystoneclient
+  (let ((keystoneclient (package-with-python2 python-keystoneclient)))
+    (package (inherit keystoneclient)
+      (native-inputs
+       `(("python2-oauthlib" ,python2-oauthlib)
+         ,@(alist-delete
+            "python-oauthlib"
+            (package-native-inputs keystoneclient)))))))
-- 
2.6.4

Attachment: pgpCTJPTiIG_M.pgp
Description: OpenPGP digital signature

Reply via email to