From mboxrd@z Thu Jan 1 00:00:00 1970 From: Leo Famulari Subject: Re: [PATCH 01/04] gnu: Add python-pygpgme Date: Sat, 6 Feb 2016 03:29:58 -0500 Message-ID: <20160206082958.GC1432@jasmine> References: <87fux6fqlj.fsf@dustycloud.org> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:55774) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aRyFo-0007c1-Bu for guix-devel@gnu.org; Sat, 06 Feb 2016 03:30:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aRyFl-0004dI-5B for guix-devel@gnu.org; Sat, 06 Feb 2016 03:30:04 -0500 Received: from out4-smtp.messagingengine.com ([66.111.4.28]:46778) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aRyFl-0004dB-0P for guix-devel@gnu.org; Sat, 06 Feb 2016 03:30:01 -0500 Content-Disposition: inline In-Reply-To: <87fux6fqlj.fsf@dustycloud.org> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Christopher Allan Webber Cc: guix-devel@gnu.org On Fri, Feb 05, 2016 at 07:47:26PM -0800, Christopher Allan Webber wrote: > First of several patches on the path to assword! Thanks! Funniest package name in Guix, I'd say! > * gnu/packages/gnupg.scm (python-pygpgme, python2-pygpgme): New variables. > * gnu/packages/patches/pygpgme-disable-problematic-tests.patch: New file. Please add the patch to gnu-system.am (dist_patch_DATA). > --- > gnu/packages/gnupg.scm | 42 ++++++++++++++++++++++ > .../pygpgme-disable-problematic-tests.patch | 37 +++++++++++++++++++ > 2 files changed, 79 insertions(+) > create mode 100644 gnu/packages/patches/pygpgme-disable-problematic-tests.patch > > diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm > index 501cf55..bdc5e4a 100644 > --- a/gnu/packages/gnupg.scm > +++ b/gnu/packages/gnupg.scm > @@ -5,6 +5,7 @@ > ;;; Copyright © 2014, 2015 Mark H Weaver > ;;; Copyright © 2015 Paul van der Walt > ;;; Copyright © 2015, 2016 Efraim Flashner > +;;; Copyright © 2016 Christopher Allan Webber > ;;; > ;;; This file is part of GNU Guix. > ;;; > @@ -23,6 +24,7 @@ > > (define-module (gnu packages gnupg) > #:use-module ((guix licenses) #:prefix license:) > + #:use-module (gnu packages) > #:use-module (gnu packages adns) > #:use-module (gnu packages curl) > #:use-module (gnu packages openldap) > @@ -332,6 +334,46 @@ 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-pygpgme > + (package > + (name "python-pygpgme") > + (version "0.3") > + (source > + (origin > + (method url-fetch) > + (uri (pypi-uri "pygpgme" version)) > + (sha256 > + (base32 > + "1q82p3gs6lwq8j8dxk4pvrwk3jpww1zqcjrzznl9clh10z28gn2z")) > + ;; Unfortunately, we have to disable some tests due to some gpg-agent > + ;; goofiness... see: > + ;; https://bugs.launchpad.net/pygpgme/+bug/999949 > + (patches (list (search-patch "pygpgme-disable-problematic-tests.patch"))))) > + (arguments > + `(#:phases > + (modify-phases %standard-phases > + (add-before 'build 'make-build > + (lambda (. args) > + (zero? (system* "make" "build")))) I'm not a Scheme expert, but I wonder about "lambda (.args)". Most of these calls to (system*) start with "lambda _". What is the difference here? > + (replace 'check > + (lambda _ > + (zero? (system* "make" "check"))))))) > + (build-system python-build-system) > + (inputs > + `(("python-setuptools" ,python-setuptools) If setuptools are only required for the python-2 variant, please add a comment to that effect, so that we can easily remove it once we fix bug #22437. http://debbugs.gnu.org/cgi/bugreport.cgi?bug=22437 > + ("gnupg" ,gnupg-2.0) Does it only work with gnupg-2.0? We also package the 2.1 series of GnuPG. > + ("gpgme" ,gpgme))) > + (home-page "https://launchpad.net/pygpgme") > + (synopsis > + "A Python module for working with OpenPGP messages") This can all go on one line. > + (description > + "PyGPGME is a Python module that lets you sign, verify, encrypt and > +decrypt messages using the OpenPGP format.") Can you mention that it uses GPGME in the description? > + (license license:lgpl2.1+))) > + > +(define-public python2-pygpgme > + (package-with-python2 python-pygpgme)) > + > (define-public python-gnupg > (package > (name "python-gnupg") > diff --git a/gnu/packages/patches/pygpgme-disable-problematic-tests.patch b/gnu/packages/patches/pygpgme-disable-problematic-tests.patch > new file mode 100644 > index 0000000..2129d2f > --- /dev/null > +++ b/gnu/packages/patches/pygpgme-disable-problematic-tests.patch > @@ -0,0 +1,37 @@ > +These tests require a gpg agent to run, and are difficult to get to work right > +in Guix's environment. For more details, see: > + https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=713074 > + https://bugs.launchpad.net/pygpgme/+bug/999949 > + > +--- pygpgme-0.3/tests/test_encrypt_decrypt.py 2012-02-28 19:10:28.000000000 -0800 > ++++ pygpgme-0.3/tests/test_encrypt_decrypt.py 2016-02-05 10:21:58.966685384 -0800 > +@@ -125,7 +125,7 @@ > + ctx.decrypt(ciphertext, plaintext) > + self.assertEqual(plaintext.getvalue(), b'Hello World\n') > + > +- def test_encrypt_symmetric(self): > ++ def skip_test_encrypt_symmetric(self): > + plaintext = BytesIO(b'Hello World\n') > + ciphertext = BytesIO() > + def passphrase(uid_hint, passphrase_info, prev_was_bad, fd): > + > +--- pygpgme-0.3/tests/test_passphrase.py 2012-02-28 19:04:17.000000000 -0800 > ++++ pygpgme-0.3/tests/test_passphrase.py 2016-02-05 10:21:47.990630956 -0800 > +@@ -30,7 +30,7 @@ > + > + import_keys = ['passphrase.pub', 'passphrase.sec'] > + > +- def test_sign_without_passphrase_cb(self): > ++ def skip_test_sign_without_passphrase_cb(self): > + ctx = gpgme.Context() > + key = ctx.get_key('EFB052B4230BBBC51914BCBB54DCBBC8DBFB9EB3') > + ctx.signers = [key] > +@@ -51,7 +51,7 @@ > + self.prev_was_bad = prev_was_bad > + os.write(fd, b'test\n') > + > +- def test_sign_with_passphrase_cb(self): > ++ def skip_test_sign_with_passphrase_cb(self): > + ctx = gpgme.Context() > + key = ctx.get_key('EFB052B4230BBBC51914BCBB54DCBBC8DBFB9EB3') > + ctx.signers = [key] > -- > 2.6.3 >