* [PATCH] Add Gajim.
@ 2015-09-23 19:55 Ricardo Wurmus
2015-09-24 2:59 ` Mark H Weaver
0 siblings, 1 reply; 3+ messages in thread
From: Ricardo Wurmus @ 2015-09-23 19:55 UTC (permalink / raw)
To: guix-devel
[-- Attachment #1: Type: text/plain, Size: 317 bytes --]
Hi Guix,
this patch series adds the XMPP client Gajim. PGP support only works
with the “classic” GnuPG (version 1.4).
I had to disable a few tests in pyOpenSSL and python-gnupg. The vast
majority of the tests pass, though, and I’ve been using Gajim with GnuPG
successfully for almost two days.
~~ Ricardo
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-python-cffi-Update-to-1.2.1.patch --]
[-- Type: text/x-patch, Size: 1675 bytes --]
From da68312f5dfa26bf9d0bb93288b78c68c85c17ee Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Mon, 21 Sep 2015 22:41:53 +0200
Subject: [PATCH 01/11] gnu: python-cffi: Update to 1.2.1.
* gnu/packages/python.scm (python-cffi): Update to 1.2.1.
[native-inputs]: Add python-pytest.
[arguments]: Enable tests.
---
gnu/packages/python.scm | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 798a22f..9de366f 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -3390,14 +3390,14 @@ a front-end for C compilers or analysis tools.")
(define-public python-cffi
(package
(name "python-cffi")
- (version "0.8.6")
+ (version "1.2.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://pypi.python.org/packages/source/c/"
"cffi/cffi-" version ".tar.gz"))
(sha256
- (base32 "0406j3sgndmx88idv5zxkkrwfqxmjl18pj8gf47nsg4ymzixjci5"))))
+ (base32 "0g8yfzinry1vsj6d1jlnd19338bh92lhhk207ksy4lm1n3g73dga"))))
(build-system python-build-system)
(outputs '("out" "doc"))
(inputs
@@ -3407,10 +3407,10 @@ a front-end for C compilers or analysis tools.")
(native-inputs
`(("pkg-config" ,pkg-config)
("python-sphinx" ,python-sphinx)
+ ("python-pytest" ,python-pytest)
("python-setuptools" ,python-setuptools)))
(arguments
- `(#:tests? #f ; FIXME: requires pytest
- #:phases
+ `(#:phases
(alist-cons-after
'install 'install-doc
(lambda* (#:key outputs #:allow-other-keys)
--
2.5.0
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0002-gnu-Add-python-pyasn1.patch --]
[-- Type: text/x-patch, Size: 1479 bytes --]
From 8ba400c2392449095094613bd49de6c8dc750c62 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Mon, 21 Sep 2015 22:43:24 +0200
Subject: [PATCH 02/11] gnu: Add python-pyasn1.
* gnu/packages/python.scm (python-pyasn1, python2-pyasn1): New
variables.
---
gnu/packages/python.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 9de366f..40d31a7 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -4916,3 +4916,26 @@ printing of sub-tables by specifying a row range.")
(define-public python2-prettytable
(package-with-python2 python-prettytable))
+
+(define-public python-pyasn1
+ (package
+ (name "python-pyasn1")
+ (version "0.1.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://pypi.python.org/packages/source/p/"
+ "pyasn1/pyasn1-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0iw31d9l0zwx35szkzq72hiw002wnqrlrsi9dpbrfngcl1ybwcsx"))))
+ (build-system python-build-system)
+ (home-page "http://pyasn1.sourceforge.net/")
+ (synopsis "ASN.1 types and codecs")
+ (description
+ "This is an implementation of ASN.1 types and codecs in Python. It is
+suitable for a wide range of protocols based on the ASN.1 specification.")
+ (license bsd-2)))
+
+(define-public python2-pyasn1
+ (package-with-python2 python-pyasn1))
--
2.5.0
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #4: 0003-gnu-Add-python-ipaddress.patch --]
[-- Type: text/x-patch, Size: 1513 bytes --]
From b4c1ec4386cd6cde03cd616c1f34384cee99c74e Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Mon, 21 Sep 2015 22:44:02 +0200
Subject: [PATCH 03/11] gnu: Add python-ipaddress.
* gnu/packages/python.scm (python-ipaddress, python2-ipaddress): New
variables.
---
gnu/packages/python.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 40d31a7..0f0a162 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -4939,3 +4939,27 @@ suitable for a wide range of protocols based on the ASN.1 specification.")
(define-public python2-pyasn1
(package-with-python2 python-pyasn1))
+
+(define-public python-ipaddress
+ (package
+ (name "python-ipaddress")
+ (version "1.0.14")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://pypi.python.org/packages/source/i/"
+ "ipaddress/ipaddress-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0givid4963n57nsjibms2fc347zmcs188q1hw9al1dkc9kj4nvr2"))))
+ (build-system python-build-system)
+ (arguments `(#:tests? #f)) ; no tests
+ (home-page "https://github.com/phihag/ipaddress")
+ (synopsis "IP address manipulation library")
+ (description
+ "This is a port of the Python 3.3 ipaddress module to older versions of
+Python.")
+ (license psfl)))
+
+(define-public python2-ipaddress
+ (package-with-python2 python-ipaddress))
--
2.5.0
[-- Attachment #5: 0004-gnu-Add-python-idna.patch --]
[-- Type: text/x-patch, Size: 1843 bytes --]
From 1bb13ec51cc24f30b42df0a179d6ee59415235f4 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Mon, 21 Sep 2015 22:44:32 +0200
Subject: [PATCH 04/11] gnu: Add python-idna.
* gnu/packages/python.scm (python-idna, python2-idna): New variables.
---
gnu/packages/python.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 0f0a162..672c2c6 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -4963,3 +4963,33 @@ Python.")
(define-public python2-ipaddress
(package-with-python2 python-ipaddress))
+
+(define-public python-idna
+ (package
+ (name "python-idna")
+ (version "2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://pypi.python.org/packages/source/i/"
+ "idna/idna-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0frxgmgi234lr9hylg62j69j4ik5zhg0wz05w5dhyacbjfnrl68n"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-setuptools" ,python-setuptools)))
+ (home-page "https://github.com/kjd/idna")
+ (synopsis "Internationalized domain names in applications")
+ (description
+ "This is a library to support the Internationalised Domain Names in
+Applications (IDNA) protocol as specified in RFC 5891. This version of the
+protocol is often referred to as “IDNA2008” and can produce different results
+from the earlier standard from 2003. The library is also intended to act as a
+suitable drop-in replacement for the “encodings.idna” module that comes with
+the Python standard library but currently only supports the older 2003
+specification.")
+ (license bsd-4)))
+
+(define-public python2-idna
+ (package-with-python2 python-idna))
--
2.5.0
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #6: 0005-gnu-Add-python-pretend.patch --]
[-- Type: text/x-patch, Size: 1647 bytes --]
From 6bbf9b63616d4e3d4098e51ac1ea63ec95d5335e Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Mon, 21 Sep 2015 22:45:19 +0200
Subject: [PATCH 05/11] gnu: Add python-pretend.
* gnu/packages/python.scm (python-pretend, python2-pretend): New
variables.
---
gnu/packages/python.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 672c2c6..93e6a17 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -4993,3 +4993,30 @@ specification.")
(define-public python2-idna
(package-with-python2 python-idna))
+
+(define-public python-pretend
+ (package
+ (name "python-pretend")
+ (version "1.0.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://pypi.python.org/packages/source/p/"
+ "pretend/pretend-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0r5r7ygz9m6d2bklflbl84cqhjkc2q12xgis8268ygjh30g2q3wk"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-setuptools" ,python-setuptools)))
+ (home-page "https://github.com/alex/pretend")
+ (synopsis "Library for stubbing in Python")
+ (description
+ "Pretend is a library to make stubbing with Python easier. Stubbing is a
+technique for writing tests. You may hear the term mixed up with mocks,
+fakes, or doubles. Basically a stub is an object that returns pre-canned
+responses, rather than doing any computation.")
+ (license bsd-3)))
+
+(define-public python2-pretend
+ (package-with-python2 python-pretend))
--
2.5.0
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #7: 0006-gnu-Add-python-cryptography-vectors.patch --]
[-- Type: text/x-patch, Size: 1692 bytes --]
From e48b89c864fe59fe59b8a617f6600231d0effe55 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Mon, 21 Sep 2015 22:45:42 +0200
Subject: [PATCH 06/11] gnu: Add python-cryptography-vectors.
* gnu/packages/python.scm (python-cryptography-vectors,
python2-cryptography-vectors): New variables.
---
gnu/packages/python.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 93e6a17..17fa3ee 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -5020,3 +5020,29 @@ responses, rather than doing any computation.")
(define-public python2-pretend
(package-with-python2 python-pretend))
+
+(define-public python-cryptography-vectors
+ (package
+ (name "python-cryptography-vectors")
+ (version "1.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://pypi.python.org/packages/source/c/"
+ "cryptography-vectors/cryptography_vectors-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1i2chlyhlx4792di82fqzcy9wz0gnnc661bj46zr794ip4629sp4"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-setuptools" ,python-setuptools)))
+ (home-page "https://github.com/pyca/cryptography")
+ (synopsis "Test vectors for the cryptography package.")
+ (description
+ "This package contains test vectors for the cryptography package.")
+ ;; Distributed under either BSD-3 or ASL2.0
+ (license bsd-3)))
+
+(define-public python2-cryptography-vectors
+ (package-with-python2 python-cryptography-vectors))
--
2.5.0
[-- Attachment #8: 0007-gnu-Add-python-cryptography.patch --]
[-- Type: text/x-patch, Size: 2430 bytes --]
From 678b5402e9a226383abbd5d2e560d3f609d719e6 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Mon, 21 Sep 2015 22:46:11 +0200
Subject: [PATCH 07/11] gnu: Add python-cryptography.
* gnu/packages/python.scm (python-cryptography, python2-cryptography):
New variables.
---
gnu/packages/python.scm | 42 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 17fa3ee..728c8d4 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -5046,3 +5046,45 @@ responses, rather than doing any computation.")
(define-public python2-cryptography-vectors
(package-with-python2 python-cryptography-vectors))
+
+(define-public python-cryptography
+ (package
+ (name "python-cryptography")
+ (version "1.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://pypi.python.org/packages/source/c/"
+ "cryptography/cryptography-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1lxzvhlyl6h6nm77n34622rcj2cxnx220x9vgjlw76wjd8m0kqyg"))))
+ (build-system python-build-system)
+ (inputs
+ `(("openssl" ,openssl)))
+ (propagated-inputs
+ `(("python-cffi" ,python-cffi)
+ ("python-six" ,python-six)
+ ("python-pyasn1" ,python-pyasn1)
+ ("python-ipaddress" ,python-ipaddress)
+ ("python-enum34" ,python-enum34)
+ ("python-idna" ,python-idna)
+ ("python-iso8601" ,python-iso8601)))
+ (native-inputs
+ `(("python-cryptography-vectors" ,python-cryptography-vectors)
+ ("python-setuptools" ,python-setuptools)
+ ("python-pretend" ,python-pretend)
+ ("python-pytest" ,python-pytest)))
+ (home-page "https://github.com/pyca/cryptography")
+ (synopsis "Cryptographic recipes and primitives for Python")
+ (description
+ "cryptography is a package which provides cryptographic recipes and
+primitives to Python developers. It aims to be the “cryptographic standard
+library” for Python. The package includes both high level recipes, and low
+level interfaces to common cryptographic algorithms such as symmetric ciphers,
+message digests and key derivation functions.")
+ ;; Distributed under either BSD-3 or ASL2.0
+ (license bsd-3)))
+
+(define-public python2-cryptography
+ (package-with-python2 python-cryptography))
--
2.5.0
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #9: 0008-gnu-Add-pyOpenSSL.patch --]
[-- Type: text/x-patch, Size: 2737 bytes --]
From 2d4caf042f61c6f737c10c458829e44ecd6f65b5 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Wed, 23 Sep 2015 09:52:44 +0200
Subject: [PATCH 08/11] gnu: Add pyOpenSSL.
* gnu/packages/python.scm (python-pyopenssl, python2-pyopenssl): New
variables.
---
gnu/packages/python.scm | 51 +++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 51 insertions(+)
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 728c8d4..d040551 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -5088,3 +5088,54 @@ message digests and key derivation functions.")
(define-public python2-cryptography
(package-with-python2 python-cryptography))
+
+(define-public python-pyopenssl
+ (package
+ (name "python-pyopenssl")
+ (version "0.15.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://pypi.python.org/packages/source/p/"
+ "pyOpenSSL/pyOpenSSL-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0wnnq15rhj7fhdcd8ycwiw6r6g3w9f9lcy6cigg8226vsrq618ph"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-tests
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "OpenSSL/test/test_ssl.py"
+ (("client\\.connect\\(\\('verisign\\.com', 443\\)\\)")
+ "return True")
+ ;; FIXME: disable broken test
+ (("test_set_tmp_ecdh") "disabled__set_tmp_ecdh"))
+ (substitute* "OpenSSL/test/test_crypto.py"
+ (("command = b\"openssl \"")
+ (string-append "command = b\""
+ (assoc-ref inputs "openssl")
+ "/bin/openssl" " \""))
+ ;; FIXME: disable four broken tests
+ (("test_der") "disabled__der")
+ (("test_digest") "disabled__digest")
+ (("test_get_extension") "disabled__get_extension")
+ (("test_extension_count") "disabled__extension_count"))
+ #t)))))
+ (propagated-inputs
+ `(("python-cryptography" ,python-cryptography)
+ ("python-six" ,python-six)))
+ (inputs
+ `(("openssl" ,openssl)))
+ (native-inputs
+ `(("python-setuptools" ,python-setuptools)))
+ (home-page "https://github.com/pyca/pyopenssl")
+ (synopsis "Python wrapper module around the OpenSSL library")
+ (description
+ "PyOpenSSL is a high-level wrapper around a subset of the OpenSSL
+library.")
+ (license asl2.0)))
+
+(define-public python2-pyopenssl
+ (package-with-python2 python-pyopenssl))
--
2.5.0
[-- Attachment #10: 0009-gnu-Add-python-gnupg.patch --]
[-- Type: text/x-patch, Size: 2597 bytes --]
From 201146eb25a17b1e48df8daf65fe59d73dca2c9f Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Wed, 23 Sep 2015 21:27:28 +0200
Subject: [PATCH 09/11] gnu: Add python-gnupg.
* gnu/packages/gnupg.scm (python-gnupg, python2-gnupg): New variables.
---
gnu/packages/gnupg.scm | 43 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index 5882617..3ac2488 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -325,6 +325,49 @@ instead. This way bug fixes or improvements can be done at a central place
and every application benefits from this.")
(license license:lgpl2.1+)))
+(define-public python-gnupg
+ (package
+ (name "python-gnupg")
+ (version "0.3.7")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://pypi.python.org/packages/source/p/"
+ "python-gnupg/python-gnupg-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1hg9gshk4b7raskj8mjadsjcv10axlx2z4xl4ag2f2bpi4f8chvq"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "test_gnupg.py"
+ ;; Test keyrings are missing, so this test fails.
+ (("'test_scan_keys'") "True")
+ (("def test_scan_keys") "def disabled__scan_keys")
+ ;; Unsure why this test fails.
+ (("'test_search_keys'") "True")
+ (("def test_search_keys") "def disabled__search_keys"))
+ (setenv "GPGBINARY" (which "gpg"))
+ (setenv "USERNAME" "guixbuilder")
+ ;; The doctests are extremely slow and sometimes time out,
+ ;; so we disable them.
+ (zero? (system* (which "python")
+ "test_gnupg.py" "--no-doctests")))))))
+ (native-inputs
+ `(("gnupg" ,gnupg-1)))
+ (home-page "http://packages.python.org/python-gnupg/index.html")
+ (synopsis "Wrapper for the GNU Privacy Guard")
+ (description
+ "This module allows easy access to GnuPG’s key management, encryption
+and signature functionality from Python programs.")
+ (license license:bsd-3)))
+
+(define-public python2-gnupg
+ (package-with-python2 python-gnupg))
+
(define-public pius
(package
(name "pius")
--
2.5.0
[-- Attachment #11: 0010-gnu-Add-python-nbxmpp.patch --]
[-- Type: text/x-patch, Size: 2643 bytes --]
From 838797920e5f1e3d88ad80adcc27e05daa518e25 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Wed, 23 Sep 2015 21:29:06 +0200
Subject: [PATCH 10/11] gnu: Add python-nbxmpp.
* gnu/packages/messaging.scm (python-nbxmpp, python2-nbxmpp): New
variables.
---
gnu/packages/messaging.scm | 30 +++++++++++++++++++++++++++++-
1 file changed, 29 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 7263a38..6471501 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2014 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -21,13 +22,14 @@
(define-module (gnu packages messaging)
#:use-module ((guix licenses)
- #:select (gpl2+ gpl2 lgpl2.1 lgpl2.0+ bsd-2 non-copyleft
+ #:select (gpl3+ gpl2+ gpl2 lgpl2.1 lgpl2.0+ bsd-2 non-copyleft
asl2.0))
#:use-module (guix utils)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system glib-or-gtk)
+ #:use-module (guix build-system python)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages avahi)
@@ -393,4 +395,30 @@ clients from different locations can connect to a single ZNC account
simultaneously and therefore appear under the same nickname on IRC.")
(license asl2.0)))
+(define-public python-nbxmpp
+ (package
+ (name "python-nbxmpp")
+ (version "0.5.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://pypi.python.org/packages/source/n/nbxmpp/"
+ "nbxmpp-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0dcr786dyips1fdvgsn8yvpgcz5j7217fi05c29cfypdl8jnp6mp"))))
+ (build-system python-build-system)
+ ;; No tests included
+ (arguments `(#:tests? #f))
+ (home-page "http://python-nbxmpp.gajim.org")
+ (synopsis "Non-blocking Jabber/XMPP module")
+ (description
+ "The goal of this python library is to provide a way for Python
+applications to use Jabber/XMPP networks in a non-blocking way. This library
+was initially a fork of xmpppy, but is using non-blocking sockets.")
+ (license gpl3+)))
+
+(define-public python2-nbxmpp
+ (package-with-python2 python-nbxmpp))
+
;;; messaging.scm ends here
--
2.5.0
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #12: 0011-gnu-Add-Gajim.patch --]
[-- Type: text/x-patch, Size: 2926 bytes --]
From b7e3cf9a556e479ffb92f45d7908a402eba0274d Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Wed, 23 Sep 2015 21:50:27 +0200
Subject: [PATCH 11/11] gnu: Add Gajim.
* gnu/packages/messaging.scm (gajim): New variable.
---
gnu/packages/messaging.scm | 49 ++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 49 insertions(+)
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 6471501..fd42c13 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -421,4 +421,53 @@ was initially a fork of xmpppy, but is using non-blocking sockets.")
(define-public python2-nbxmpp
(package-with-python2 python-nbxmpp))
+(define-public gajim
+ (package
+ (name "gajim")
+ (version "0.16.3")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://gajim.org/downloads/"
+ "0.16" "/gajim-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "05a59hf9wna6n9fi0a4bhz1hifqj21bwb4ff9rd0my23rdwmij51"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'wrap-program
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ ;; Make sure all Python scripts run with the correct PYTHONPATH.
+ (let* ((out (assoc-ref outputs "out"))
+ (path (getenv "PYTHONPATH")))
+ (for-each (lambda (name)
+ (let ((file (string-append out "/bin/" name)))
+ ;; Wrapping destroys identification of intended
+ ;; application, so we need to override "APP".
+ (substitute* file
+ (("APP=`basename \\$0`")
+ (string-append "APP=" name)))
+ (wrap-program file
+ `("PYTHONPATH" ":" prefix (,path)))))
+ '("gajim" "gajim-remote" "gajim-history-manager")))
+ #t)))))
+ (native-inputs
+ `(("intltool" ,intltool)))
+ (propagated-inputs
+ `(("python2-nbxmpp" ,python2-nbxmpp)
+ ("python2-pyopenssl" ,python2-pyopenssl)
+ ("python2-gnupg" ,python2-gnupg)))
+ (inputs
+ `(("python2-pygtk" ,python2-pygtk)
+ ("python" ,python-2)))
+ (home-page "https://gajim.org/")
+ (synopsis "Jabber (XMPP) client")
+ (description "Gajim is a feature-rich and easy to use Jabber/XMPP client.
+Among its features are: a tabbed chat window and single window modes; support
+for group chat (with Multi-User Chat protocol), invitation, chat to group chat
+transformation; audio and video conferences; file transfer; TLS, GPG and
+end-to-end encryption support; XML console.")
+ (license gpl3+)))
+
;;; messaging.scm ends here
--
2.5.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] Add Gajim.
2015-09-23 19:55 [PATCH] Add Gajim Ricardo Wurmus
@ 2015-09-24 2:59 ` Mark H Weaver
2015-09-25 19:32 ` Ricardo Wurmus
0 siblings, 1 reply; 3+ messages in thread
From: Mark H Weaver @ 2015-09-24 2:59 UTC (permalink / raw)
To: Ricardo Wurmus; +Cc: guix-devel
Ricardo Wurmus <rekado@elephly.net> writes:
> this patch series adds the XMPP client Gajim. PGP support only works
> with the “classic” GnuPG (version 1.4).
>
> I had to disable a few tests in pyOpenSSL and python-gnupg. The vast
> majority of the tests pass, though, and I’ve been using Gajim with GnuPG
> successfully for almost two days.
Sounds good! Please see below for comments.
> From da68312f5dfa26bf9d0bb93288b78c68c85c17ee Mon Sep 17 00:00:00 2001
> From: Ricardo Wurmus <rekado@elephly.net>
> Date: Mon, 21 Sep 2015 22:41:53 +0200
> Subject: [PATCH 01/11] gnu: python-cffi: Update to 1.2.1.
Looks good to me.
> From 8ba400c2392449095094613bd49de6c8dc750c62 Mon Sep 17 00:00:00 2001
> From: Ricardo Wurmus <rekado@elephly.net>
> Date: Mon, 21 Sep 2015 22:43:24 +0200
> Subject: [PATCH 02/11] gnu: Add python-pyasn1.
Okay.
> From b4c1ec4386cd6cde03cd616c1f34384cee99c74e Mon Sep 17 00:00:00 2001
> From: Ricardo Wurmus <rekado@elephly.net>
> Date: Mon, 21 Sep 2015 22:44:02 +0200
> Subject: [PATCH 03/11] gnu: Add python-ipaddress.
>
> * gnu/packages/python.scm (python-ipaddress, python2-ipaddress): New
> variables.
> ---
> gnu/packages/python.scm | 24 ++++++++++++++++++++++++
> 1 file changed, 24 insertions(+)
>
> diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
> index 40d31a7..0f0a162 100644
> --- a/gnu/packages/python.scm
> +++ b/gnu/packages/python.scm
> @@ -4939,3 +4939,27 @@ suitable for a wide range of protocols based on the ASN.1 specification.")
>
> (define-public python2-pyasn1
> (package-with-python2 python-pyasn1))
> +
> +(define-public python-ipaddress
> + (package
> + (name "python-ipaddress")
> + (version "1.0.14")
> + (source
> + (origin
> + (method url-fetch)
> + (uri (string-append "https://pypi.python.org/packages/source/i/"
> + "ipaddress/ipaddress-" version ".tar.gz"))
> + (sha256
> + (base32
> + "0givid4963n57nsjibms2fc347zmcs188q1hw9al1dkc9kj4nvr2"))))
> + (build-system python-build-system)
> + (arguments `(#:tests? #f)) ; no tests
> + (home-page "https://github.com/phihag/ipaddress")
> + (synopsis "IP address manipulation library")
> + (description
> + "This is a port of the Python 3.3 ipaddress module to older versions of
> +Python.")
Hmm, but we already have Python 3.4, and this package seems to be built
with it, so I'm confused :)
In any case, it would be good to describe what the ipaddress module does
here, instead of simply saying that it's a backport.
> From 1bb13ec51cc24f30b42df0a179d6ee59415235f4 Mon Sep 17 00:00:00 2001
> From: Ricardo Wurmus <rekado@elephly.net>
> Date: Mon, 21 Sep 2015 22:44:32 +0200
> Subject: [PATCH 04/11] gnu: Add python-idna.
Okay.
> From 6bbf9b63616d4e3d4098e51ac1ea63ec95d5335e Mon Sep 17 00:00:00 2001
> From: Ricardo Wurmus <rekado@elephly.net>
> Date: Mon, 21 Sep 2015 22:45:19 +0200
> Subject: [PATCH 05/11] gnu: Add python-pretend.
>
> * gnu/packages/python.scm (python-pretend, python2-pretend): New
> variables.
> ---
> gnu/packages/python.scm | 27 +++++++++++++++++++++++++++
> 1 file changed, 27 insertions(+)
>
> diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
> index 672c2c6..93e6a17 100644
> --- a/gnu/packages/python.scm
> +++ b/gnu/packages/python.scm
> @@ -4993,3 +4993,30 @@ specification.")
>
> (define-public python2-idna
> (package-with-python2 python-idna))
> +
> +(define-public python-pretend
> + (package
> + (name "python-pretend")
> + (version "1.0.8")
> + (source
> + (origin
> + (method url-fetch)
> + (uri (string-append "https://pypi.python.org/packages/source/p/"
> + "pretend/pretend-" version ".tar.gz"))
> + (sha256
> + (base32
> + "0r5r7ygz9m6d2bklflbl84cqhjkc2q12xgis8268ygjh30g2q3wk"))))
> + (build-system python-build-system)
> + (native-inputs
> + `(("python-setuptools" ,python-setuptools)))
> + (home-page "https://github.com/alex/pretend")
> + (synopsis "Library for stubbing in Python")
> + (description
> + "Pretend is a library to make stubbing with Python easier. Stubbing is a
> +technique for writing tests. You may hear the term mixed up with mocks,
> +fakes, or doubles. Basically a stub is an object that returns pre-canned
Two spaces between sentences, please. Otherwise looks good to me.
> From e48b89c864fe59fe59b8a617f6600231d0effe55 Mon Sep 17 00:00:00 2001
> From: Ricardo Wurmus <rekado@elephly.net>
> Date: Mon, 21 Sep 2015 22:45:42 +0200
> Subject: [PATCH 06/11] gnu: Add python-cryptography-vectors.
>
> * gnu/packages/python.scm (python-cryptography-vectors,
> python2-cryptography-vectors): New variables.
> ---
> gnu/packages/python.scm | 26 ++++++++++++++++++++++++++
> 1 file changed, 26 insertions(+)
>
> diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
> index 93e6a17..17fa3ee 100644
> --- a/gnu/packages/python.scm
> +++ b/gnu/packages/python.scm
> @@ -5020,3 +5020,29 @@ responses, rather than doing any computation.")
>
> (define-public python2-pretend
> (package-with-python2 python-pretend))
> +
> +(define-public python-cryptography-vectors
> + (package
> + (name "python-cryptography-vectors")
> + (version "1.0.1")
> + (source
> + (origin
> + (method url-fetch)
> + (uri (string-append "https://pypi.python.org/packages/source/c/"
> + "cryptography-vectors/cryptography_vectors-"
> + version ".tar.gz"))
> + (sha256
> + (base32
> + "1i2chlyhlx4792di82fqzcy9wz0gnnc661bj46zr794ip4629sp4"))))
> + (build-system python-build-system)
> + (native-inputs
> + `(("python-setuptools" ,python-setuptools)))
> + (home-page "https://github.com/pyca/cryptography")
> + (synopsis "Test vectors for the cryptography package.")
> + (description
> + "This package contains test vectors for the cryptography package.")
> + ;; Distributed under either BSD-3 or ASL2.0
> + (license bsd-3)))
So shouldn't it be (license (list bsd-3 asl2.0)) ?
> From 678b5402e9a226383abbd5d2e560d3f609d719e6 Mon Sep 17 00:00:00 2001
> From: Ricardo Wurmus <rekado@elephly.net>
> Date: Mon, 21 Sep 2015 22:46:11 +0200
> Subject: [PATCH 07/11] gnu: Add python-cryptography.
>
> * gnu/packages/python.scm (python-cryptography, python2-cryptography):
> New variables.
> ---
> gnu/packages/python.scm | 42 ++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 42 insertions(+)
>
> diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
> index 17fa3ee..728c8d4 100644
> --- a/gnu/packages/python.scm
> +++ b/gnu/packages/python.scm
> @@ -5046,3 +5046,45 @@ responses, rather than doing any computation.")
>
> (define-public python2-cryptography-vectors
> (package-with-python2 python-cryptography-vectors))
> +
> +(define-public python-cryptography
> + (package
> + (name "python-cryptography")
> + (version "1.0.1")
> + (source
> + (origin
> + (method url-fetch)
> + (uri (string-append "https://pypi.python.org/packages/source/c/"
> + "cryptography/cryptography-" version ".tar.gz"))
> + (sha256
> + (base32
> + "1lxzvhlyl6h6nm77n34622rcj2cxnx220x9vgjlw76wjd8m0kqyg"))))
> + (build-system python-build-system)
> + (inputs
> + `(("openssl" ,openssl)))
> + (propagated-inputs
> + `(("python-cffi" ,python-cffi)
> + ("python-six" ,python-six)
> + ("python-pyasn1" ,python-pyasn1)
> + ("python-ipaddress" ,python-ipaddress)
> + ("python-enum34" ,python-enum34)
> + ("python-idna" ,python-idna)
> + ("python-iso8601" ,python-iso8601)))
> + (native-inputs
> + `(("python-cryptography-vectors" ,python-cryptography-vectors)
> + ("python-setuptools" ,python-setuptools)
> + ("python-pretend" ,python-pretend)
> + ("python-pytest" ,python-pytest)))
> + (home-page "https://github.com/pyca/cryptography")
> + (synopsis "Cryptographic recipes and primitives for Python")
> + (description
> + "cryptography is a package which provides cryptographic recipes and
> +primitives to Python developers. It aims to be the “cryptographic standard
> +library” for Python. The package includes both high level recipes, and low
> +level interfaces to common cryptographic algorithms such as symmetric ciphers,
> +message digests and key derivation functions.")
> + ;; Distributed under either BSD-3 or ASL2.0
> + (license bsd-3)))
Ditto.
> From 2d4caf042f61c6f737c10c458829e44ecd6f65b5 Mon Sep 17 00:00:00 2001
> From: Ricardo Wurmus <rekado@elephly.net>
> Date: Wed, 23 Sep 2015 09:52:44 +0200
> Subject: [PATCH 08/11] gnu: Add pyOpenSSL.
Okay.
> From 201146eb25a17b1e48df8daf65fe59d73dca2c9f Mon Sep 17 00:00:00 2001
> From: Ricardo Wurmus <rekado@elephly.net>
> Date: Wed, 23 Sep 2015 21:27:28 +0200
> Subject: [PATCH 09/11] gnu: Add python-gnupg.
>
> * gnu/packages/gnupg.scm (python-gnupg, python2-gnupg): New variables.
> ---
> gnu/packages/gnupg.scm | 43 +++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 43 insertions(+)
>
> diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
> index 5882617..3ac2488 100644
> --- a/gnu/packages/gnupg.scm
> +++ b/gnu/packages/gnupg.scm
> @@ -325,6 +325,49 @@ instead. This way bug fixes or improvements can be done at a central place
> and every application benefits from this.")
> (license license:lgpl2.1+)))
>
> +(define-public python-gnupg
> + (package
> + (name "python-gnupg")
> + (version "0.3.7")
> + (source
> + (origin
> + (method url-fetch)
> + (uri (string-append "https://pypi.python.org/packages/source/p/"
> + "python-gnupg/python-gnupg-" version ".tar.gz"))
> + (sha256
> + (base32
> + "1hg9gshk4b7raskj8mjadsjcv10axlx2z4xl4ag2f2bpi4f8chvq"))))
> + (build-system python-build-system)
> + (arguments
> + `(#:phases
> + (modify-phases %standard-phases
> + (replace 'check
> + (lambda* (#:key inputs #:allow-other-keys)
> + (substitute* "test_gnupg.py"
> + ;; Test keyrings are missing, so this test fails.
> + (("'test_scan_keys'") "True")
> + (("def test_scan_keys") "def disabled__scan_keys")
> + ;; Unsure why this test fails.
> + (("'test_search_keys'") "True")
> + (("def test_search_keys") "def disabled__search_keys"))
> + (setenv "GPGBINARY" (which "gpg"))
> + (setenv "USERNAME" "guixbuilder")
Why "guixbuilder"? I don't think that name has any significance within
the build environment, does it?
> + ;; The doctests are extremely slow and sometimes time out,
> + ;; so we disable them.
> + (zero? (system* (which "python")
This could just be "python" (without the call to 'which'), I think.
Ditto for GPGBINARY, although I guess it's not important.
> From 838797920e5f1e3d88ad80adcc27e05daa518e25 Mon Sep 17 00:00:00 2001
> From: Ricardo Wurmus <rekado@elephly.net>
> Date: Wed, 23 Sep 2015 21:29:06 +0200
> Subject: [PATCH 10/11] gnu: Add python-nbxmpp.
Okay.
> From b7e3cf9a556e479ffb92f45d7908a402eba0274d Mon Sep 17 00:00:00 2001
> From: Ricardo Wurmus <rekado@elephly.net>
> Date: Wed, 23 Sep 2015 21:50:27 +0200
> Subject: [PATCH 11/11] gnu: Add Gajim.
>
> * gnu/packages/messaging.scm (gajim): New variable.
> ---
> gnu/packages/messaging.scm | 49 ++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 49 insertions(+)
>
> diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
> index 6471501..fd42c13 100644
> --- a/gnu/packages/messaging.scm
> +++ b/gnu/packages/messaging.scm
> @@ -421,4 +421,53 @@ was initially a fork of xmpppy, but is using non-blocking sockets.")
> (define-public python2-nbxmpp
> (package-with-python2 python-nbxmpp))
>
> +(define-public gajim
> + (package
> + (name "gajim")
> + (version "0.16.3")
> + (source (origin
> + (method url-fetch)
> + (uri (string-append "https://gajim.org/downloads/"
> + "0.16" "/gajim-" version ".tar.bz2"))
Please use (version-major+minor version) instead of "0.16" here.
> + (sha256
> + (base32
> + "05a59hf9wna6n9fi0a4bhz1hifqj21bwb4ff9rd0my23rdwmij51"))))
> + (build-system gnu-build-system)
> + (arguments
> + `(#:phases
> + (modify-phases %standard-phases
> + (add-after 'install 'wrap-program
> + (lambda* (#:key inputs outputs #:allow-other-keys)
'inputs' is unused here.
> + ;; Make sure all Python scripts run with the correct PYTHONPATH.
> + (let* ((out (assoc-ref outputs "out"))
> + (path (getenv "PYTHONPATH")))
This could be 'let' instead of 'let*'.
> + (for-each (lambda (name)
> + (let ((file (string-append out "/bin/" name)))
> + ;; Wrapping destroys identification of intended
> + ;; application, so we need to override "APP".
> + (substitute* file
> + (("APP=`basename \\$0`")
> + (string-append "APP=" name)))
> + (wrap-program file
> + `("PYTHONPATH" ":" prefix (,path)))))
> + '("gajim" "gajim-remote" "gajim-history-manager")))
> + #t)))))
> + (native-inputs
> + `(("intltool" ,intltool)))
> + (propagated-inputs
> + `(("python2-nbxmpp" ,python2-nbxmpp)
> + ("python2-pyopenssl" ,python2-pyopenssl)
> + ("python2-gnupg" ,python2-gnupg)))
> + (inputs
> + `(("python2-pygtk" ,python2-pygtk)
> + ("python" ,python-2)))
> + (home-page "https://gajim.org/")
> + (synopsis "Jabber (XMPP) client")
> + (description "Gajim is a feature-rich and easy to use Jabber/XMPP client.
> +Among its features are: a tabbed chat window and single window modes; support
> +for group chat (with Multi-User Chat protocol), invitation, chat to group chat
> +transformation; audio and video conferences; file transfer; TLS, GPG and
> +end-to-end encryption support; XML console.")
> + (license gpl3+)))
> +
> ;;; messaging.scm ends here
Otherwise looks good.
Thank you!
Mark
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] Add Gajim.
2015-09-24 2:59 ` Mark H Weaver
@ 2015-09-25 19:32 ` Ricardo Wurmus
0 siblings, 0 replies; 3+ messages in thread
From: Ricardo Wurmus @ 2015-09-25 19:32 UTC (permalink / raw)
To: Mark H Weaver; +Cc: guix-devel
Mark H Weaver <mhw@netris.org> writes:
>> * gnu/packages/python.scm (python-ipaddress, python2-ipaddress): New
>> variables.
[...]
>
> Hmm, but we already have Python 3.4, and this package seems to be built
> with it, so I'm confused :)
>
> In any case, it would be good to describe what the ipaddress module does
> here, instead of simply saying that it's a backport.
Oh, right. I must have been on autopilot. I have removed
‘python-ipaddress’ and added a proper description for
‘python2-ipaddress’.
>> + (description
>> + "Pretend is a library to make stubbing with Python easier. Stubbing is a
>> +technique for writing tests. You may hear the term mixed up with mocks,
>> +fakes, or doubles. Basically a stub is an object that returns pre-canned
>
> Two spaces between sentences, please. Otherwise looks good to me.
Sorry. Fixed.
>> * gnu/packages/python.scm (python-cryptography-vectors,
>> python2-cryptography-vectors): New variables.
[...]
>> + ;; Distributed under either BSD-3 or ASL2.0
>> + (license bsd-3)))
>
> So shouldn't it be (license (list bsd-3 asl2.0)) ?
Right. Fixed.
>> From 678b5402e9a226383abbd5d2e560d3f609d719e6 Mon Sep 17 00:00:00 2001
>> From: Ricardo Wurmus <rekado@elephly.net>
>> Date: Mon, 21 Sep 2015 22:46:11 +0200
>> Subject: [PATCH 07/11] gnu: Add python-cryptography.
>>
>> * gnu/packages/python.scm (python-cryptography, python2-cryptography):
>> New variables.
[...]
>> + ;; Distributed under either BSD-3 or ASL2.0
>> + (license bsd-3)))
>
> Ditto.
Fixed.
>> * gnu/packages/gnupg.scm (python-gnupg, python2-gnupg): New variables.
[...]
>> + (setenv "GPGBINARY" (which "gpg"))
>> + (setenv "USERNAME" "guixbuilder")
>
> Why "guixbuilder"? I don't think that name has any significance within
> the build environment, does it?
The name is not important, but USERNAME must be set.
>> + ;; The doctests are extremely slow and sometimes time out,
>> + ;; so we disable them.
>> + (zero? (system* (which "python")
>
> This could just be "python" (without the call to 'which'), I think.
> Ditto for GPGBINARY, although I guess it's not important.
You are right. I changed it.
>> +(define-public gajim
>> + (package
>> + (name "gajim")
>> + (version "0.16.3")
>> + (source (origin
>> + (method url-fetch)
>> + (uri (string-append "https://gajim.org/downloads/"
>> + "0.16" "/gajim-" version ".tar.bz2"))
>
> Please use (version-major+minor version) instead of "0.16" here.
Yes, I missed this. Thanks.
>> + (sha256
>> + (base32
>> + "05a59hf9wna6n9fi0a4bhz1hifqj21bwb4ff9rd0my23rdwmij51"))))
>> + (build-system gnu-build-system)
>> + (arguments
>> + `(#:phases
>> + (modify-phases %standard-phases
>> + (add-after 'install 'wrap-program
>> + (lambda* (#:key inputs outputs #:allow-other-keys)
>
> 'inputs' is unused here.
Removed.
>> + ;; Make sure all Python scripts run with the correct PYTHONPATH.
>> + (let* ((out (assoc-ref outputs "out"))
>> + (path (getenv "PYTHONPATH")))
>
> This could be 'let' instead of 'let*'.
Fixed.
> Otherwise looks good.
Thanks for the review!
I’ve had to slightly modify a couple of the python2-* package
definitions in addition to the above changes as a result of removing
‘python-ipaddress’. I’ll push the commits in a moment.
~~ Ricardo
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2015-09-25 19:33 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-23 19:55 [PATCH] Add Gajim Ricardo Wurmus
2015-09-24 2:59 ` Mark H Weaver
2015-09-25 19:32 ` Ricardo Wurmus
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.