PythonUmbrella
ActivePublic

Recent Activity

Sat, Dec 15

BenM added a comment to T3505: Port GPGME's Python bindings to Windows.

Though not directly related to our issues, this bug report on the MSYS2 site reported by their users encountering trouble with GPGME provides additional weight to irreconcilable differences between MSYS2 and GnuPG:

Sat, Dec 15, 8:18 PM · Feature Request, gpgme, Python

Mon, Dec 10

BenM closed T3815: tests fail in 2021 as Resolved.

Though apparently resolved back in May, this is what ultimately led to T4191 and was thus only properly resolved quite recently.

Mon, Dec 10, 6:19 AM · qt, Python, gpgme, Bug Report
BenM closed T4271: python gpg.Context.decrypt(verify=False) no longer works as Resolved.

Confirmed that this is indeed fixed and made the (rather minor) change to the HOWTO that was needed. No changes were needed for the example script (decrypt-file.py).

Mon, Dec 10, 6:08 AM · Python, gpgme, Bug Report
BenM closed T4191: gpgme python bindings test t-callbacks.py fails on 32-bit platforms as Resolved.

This has now been tested on a 32-bit Gentoo VM and it behaves as expected with 32-bit system detection and creating keys with pre-2038 expirations working.

Mon, Dec 10, 4:51 AM · Python, gpgme, Bug Report

Sat, Dec 8

BenM updated subscribers of T3505: Port GPGME's Python bindings to Windows.

Commit 8613727f1ee985c3cfa2c815523312914f033ffd adds considerable detail on both the issues affecting compiling and installing a Windows version of the bindings and what it would take to actually resolve it.

Sat, Dec 8, 7:02 AM · Feature Request, gpgme, Python

Thu, Dec 6

BenM added a comment to T4191: gpgme python bindings test t-callbacks.py fails on 32-bit platforms.

I'll deploy one on AWS somewhere briefly once I've replaced a certain external keyboard, there will almost certainly be an existing image of some Linux distro in the AWS marketplace and I'd be very surprised if it took more than an hour or two of compute time to confirm.

Thu, Dec 6, 2:50 PM · Python, gpgme, Bug Report

Wed, Dec 5

dkg added a comment to T4276: Context.decrypt() throws an error if *any* signature is bad.

One more semantic question about how folks think Context.decrypt(verify=True) should work: if the decrypted thing has no signature at all, should the function succeed without throwing an exception? it currently does, but the returned verify_result has its signatures member set to the empty list.

Wed, Dec 5, 6:30 PM · gpgme, Python, Bug Report
BenM added a comment to T4271: python gpg.Context.decrypt(verify=False) no longer works.

Ooh, nice catch @dkg, I just stepped through each of your changes and it all looks good. I'll tweak the relevant sections of the HOWTO dealing with this in the next few days (I need to replace a keyboard here before properly diving back in) and then close this case once done.

Wed, Dec 5, 4:14 PM · Python, gpgme, Bug Report
dkg added a comment to T4271: python gpg.Context.decrypt(verify=False) no longer works.

since @aheinecke merged my changes, i think this bug is now resolved. I'll let @BenM close it though :)

Wed, Dec 5, 2:06 PM · Python, gpgme, Bug Report
dkg added a comment to T4276: Context.decrypt() throws an error if *any* signature is bad.

@aheinecke thanks for the merge of my other branch! sadly, that branch does *not* address this issue yet. It doesn't even test for it. :( I can work on trying to fix it (and test it) if there's a consensus that we want this particular change in behavior.

Wed, Dec 5, 2:04 PM · gpgme, Python, Bug Report
aheinecke added a comment to T4276: Context.decrypt() throws an error if *any* signature is bad.

Is this fixed now?

Wed, Dec 5, 11:54 AM · gpgme, Python, Bug Report
aheinecke added a commit to T4271: python gpg.Context.decrypt(verify=False) no longer works: rM65c28da4e49a: python: overhaul logic of Context.decrypt().
Wed, Dec 5, 11:50 AM · Python, gpgme, Bug Report
aheinecke changed the status of T4271: python gpg.Context.decrypt(verify=False) no longer works from Open to Testing.

Ben is not even subscribed to this issue.
With the volatility of gpgme-python I think that this can easily be merged. I did a quick review and it looked good to me.

Wed, Dec 5, 11:49 AM · Python, gpgme, Bug Report
werner added a comment to T4271: python gpg.Context.decrypt(verify=False) no longer works.

Needs to be merged. (Note that Phabricator does not show the branch in the tooltip for commit ids.)

Wed, Dec 5, 10:44 AM · Python, gpgme, Bug Report
dkg added a comment to T4271: python gpg.Context.decrypt(verify=False) no longer works.

note that the branch also updates the test suite to make sure the verify=False case is tested.

