Accepting request 501420 from home:Pharaoh_Atem:branches:devel:languages:python
- Update to 0.3 - Add patches from Fedora to fix pygpgme with new gpgme - Convert to singlespec to build for Python 2 and Python 3 OBS-URL: https://build.opensuse.org/request/show/501420 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-gpgme?expand=0&rev=6
This commit is contained in:
parent
edce000cab
commit
a9f97a2d5b
88
0001-reflect-2.1-reporting-for-key-imports.patch
Normal file
88
0001-reflect-2.1-reporting-for-key-imports.patch
Normal file
@ -0,0 +1,88 @@
|
||||
From 4f15b1c042e9cb8c68223c3f78a47b6c18678802 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
|
||||
Date: Tue, 26 Jan 2016 14:24:26 -0500
|
||||
Subject: [PATCH 1/6] reflect 2.1 reporting for key imports
|
||||
|
||||
GnuPG 2.1 changes how it reports key imports. These changes should
|
||||
make the pygpgme test suite compatible with GnuPG 2.1.
|
||||
|
||||
See also:
|
||||
https://lists.gnupg.org/pipermail/gnupg-devel/2016-January/030718.html
|
||||
---
|
||||
tests/test_import.py | 22 +++++++++++-----------
|
||||
1 file changed, 11 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/tests/test_import.py b/tests/test_import.py
|
||||
index 10eb816..597eb47 100644
|
||||
--- a/tests/test_import.py
|
||||
+++ b/tests/test_import.py
|
||||
@@ -55,7 +55,7 @@ class ImportTestCase(GpgHomeTestCase):
|
||||
ctx = gpgme.Context()
|
||||
with self.keyfile('key1.sec') as fp:
|
||||
result = ctx.import_(fp)
|
||||
- self.assertEqual(result.considered, 1)
|
||||
+ self.assertEqual(result.considered, 3)
|
||||
self.assertEqual(result.no_user_id, 0)
|
||||
self.assertEqual(result.imported, 1)
|
||||
self.assertEqual(result.imported_rsa, 0)
|
||||
@@ -64,18 +64,18 @@ class ImportTestCase(GpgHomeTestCase):
|
||||
self.assertEqual(result.new_sub_keys, 0)
|
||||
self.assertEqual(result.new_signatures, 0)
|
||||
self.assertEqual(result.new_revocations, 0)
|
||||
- self.assertEqual(result.secret_read, 1)
|
||||
- self.assertEqual(result.secret_imported, 1)
|
||||
+ self.assertEqual(result.secret_read, 3)
|
||||
+ self.assertEqual(result.secret_imported, 2)
|
||||
self.assertEqual(result.secret_unchanged, 0)
|
||||
self.assertEqual(result.skipped_new_keys, 0)
|
||||
self.assertEqual(result.not_imported, 0)
|
||||
self.assertEqual(len(result.imports), 2)
|
||||
self.assertEqual(result.imports[0],
|
||||
('E79A842DA34A1CA383F64A1546BB55F0885C65A4',
|
||||
- None, gpgme.IMPORT_NEW | gpgme.IMPORT_SECRET))
|
||||
+ None, gpgme.IMPORT_NEW))
|
||||
self.assertEqual(result.imports[1],
|
||||
('E79A842DA34A1CA383F64A1546BB55F0885C65A4',
|
||||
- None, gpgme.IMPORT_NEW))
|
||||
+ None, gpgme.IMPORT_NEW | gpgme.IMPORT_SECRET))
|
||||
# can we get the public key?
|
||||
key = ctx.get_key('E79A842DA34A1CA383F64A1546BB55F0885C65A4')
|
||||
# can we get the secret key?
|
||||
@@ -102,17 +102,17 @@ class ImportTestCase(GpgHomeTestCase):
|
||||
fp = BytesIO(b'\n'.join(keys))
|
||||
ctx = gpgme.Context()
|
||||
result = ctx.import_(fp)
|
||||
- self.assertEqual(result.considered, 3)
|
||||
+ self.assertEqual(result.considered, 5)
|
||||
self.assertEqual(result.no_user_id, 0)
|
||||
self.assertEqual(result.imported, 2)
|
||||
- self.assertEqual(result.imported_rsa, 1)
|
||||
+ self.assertEqual(result.imported_rsa, 0)
|
||||
self.assertEqual(result.unchanged, 0)
|
||||
self.assertEqual(result.new_user_ids, 0)
|
||||
self.assertEqual(result.new_sub_keys, 0)
|
||||
self.assertEqual(result.new_signatures, 1)
|
||||
self.assertEqual(result.new_revocations, 0)
|
||||
- self.assertEqual(result.secret_read, 1)
|
||||
- self.assertEqual(result.secret_imported, 1)
|
||||
+ self.assertEqual(result.secret_read, 3)
|
||||
+ self.assertEqual(result.secret_imported, 2)
|
||||
self.assertEqual(result.secret_unchanged, 0)
|
||||
self.assertEqual(result.skipped_new_keys, 0)
|
||||
self.assertEqual(result.not_imported, 0)
|
||||
@@ -122,10 +122,10 @@ class ImportTestCase(GpgHomeTestCase):
|
||||
None, gpgme.IMPORT_NEW))
|
||||
self.assertEqual(result.imports[1],
|
||||
('E79A842DA34A1CA383F64A1546BB55F0885C65A4',
|
||||
- None, gpgme.IMPORT_NEW | gpgme.IMPORT_SECRET))
|
||||
+ None, gpgme.IMPORT_SIG))
|
||||
self.assertEqual(result.imports[2],
|
||||
('E79A842DA34A1CA383F64A1546BB55F0885C65A4',
|
||||
- None, gpgme.IMPORT_SIG))
|
||||
+ None, gpgme.IMPORT_NEW | gpgme.IMPORT_SECRET))
|
||||
self.assertEqual(result.imports[3],
|
||||
('93C2240D6B8AA10AB28F701D2CF46B7FC97E6B0F',
|
||||
None, gpgme.IMPORT_NEW))
|
||||
--
|
||||
2.7.4
|
||||
|
50
0002-passphrase_cb-is-deprecated.patch
Normal file
50
0002-passphrase_cb-is-deprecated.patch
Normal file
@ -0,0 +1,50 @@
|
||||
From 6648b075fb3d434c599d7e1793bd1f0bbe85dfe3 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
|
||||
Date: Mon, 1 Feb 2016 19:25:12 -0500
|
||||
Subject: [PATCH 2/6] passphrase_cb is deprecated
|
||||
|
||||
https://bugs.gnupg.org/gnupg/issue767 indicates that
|
||||
gpgme_set_passphrase_cb is a deprecated corner of the API and that
|
||||
developers using gpgme should really rely on the gpg-agent to handle
|
||||
this stuff. This should actually simplify things for most
|
||||
installations -- just strip out all passphrase handling from your
|
||||
application entirely, relying on gpg to figure out how to find the
|
||||
agent, and relying on the agent figuring out how to prompt the user
|
||||
(if necessary).
|
||||
|
||||
However, if a developer really wants to use the passphrase callback
|
||||
approach, they'll have to use loopback pinentry. This sets up the
|
||||
test suite to be able to make those tests.
|
||||
---
|
||||
tests/util.py | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tests/util.py b/tests/util.py
|
||||
index cd803c2..86892ca 100644
|
||||
--- a/tests/util.py
|
||||
+++ b/tests/util.py
|
||||
@@ -28,7 +28,9 @@ keydir = os.path.join(os.path.dirname(__file__), 'keys')
|
||||
|
||||
class GpgHomeTestCase(unittest.TestCase):
|
||||
|
||||
- gpg_conf_contents = ''
|
||||
+ gpg_conf_contents = 'pinentry-mode loopback'
|
||||
+ gpg_agent_conf_contents = 'allow-loopback-pinentry'
|
||||
+
|
||||
import_keys = []
|
||||
|
||||
def keyfile(self, key):
|
||||
@@ -41,6 +43,10 @@ class GpgHomeTestCase(unittest.TestCase):
|
||||
fp.write(self.gpg_conf_contents.encode('UTF-8'))
|
||||
fp.close()
|
||||
|
||||
+ fp = open(os.path.join(self._gpghome, 'gpg-agent.conf'), 'wb')
|
||||
+ fp.write(self.gpg_agent_conf_contents.encode('UTF-8'))
|
||||
+ fp.close()
|
||||
+
|
||||
# import requested keys into the keyring
|
||||
ctx = gpgme.Context()
|
||||
for key in self.import_keys:
|
||||
--
|
||||
2.7.4
|
||||
|
@ -0,0 +1,28 @@
|
||||
From 41a0e04d2e81f58c1aff1338a0c89d49ce399d39 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
|
||||
Date: Mon, 1 Feb 2016 19:27:59 -0500
|
||||
Subject: [PATCH 3/6] handle generic error when no passphrase callback present
|
||||
|
||||
apparently gpg 2.1 returns ERR_GENERAL right now if the pinentry was
|
||||
in loopback mode and no passphrase callback was supplied. Earlier
|
||||
versions supplied ERR_BAD_PASSPHRASE.
|
||||
---
|
||||
tests/test_passphrase.py | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tests/test_passphrase.py b/tests/test_passphrase.py
|
||||
index 0a235e9..35b3c59 100644
|
||||
--- a/tests/test_passphrase.py
|
||||
+++ b/tests/test_passphrase.py
|
||||
@@ -41,7 +41,7 @@ class PassphraseTestCase(GpgHomeTestCase):
|
||||
new_sigs = ctx.sign(plaintext, signature, gpgme.SIG_MODE_CLEAR)
|
||||
except gpgme.GpgmeError as exc:
|
||||
self.assertEqual(exc.args[0], gpgme.ERR_SOURCE_GPGME)
|
||||
- self.assertEqual(exc.args[1], gpgme.ERR_BAD_PASSPHRASE)
|
||||
+ self.assertEqual(exc.args[1], gpgme.ERR_GENERAL)
|
||||
else:
|
||||
self.fail('gpgme.GpgmeError not raised')
|
||||
|
||||
--
|
||||
2.7.4
|
||||
|
109
0004-add-pubkey_algo-and-hash_algo-attributes-to-signatur.patch
Normal file
109
0004-add-pubkey_algo-and-hash_algo-attributes-to-signatur.patch
Normal file
@ -0,0 +1,109 @@
|
||||
From 2f902e29ef301ba8a23a7d7bfd0943479107206c Mon Sep 17 00:00:00 2001
|
||||
From: Till Maas <opensource@till.name>
|
||||
Date: Wed, 20 Jul 2016 16:17:22 +0200
|
||||
Subject: [PATCH 4/6] add pubkey_algo and hash_algo attributes to signatures
|
||||
|
||||
References: https://bugs.launchpad.net/pygpgme/+bug/1002421
|
||||
Signed-off-by: Igor Gnatenko <ignatenko@redhat.com>
|
||||
---
|
||||
src/pygpgme-signature.c | 6 ++++++
|
||||
src/pygpgme.h | 2 ++
|
||||
tests/test_sign_verify.py | 10 ++++++++++
|
||||
3 files changed, 18 insertions(+)
|
||||
|
||||
diff --git a/src/pygpgme-signature.c b/src/pygpgme-signature.c
|
||||
index 7f273a1..1d98dfc 100644
|
||||
--- a/src/pygpgme-signature.c
|
||||
+++ b/src/pygpgme-signature.c
|
||||
@@ -101,6 +101,8 @@ pygpgme_sig_dealloc(PyGpgmeSignature *self)
|
||||
Py_XDECREF(self->wrong_key_usage);
|
||||
Py_XDECREF(self->validity);
|
||||
Py_XDECREF(self->validity_reason);
|
||||
+ Py_XDECREF(self->pubkey_algo);
|
||||
+ Py_XDECREF(self->hash_algo);
|
||||
PyObject_Del(self);
|
||||
}
|
||||
|
||||
@@ -117,6 +119,8 @@ static PyMemberDef pygpgme_sig_members[] = {
|
||||
{ "validity", T_OBJECT, offsetof(PyGpgmeSignature, validity), READONLY},
|
||||
{ "validity_reason", T_OBJECT,
|
||||
offsetof(PyGpgmeSignature, validity_reason), READONLY},
|
||||
+ { "pubkey_algo", T_OBJECT, offsetof(PyGpgmeSignature, pubkey_algo), READONLY},
|
||||
+ { "hash_algo", T_OBJECT, offsetof(PyGpgmeSignature, hash_algo), READONLY},
|
||||
{ NULL, 0, 0, 0}
|
||||
};
|
||||
|
||||
@@ -173,6 +177,8 @@ pygpgme_siglist_new(gpgme_signature_t siglist)
|
||||
item->wrong_key_usage = PyBool_FromLong(sig->wrong_key_usage);
|
||||
item->validity = PyInt_FromLong(sig->validity);
|
||||
item->validity_reason = pygpgme_error_object(sig->validity_reason);
|
||||
+ item->pubkey_algo = PyInt_FromLong(sig->pubkey_algo);
|
||||
+ item->hash_algo = PyInt_FromLong(sig->hash_algo);
|
||||
if (PyErr_Occurred()) {
|
||||
Py_DECREF(item);
|
||||
Py_DECREF(list);
|
||||
diff --git a/src/pygpgme.h b/src/pygpgme.h
|
||||
index 8453616..25b9328 100644
|
||||
--- a/src/pygpgme.h
|
||||
+++ b/src/pygpgme.h
|
||||
@@ -76,6 +76,8 @@ typedef struct {
|
||||
PyObject *wrong_key_usage;
|
||||
PyObject *validity;
|
||||
PyObject *validity_reason;
|
||||
+ PyObject *pubkey_algo;
|
||||
+ PyObject *hash_algo;
|
||||
} PyGpgmeSignature;
|
||||
|
||||
typedef struct {
|
||||
diff --git a/tests/test_sign_verify.py b/tests/test_sign_verify.py
|
||||
index 5a90f8c..fb6a27d 100644
|
||||
--- a/tests/test_sign_verify.py
|
||||
+++ b/tests/test_sign_verify.py
|
||||
@@ -57,6 +57,8 @@ class SignVerifyTestCase(GpgHomeTestCase):
|
||||
self.assertEqual(sigs[0].wrong_key_usage, False)
|
||||
self.assertEqual(sigs[0].validity, gpgme.VALIDITY_UNKNOWN)
|
||||
self.assertEqual(sigs[0].validity_reason, None)
|
||||
+ self.assertEqual(sigs[0].pubkey_algo, gpgme.PK_DSA)
|
||||
+ self.assertEqual(sigs[0].hash_algo, gpgme.MD_SHA1)
|
||||
|
||||
def test_verify_detached(self):
|
||||
signature = BytesIO(dedent('''
|
||||
@@ -83,6 +85,8 @@ class SignVerifyTestCase(GpgHomeTestCase):
|
||||
self.assertEqual(sigs[0].wrong_key_usage, False)
|
||||
self.assertEqual(sigs[0].validity, gpgme.VALIDITY_UNKNOWN)
|
||||
self.assertEqual(sigs[0].validity_reason, None)
|
||||
+ self.assertEqual(sigs[0].pubkey_algo, gpgme.PK_DSA)
|
||||
+ self.assertEqual(sigs[0].hash_algo, gpgme.MD_SHA1)
|
||||
|
||||
def test_verify_clearsign(self):
|
||||
signature = BytesIO(dedent('''
|
||||
@@ -114,6 +118,8 @@ class SignVerifyTestCase(GpgHomeTestCase):
|
||||
self.assertEqual(sigs[0].wrong_key_usage, False)
|
||||
self.assertEqual(sigs[0].validity, gpgme.VALIDITY_UNKNOWN)
|
||||
self.assertEqual(sigs[0].validity_reason, None)
|
||||
+ self.assertEqual(sigs[0].pubkey_algo, gpgme.PK_DSA)
|
||||
+ self.assertEqual(sigs[0].hash_algo, gpgme.MD_SHA1)
|
||||
|
||||
def test_verify_multiple_sigs(self):
|
||||
signature = BytesIO(dedent('''
|
||||
@@ -156,6 +162,8 @@ class SignVerifyTestCase(GpgHomeTestCase):
|
||||
self.assertEqual(sigs[0].wrong_key_usage, False)
|
||||
self.assertEqual(sigs[0].validity, gpgme.VALIDITY_UNKNOWN)
|
||||
self.assertEqual(sigs[0].validity_reason, None)
|
||||
+ self.assertEqual(sigs[0].pubkey_algo, gpgme.PK_DSA)
|
||||
+ self.assertEqual(sigs[0].hash_algo, gpgme.MD_SHA1)
|
||||
|
||||
self.assertEqual(sigs[1].summary, 0)
|
||||
self.assertEqual(sigs[1].fpr,
|
||||
@@ -167,6 +175,8 @@ class SignVerifyTestCase(GpgHomeTestCase):
|
||||
self.assertEqual(sigs[1].wrong_key_usage, False)
|
||||
self.assertEqual(sigs[1].validity, gpgme.VALIDITY_UNKNOWN)
|
||||
self.assertEqual(sigs[1].validity_reason, None)
|
||||
+ self.assertEqual(sigs[1].pubkey_algo, gpgme.PK_RSA)
|
||||
+ self.assertEqual(sigs[1].hash_algo, gpgme.MD_SHA1)
|
||||
|
||||
def test_verify_no_signature(self):
|
||||
signature = BytesIO(dedent('''
|
||||
--
|
||||
2.7.4
|
||||
|
26
0005-add-ENCRYPT_NO_ENCRYPT_TO-constant.patch
Normal file
26
0005-add-ENCRYPT_NO_ENCRYPT_TO-constant.patch
Normal file
@ -0,0 +1,26 @@
|
||||
From 4cdf2d052bab95eb27de6ca38e52628ba504d639 Mon Sep 17 00:00:00 2001
|
||||
From: Till Maas <opensource@till.name>
|
||||
Date: Wed, 20 Jul 2016 16:18:08 +0200
|
||||
Subject: [PATCH 5/6] add ENCRYPT_NO_ENCRYPT_TO constant
|
||||
|
||||
References: https://bugs.launchpad.net/pygpgme/+bug/1192545
|
||||
Signed-off-by: Igor Gnatenko <ignatenko@redhat.com>
|
||||
---
|
||||
src/pygpgme-constants.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/src/pygpgme-constants.c b/src/pygpgme-constants.c
|
||||
index c8a2e9c..a23b2ef 100644
|
||||
--- a/src/pygpgme-constants.c
|
||||
+++ b/src/pygpgme-constants.c
|
||||
@@ -157,6 +157,7 @@ static const struct pygpgme_constant constants[] = {
|
||||
|
||||
/* gpgme_encrypt_flags_t */
|
||||
CONST(ENCRYPT_ALWAYS_TRUST),
|
||||
+ CONST(ENCRYPT_NO_ENCRYPT_TO),
|
||||
|
||||
/* gpgme_sigsum_t */
|
||||
CONST(SIGSUM_VALID),
|
||||
--
|
||||
2.7.4
|
||||
|
66
0006-ignore-STATUS_KEY_CONSIDERED-when-editing.patch
Normal file
66
0006-ignore-STATUS_KEY_CONSIDERED-when-editing.patch
Normal file
@ -0,0 +1,66 @@
|
||||
From f14699792622715c9cec372400f9dc38f1122f63 Mon Sep 17 00:00:00 2001
|
||||
From: Igor Gnatenko <ignatenko@redhat.com>
|
||||
Date: Mon, 25 Jul 2016 11:40:34 +0200
|
||||
Subject: [PATCH 6/6] ignore STATUS_KEY_CONSIDERED when editing
|
||||
|
||||
KEY_CONSIDERED has 2 meanings:
|
||||
* The key has not been selected
|
||||
* All subkeys of the key are expired or have been revoked
|
||||
|
||||
Both of them are definitely good candidates for ignoring for edit utils.
|
||||
|
||||
https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=commit;h=ff71521d9698c7c5df94831a1398e948213af433
|
||||
https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gpgme.git;a=commit;h=315fb73d4a774e2c699ac1804f5377559b4d0027
|
||||
|
||||
References: https://bugzilla.redhat.com/show_bug.cgi?id=1359521
|
||||
Signed-off-by: Igor Gnatenko <ignatenko@redhat.com>
|
||||
---
|
||||
gpgme/editutil.py | 3 ++-
|
||||
src/pygpgme-constants.c | 1 +
|
||||
tests/test_editkey.py | 4 +++-
|
||||
3 files changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/gpgme/editutil.py b/gpgme/editutil.py
|
||||
index 617ddc3..267612f 100644
|
||||
--- a/gpgme/editutil.py
|
||||
+++ b/gpgme/editutil.py
|
||||
@@ -60,7 +60,8 @@ def key_editor(function):
|
||||
gpgme.STATUS_KEYEXPIRED,
|
||||
gpgme.STATUS_PROGRESS,
|
||||
gpgme.STATUS_KEY_CREATED,
|
||||
- gpgme.STATUS_ALREADY_SIGNED):
|
||||
+ gpgme.STATUS_ALREADY_SIGNED,
|
||||
+ gpgme.STATUS_KEY_CONSIDERED):
|
||||
return
|
||||
try:
|
||||
data = gen.send((status, args))
|
||||
diff --git a/src/pygpgme-constants.c b/src/pygpgme-constants.c
|
||||
index a23b2ef..2435346 100644
|
||||
--- a/src/pygpgme-constants.c
|
||||
+++ b/src/pygpgme-constants.c
|
||||
@@ -141,6 +141,7 @@ static const struct pygpgme_constant constants[] = {
|
||||
CONST(STATUS_POLICY_URL),
|
||||
CONST(STATUS_BEGIN_STREAM),
|
||||
CONST(STATUS_END_STREAM),
|
||||
+ CONST(STATUS_KEY_CONSIDERED),
|
||||
CONST(STATUS_KEY_CREATED),
|
||||
CONST(STATUS_USERID_HINT),
|
||||
CONST(STATUS_UNEXPECTED),
|
||||
diff --git a/tests/test_editkey.py b/tests/test_editkey.py
|
||||
index 4bd2730..d6358f4 100644
|
||||
--- a/tests/test_editkey.py
|
||||
+++ b/tests/test_editkey.py
|
||||
@@ -32,7 +32,9 @@ class EditKeyTestCase(GpgHomeTestCase):
|
||||
'signonly.pub', 'signonly.sec']
|
||||
|
||||
def edit_quit_cb(self, status, args, fd):
|
||||
- if status in [gpgme.STATUS_EOF, gpgme.STATUS_GOT_IT]:
|
||||
+ if status in [gpgme.STATUS_EOF,
|
||||
+ gpgme.STATUS_GOT_IT,
|
||||
+ gpgme.STATUS_KEY_CONSIDERED]:
|
||||
return
|
||||
self.status = status
|
||||
self.args = args
|
||||
--
|
||||
2.7.4
|
||||
|
@ -1,13 +0,0 @@
|
||||
Based on suggestion found at:
|
||||
http://lists.mandriva.com/bugs/2010-05/msg03921.php
|
||||
|
||||
--- a/pygpgme-0.1/src/pygpgme-context.c
|
||||
+++ b/pygpgme-0.1/src/pygpgme-context.c
|
||||
@@ -83,6 +83,7 @@ static int
|
||||
pygpgme_context_init(PyGpgmeContext *self, PyObject *args, PyObject *kwargs)
|
||||
{
|
||||
static char *kwlist[] = { NULL };
|
||||
+ gpgme_check_version(NULL);
|
||||
|
||||
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "", kwlist))
|
||||
return -1;
|
@ -1,14 +0,0 @@
|
||||
--- pygpgme-0.1/src/pygpgme.h.py23 2006-10-13 09:21:33.000000000 -0700
|
||||
+++ pygpgme-0.1/src/pygpgme.h 2006-10-13 09:22:41.000000000 -0700
|
||||
@@ -23,6 +23,11 @@
|
||||
#include <Python.h>
|
||||
#include <gpgme.h>
|
||||
|
||||
+/* For python 2.3 compatibility */
|
||||
+#ifndef Py_RETURN_NONE
|
||||
+#define Py_RETURN_NONE return Py_INCREF(Py_None), Py_None
|
||||
+#endif
|
||||
+
|
||||
#define HIDDEN __attribute__((visibility("hidden")))
|
||||
|
||||
typedef struct {
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0a6a0712afaa589faf5c5e19b8d5ee2369298a3a51d3377927edec89b7f0101f
|
||||
size 45681
|
3
pygpgme-0.3.tar.gz
Normal file
3
pygpgme-0.3.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5fd887c407015296a8fd3f4b867fe0fcca3179de97ccde90449853a3dfb802e1
|
||||
size 50100
|
@ -1,3 +1,16 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Jun 6 12:31:55 UTC 2017 - ngompa13@gmail.com
|
||||
|
||||
- Update to 0.3
|
||||
- Add patches from Fedora to fix pygpgme with new gpgme
|
||||
* 0001-reflect-2.1-reporting-for-key-imports.patch
|
||||
* 0002-passphrase_cb-is-deprecated.patch
|
||||
* 0003-handle-generic-error-when-no-passphrase-callback-pre.patch
|
||||
* 0004-add-pubkey_algo-and-hash_algo-attributes-to-signatur.patch
|
||||
* 0005-add-ENCRYPT_NO_ENCRYPT_TO-constant.patch
|
||||
* 0006-ignore-STATUS_KEY_CONSIDERED-when-editing.patch
|
||||
- Convert to singlespec to build for Python 2 and Python 3
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 22 13:07:05 UTC 2012 - fcrozat@suse.com
|
||||
|
||||
|
@ -1,7 +1,8 @@
|
||||
#
|
||||
# spec file for package python-gpgme
|
||||
#
|
||||
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||
# Copyright (c) 2017 Neal Gompa <ngompa13@gmail.com>.
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@ -16,19 +17,31 @@
|
||||
#
|
||||
|
||||
|
||||
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
|
||||
Name: python-gpgme
|
||||
Version: 0.1
|
||||
Version: 0.3
|
||||
Release: 0
|
||||
Summary: A Python module for working with OpenPGP messages
|
||||
License: LGPL-2.1+
|
||||
Group: Development/Libraries/Python
|
||||
Url: http://pypi.python.org/pypi/pygpgme
|
||||
Source: pygpgme-%{version}.tar.bz2
|
||||
Patch: pygpgme-0.1-py23.patch
|
||||
Patch1: pygpgme-0.1-context.patch
|
||||
Source: pygpgme-%{version}.tar.gz
|
||||
# Upstream is dead, but Fedora maintains a fork
|
||||
# All patches tracked at: https://pagure.io/pygpgme
|
||||
# Patches for working with gnupg >= 2.1
|
||||
Patch0001: 0001-reflect-2.1-reporting-for-key-imports.patch
|
||||
Patch0002: 0002-passphrase_cb-is-deprecated.patch
|
||||
Patch0003: 0003-handle-generic-error-when-no-passphrase-callback-pre.patch
|
||||
Patch0004: 0004-add-pubkey_algo-and-hash_algo-attributes-to-signatur.patch
|
||||
Patch0005: 0005-add-ENCRYPT_NO_ENCRYPT_TO-constant.patch
|
||||
Patch0006: 0006-ignore-STATUS_KEY_CONSIDERED-when-editing.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
BuildRequires: gpgme-devel
|
||||
BuildRequires: python-devel
|
||||
BuildRequires: python-rpm-macros
|
||||
BuildRequires: python3-devel
|
||||
|
||||
%python_subpackages
|
||||
|
||||
%description
|
||||
PyGPGME is a Python module that lets you sign, verify, encrypt and
|
||||
@ -44,23 +57,19 @@ Authors:
|
||||
|
||||
%prep
|
||||
%setup -q -n pygpgme-%{version}
|
||||
%patch -p1
|
||||
%patch1 -p2
|
||||
%if 0%{?suse_version} >= 1330
|
||||
%autopatch -p1
|
||||
%endif
|
||||
|
||||
%build
|
||||
#CFLAGS="$RPM_OPT_FLAGS" %{__python} setup.py build
|
||||
%python_build
|
||||
|
||||
%install
|
||||
%{__python} setup.py install --root $RPM_BUILD_ROOT --prefix=%{_prefix}
|
||||
# No need to ship the tests
|
||||
rm -rf $RPM_BUILD_ROOT%{py_sitedir}/gpgme/tests/
|
||||
%python_install
|
||||
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
%files
|
||||
%files %{python_files}
|
||||
%defattr(-,root,root,-)
|
||||
%doc README PKG-INFO
|
||||
%{py_sitedir}/*
|
||||
%doc README examples tests
|
||||
%{python_sitearch}/*
|
||||
|
||||
%changelog
|
||||
|
Loading…
x
Reference in New Issue
Block a user