* [PATCH 0/1] Split acme into both Python variants
@ 2015-12-21 19:32 Leo Famulari
2015-12-21 19:32 ` [PATCH 1/1] gnu: Split acme into python-acme and python2-acme Leo Famulari
2015-12-30 15:45 ` [PATCH 0/1] Split acme into both Python variants Ludovic Courtès
0 siblings, 2 replies; 4+ messages in thread
From: Leo Famulari @ 2015-12-21 19:32 UTC (permalink / raw)
To: guix-devel
This patch splits the acme library into both Python variants. Currently,
its only user in Guix is the Python 2 official Let's Encrypt client, but
there is other software out there that supports Python 3.
I tried and tried to make the python2-acme version inherit more from
python-acme but this is what I got working.
I did try to apply the solution used in python2-pyopenssl and
python2-oauthlib [0] but I couldn't make it work. I think the issue is
that python2-acme uses both python2-pyopenssl and python2-cryptography,
so there are multiple layers of translation to watch out for.
Suggestions welcome!
I think we should keep these in the same module as letsencrypt, because
it will make it easier to remember to update them together, which
appears to be necessary.
[0]
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22013
Leo Famulari (1):
gnu: Split acme into python-acme and python2-acme.
gnu/packages/tls.scm | 82 +++++++++++++++++++++++++++++++---------------------
1 file changed, 49 insertions(+), 33 deletions(-)
--
2.6.2
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 1/1] gnu: Split acme into python-acme and python2-acme.
2015-12-21 19:32 [PATCH 0/1] Split acme into both Python variants Leo Famulari
@ 2015-12-21 19:32 ` Leo Famulari
2015-12-30 15:45 ` [PATCH 0/1] Split acme into both Python variants Ludovic Courtès
1 sibling, 0 replies; 4+ messages in thread
From: Leo Famulari @ 2015-12-21 19:32 UTC (permalink / raw)
To: guix-devel
* gnu/packages/tls.scm (acme): Split variable into...
* gnu/packages/tls.scm (python-acme, python2-acme): ...both
Python variants.
* gnu/packages/tls.scm (letsencrypt)[propagated-inputs]: Update user of
renamed variable.
---
gnu/packages/tls.scm | 82 +++++++++++++++++++++++++++++++---------------------
1 file changed, 49 insertions(+), 33 deletions(-)
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index 5789534..68d27a1 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -348,38 +348,6 @@ security, and applying best practice development processes.")
"file://COPYING"
"See COPYING in the distribution.")))))
-(define-public acme
- (package
- (name "acme")
- (version "0.1.1")
- (source (origin
- (method url-fetch)
- (uri (pypi-uri "acme" version))
- (sha256
- (base32
- "1yv0gy8akaqp5p2wjpfj8r5i0da04a9qdmlh06rczdkrmk6q680w"))))
- (build-system python-build-system)
- (arguments
- `(#:python ,python-2))
- ;; TODO: Add optional inputs for testing and building documentation.
- (native-inputs
- `(("python2-mock" ,python2-mock)
- ("python2-setuptools" ,python2-setuptools)))
- (propagated-inputs
- `(("python2-ndg-httpsclient" ,python2-ndg-httpsclient)
- ("python2-werkzeug" ,python2-werkzeug)
- ("python2-six" ,python2-six)
- ("python2-requests" ,python2-requests)
- ("python2-pytz" ,python2-pytz)
- ("python2-pyrfc3339" ,python2-pyrfc3339)
- ("python2-pyasn1" ,python2-pyasn1)
- ("python2-cryptography" ,python2-cryptography)
- ("python2-pyopenssl" ,python2-pyopenssl)))
- (home-page "https://github.com/letsencrypt/letsencrypt")
- (synopsis "ACME protocol implementation in Python")
- (description "ACME protocol implementation in Python")
- (license license:asl2.0)))
-
(define-public letsencrypt
(package
(name "letsencrypt")
@@ -398,7 +366,7 @@ security, and applying best practice development processes.")
`(("python2-nose" ,python2-nose)
("python2-mock" ,python2-mock)))
(propagated-inputs
- `(("acme" ,acme)
+ `(("python2-acme" ,python2-acme)
("python2-zope-interface" ,python2-zope-interface)
("python2-pythondialog" ,python2-pythondialog)
("python2-pyrfc3339" ,python2-pyrfc3339)
@@ -461,3 +429,51 @@ finally access to the SSL api of the SSLeay/OpenSSL package so you can write
servers or clients for more complicated applications.")
(license (package-license perl))
(home-page "http://search.cpan.org/~mikem/Net-SSLeay-1.66/")))
+
+(define-public python-acme
+ (package
+ (name "python-acme")
+ (version "0.1.1")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "acme" version))
+ (sha256
+ (base32
+ "1yv0gy8akaqp5p2wjpfj8r5i0da04a9qdmlh06rczdkrmk6q680w"))))
+ (build-system python-build-system)
+ ;; TODO: Add optional inputs for testing and building documentation.
+ (native-inputs
+ `(("python-mock" ,python-mock)
+ ("python-setuptools" ,python-setuptools)))
+ (propagated-inputs
+ `(("python-ndg-httpsclient" ,python-ndg-httpsclient)
+ ("python-werkzeug" ,python-werkzeug)
+ ("python-six" ,python-six)
+ ("python-requests" ,python-requests)
+ ("python-pytz" ,python-pytz)
+ ("python-pyrfc3339" ,python-pyrfc3339)
+ ("python-pyasn1" ,python-pyasn1)
+ ("python-cryptography" ,python-cryptography)
+ ("python-pyopenssl" ,python-pyopenssl)))
+ (home-page "https://github.com/letsencrypt/letsencrypt")
+ (synopsis "ACME protocol implementation in Python")
+ (description "ACME protocol implementation in Python")
+ (license license:asl2.0)))
+
+(define-public python2-acme
+ (package (inherit python-acme)
+ (name "python2-acme")
+ (arguments `(#:python ,python-2))
+ (native-inputs
+ `(("python2-mock" ,python2-mock)
+ ("python2-setuptools" ,python2-setuptools)))
+ (propagated-inputs
+ `(("python2-cryptography" ,python2-cryptography)
+ ("python2-ndg-httpsclient" ,python2-ndg-httpsclient)
+ ("python2-werkzeug" ,python2-werkzeug)
+ ("python2-six" ,python2-six)
+ ("python2-requests" ,python2-requests)
+ ("python2-pytz" ,python2-pytz)
+ ("python2-pyrfc3339" ,python2-pyrfc3339)
+ ("python2-pyasn1" ,python2-pyasn1)
+ ("python2-pyopenssl" ,python2-pyopenssl)))))
--
2.6.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 0/1] Split acme into both Python variants
2015-12-21 19:32 [PATCH 0/1] Split acme into both Python variants Leo Famulari
2015-12-21 19:32 ` [PATCH 1/1] gnu: Split acme into python-acme and python2-acme Leo Famulari
@ 2015-12-30 15:45 ` Ludovic Courtès
2015-12-31 5:25 ` Leo Famulari
1 sibling, 1 reply; 4+ messages in thread
From: Ludovic Courtès @ 2015-12-30 15:45 UTC (permalink / raw)
To: Leo Famulari; +Cc: guix-devel
Leo Famulari <leo@famulari.name> skribis:
> This patch splits the acme library into both Python variants. Currently,
> its only user in Guix is the Python 2 official Let's Encrypt client, but
> there is other software out there that supports Python 3.
Sounds reasonable.
> I tried and tried to make the python2-acme version inherit more from
> python-acme but this is what I got working.
>
> I did try to apply the solution used in python2-pyopenssl and
> python2-oauthlib [0] but I couldn't make it work. I think the issue is
> that python2-acme uses both python2-pyopenssl and python2-cryptography,
> so there are multiple layers of translation to watch out for.
>
> Suggestions welcome!
What did you try exactly? The workaround is to explicitly list
dependencies instead of using those computed by ‘package-with-python2’.
HTH,
Ludo'.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 0/1] Split acme into both Python variants
2015-12-30 15:45 ` [PATCH 0/1] Split acme into both Python variants Ludovic Courtès
@ 2015-12-31 5:25 ` Leo Famulari
0 siblings, 0 replies; 4+ messages in thread
From: Leo Famulari @ 2015-12-31 5:25 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: guix-devel
On Wed, Dec 30, 2015 at 04:45:04PM +0100, Ludovic Courtès wrote:
> Leo Famulari <leo@famulari.name> skribis:
>
> > This patch splits the acme library into both Python variants. Currently,
> > its only user in Guix is the Python 2 official Let's Encrypt client, but
> > there is other software out there that supports Python 3.
>
> Sounds reasonable.
>
> > I tried and tried to make the python2-acme version inherit more from
> > python-acme but this is what I got working.
> >
> > I did try to apply the solution used in python2-pyopenssl and
> > python2-oauthlib [0] but I couldn't make it work. I think the issue is
> > that python2-acme uses both python2-pyopenssl and python2-cryptography,
> > so there are multiple layers of translation to watch out for.
> >
> > Suggestions welcome!
>
> What did you try exactly? The workaround is to explicitly list
> dependencies instead of using those computed by ‘package-with-python2’.
Despite trying the variations below, the build process kept failing as
described by Efraim in bug#22013 [0].
Here are the variations that I tested, based on reading python.scm:
(define-public python2-acme
(let ((acme (package-with-python2 python-acme)))
(package (inherit acme)
(propagated-inputs
`(("python2-cryptography" ,python2-cryptography)
,@(alist-delete "python-cryptography"
(package-propagated-inputs acme)))))))
(define-public python2-acme
(let ((acme (package-with-python2 python-acme)))
(package (inherit acme)
(propagated-inputs
`(("python2-pyopenssl" ,python2-pyopenssl)
("python2-cryptography" ,python2-cryptography)
,@(fold alist-delete (package-propagated-inputs acme)
'("python-pyopenssl" "python-cryptography")))))))
;; I don't understand this one
(define-public python2-acme
(let ((acme (package-with-python2 python-acme)))
(package (inherit acme)
(propagated-inputs
`(("python2-cryptography" ,python2-cryptography)
("python2-pyopenssl" ,python2-pyopenssl)
,@(alist-delete "python-pyopenssl"
(alist-delete "python-cryptography"
(package-propagated-inputs acme))))))))
[0]
http://lists.gnu.org/archive/html/bug-guix/2015-11/msg00124.html
>
> HTH,
> Ludo'.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-12-31 5:25 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-12-21 19:32 [PATCH 0/1] Split acme into both Python variants Leo Famulari
2015-12-21 19:32 ` [PATCH 1/1] gnu: Split acme into python-acme and python2-acme Leo Famulari
2015-12-30 15:45 ` [PATCH 0/1] Split acme into both Python variants Ludovic Courtès
2015-12-31 5:25 ` Leo Famulari
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.