Wed, Dec 5, 6:34 AM · Python, gpgme, Bug Report
dkg created T4276: Context.decrypt() throws an error if *any* signature is bad.
Wed, Dec 5, 6:18 AM · gpgme, Python, Bug Report
dkg added a commit to T4271: python gpg.Context.decrypt(verify=False) no longer works: rMac8d7238dbf1: python: overhaul logic of Context.decrypt().
Wed, Dec 5, 12:51 AM · Python, gpgme, Bug Report
dkg added a comment to T4271: python gpg.Context.decrypt(verify=False) no longer works.

I've just pushed a branch dkg/fix-T4271 , currently at ac8d7238dbf165950c9844e5cb41da8eb4d37bc0 that resolves this problem.

Wed, Dec 5, 12:51 AM · Python, gpgme, Bug Report

Wed, Nov 28

werner triaged T4271: python gpg.Context.decrypt(verify=False) no longer works as Unbreak Now! priority.

Regression introduced with 1.12.0.

Wed, Nov 28, 9:30 AM · Python, gpgme, Bug Report

Tue, Nov 27

dkg added a comment to T4271: python gpg.Context.decrypt(verify=False) no longer works.

please add a unit to the test suite to make sure something like this doesn't happen in the future!

Tue, Nov 27, 10:14 PM · Python, gpgme, Bug Report
dkg created T4271: python gpg.Context.decrypt(verify=False) no longer works.
Tue, Nov 27, 10:10 PM · Python, gpgme, Bug Report

Thu, Nov 22

dkg added a comment to T4191: gpgme python bindings test t-callbacks.py fails on 32-bit platforms.

i'd be happy to help you set up your own x86 32-bit guest VM for testing
if you like, even if you're running on x86_64 hardware. they're cheap
and easy to run, and have a delightfully small memory footprint :P just
let me know!

Thu, Nov 22, 1:44 PM · Python, gpgme, Bug Report
BenM changed the status of T4191: gpgme python bindings test t-callbacks.py fails on 32-bit platforms from Open to Testing.
Thu, Nov 22, 10:31 AM · Python, gpgme, Bug Report

Nov 5 2018

werner closed T3354: gpgme only builds against two versions of python at once as Resolved.

I consider this bug to be solved.

Nov 5 2018, 8:44 AM · Python, gpgme, Bug Report

Nov 3 2018

BenM added a comment to T3354: gpgme only builds against two versions of python at once.

MacPorts doesn't currently ship the bindings at all, but I'll see what they need to make that a reality too.

Nov 3 2018, 12:54 PM · Python, gpgme, Bug Report
BenM added a comment to T3354: gpgme only builds against two versions of python at once.

While this is now ideal for Debian, it may cause conflicts with other downstream vendors with slightly different needs to build their packages. In particular the FreeBSD ports and/or pkg system.

Nov 3 2018, 12:43 PM · Python, gpgme, Bug Report

Oct 29 2018

werner closed T4192: python gpg segfaults when first parameter to gpg.Context().op_genkey() is None or otherwise malformed as Resolved.
Oct 29 2018, 9:43 AM · Python, gpgme

Oct 20 2018

BenM added a comment to T4191: gpgme python bindings test t-callbacks.py fails on 32-bit platforms.

Nesting the op_genkey() calls inside try/except statements with the exceptions being caught as "oops" and otherwise "oops" being set to None provides a means of checking whether the 2099 expiration is a problem and 2037 is not.

Oct 20 2018, 2:37 AM · Python, gpgme, Bug Report
BenM added a comment to T4191: gpgme python bindings test t-callbacks.py fails on 32-bit platforms.

Well, I guess this answers my question in T4192 regarding why op_genkey was in use.

Oct 20 2018, 1:40 AM · Python, gpgme, Bug Report
BenM added a comment to T4192: python gpg segfaults when first parameter to gpg.Context().op_genkey() is None or otherwise malformed.

Interesting, I'll look into it, but is there a reason for using op_genkey instead of create_key (optionally with create_subkey and/or key_add_uid)? The latter should be easier and more pythonic.

Oct 20 2018, 1:16 AM · Python, gpgme
BenM added a comment to T3354: gpgme only builds against two versions of python at once.

This should already be possible, iirc the Arch Linux maintainer patched
it in. I believe there is a 'prepare' target that takes care of all the
preparations (duh), and then you can build for every Python version by
executing the Python build system with the Python version of your choice.

Oct 20 2018, 12:53 AM · Python, gpgme, Bug Report

Oct 19 2018

dkg added a comment to T3354: gpgme only builds against two versions of python at once.

@werner, thanks for rMff6ff616aea6 -- i've backported it to debian's packaging and it lets us cleanly build against all installed versions of python.

Oct 19 2018, 11:47 PM · Python, gpgme, Bug Report

Oct 18 2018

werner added a comment to T4191: gpgme python bindings test t-callbacks.py fails on 32-bit platforms.

That is up to @BenM

Oct 18 2018, 7:56 PM · Python, gpgme, Bug Report
dkg added a comment to T4191: gpgme python bindings test t-callbacks.py fails on 32-bit platforms.

the error i'd seen earlier after reverting the change was an error due to running t-callbacks.py on its own, without the rest of the test suite framework. running it within the test suite framework (with the change reverted), it passes without a problem. I've uploaded 1.12.0-4 to debian with a patch to t-callbacks.py. I can apply it upstream, if you want me to.

Oct 18 2018, 6:20 PM · Python, gpgme, Bug Report
werner added a comment to T4191: gpgme python bindings test t-callbacks.py fails on 32-bit platforms.

See T4195 for the general problem

Oct 18 2018, 6:10 PM · Python, gpgme, Bug Report
werner assigned T4191: gpgme python bindings test t-callbacks.py fails on 32-bit platforms to BenM.

I have not looked at the new error but the year 2099 is clearly a y2k38 problem. gpg has some precautions but I have not checked the key generation code. The gpgme interface uses a signed long for the expiration time, although that it parses the dates received from gpg as an unsigned long. Right now, I am not sure why we did this because an unsigned long would just work. Maybe we can change or enhance the interface. But in any case this is a general problem and not specific to this bug.

Oct 18 2018, 5:54 PM · Python, gpgme, Bug Report
werner changed the status of T4192: python gpg segfaults when first parameter to gpg.Context().op_genkey() is None or otherwise malformed from Open to Testing.
Oct 18 2018, 5:41 PM · Python, gpgme
werner added a commit to T4192: python gpg segfaults when first parameter to gpg.Context().op_genkey() is None or otherwise malformed: rMfbac11b19d97: core: Fix segv in genkey when no endtag is provided..
Oct 18 2018, 5:41 PM · Python, gpgme
werner added a comment to T4192: python gpg segfaults when first parameter to gpg.Context().op_genkey() is None or otherwise malformed.

@BenM thinks that swig is still the best option. Actually this case helped to find a bug in gpgme. See my next commit.

Oct 18 2018, 5:40 PM · Python, gpgme
dkg added a comment to T4191: gpgme python bindings test t-callbacks.py fails on 32-bit platforms.

The error might have to do with rM46da79e3de99a7b65748994921d6aab73b9974e7 which looks like it might run afoul of 32-bit time_t (Y2K38 problem?).

Oct 18 2018, 5:33 PM · Python, gpgme, Bug Report
dkg added a comment to T4191: gpgme python bindings test t-callbacks.py fails on 32-bit platforms.

here's me running just the specific test:

Oct 18 2018, 5:20 PM · Python, gpgme, Bug Report
dkg added a comment to T4192: python gpg segfaults when first parameter to gpg.Context().op_genkey() is None or otherwise malformed.

If the swig interface isn't robust, can we replace it with something that will be more robust? Or do we need to wrap it with hand-crafted error checks that describe the API's constraints? It's pretty bad form to segfault python.

Oct 18 2018, 5:01 PM · Python, gpgme
werner added a commit to T4192: python gpg segfaults when first parameter to gpg.Context().op_genkey() is None or otherwise malformed: rM174af15725d4: core: Return an error if NULL is provided for genkey's parms..
Oct 18 2018, 5:00 PM · Python, gpgme
dkg added a comment to T4192: python gpg segfaults when first parameter to gpg.Context().op_genkey() is None or otherwise malformed.

When parms is malformed but not NULL, then the error appears to be a bug in the python bindings in _wrap_gpgme_release. maybe something is going wrong because of the "cannot allocate memory" error? in particular:

Oct 18 2018, 4:52 PM · Python, gpgme
werner added a comment to T4192: python gpg segfaults when first parameter to gpg.Context().op_genkey() is None or otherwise malformed.

That swig based interface is not really robust and it can't be because it does not known about API requirements. I bet there are other places where mandatory parameters are not checked.

Oct 18 2018, 4:13 PM · Python, gpgme
dkg added a comment to T4192: python gpg segfaults when first parameter to gpg.Context().op_genkey() is None or otherwise malformed.

To deal with passing None correctly, it looks to me like the problem is inside get_parameter() in src/genkey.c -- there ought to be a check for parms being NULL, and then returning either GPG_ERR_INV_VALUE or something else. otherwise, the segfault happens inside strstr.

Oct 18 2018, 4:06 PM · Python, gpgme
dkg added a comment to T4192: python gpg segfaults when first parameter to gpg.Context().op_genkey() is None or otherwise malformed.

It the first error (first param = None) is a segfault in versions 1.11.1-2 (debian unstable i386) and 1.8.0-3+b2 (debian stretch amd64).

Oct 18 2018, 1:15 PM · Python, gpgme
werner changed the status of T3354: gpgme only builds against two versions of python at once from Open to Testing.
Oct 18 2018, 11:48 AM · Python, gpgme, Bug Report
werner triaged T4191: gpgme python bindings test t-callbacks.py fails on 32-bit platforms as High priority.
Oct 18 2018, 11:46 AM · Python, gpgme, Bug Report
werner assigned T4192: python gpg segfaults when first parameter to gpg.Context().op_genkey() is None or otherwise malformed to BenM.
Oct 18 2018, 11:39 AM · Python, gpgme