python3, and a gpg question

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

python3, and a gpg question

duplicity-talk mailing list
Hi,

I was just testing the imap backend on python 3 and had a couple of
questions.

Setup.py now has this:
if sys.version_info[:2] < (3, 5):
     print("Sorry, duplicity requires version 3.5 or later of Python.")

This check currently excludes python 2. Is that intended? I thought that
the plan was for 0.8 to support both python 2 and python 3. If 0.8 will
actually be python 3 only, then that would probably make it easier to tidy
up the code in some places, but tox.ini still specifies that the unit
tests should also be run on 2.7.

Also, I've fixed a few issues with the back end in
lp:~mgorse/duplicity/0.8-series (mostly string vs. bytes issues and email
API changes), but I'm getting this error when running list-current-files:

GPGError: GPG Failed, see log below:
===== Begin GnuPG log =====
gpg: AES encrypted data
gpg: gcry_kdf_derive failed: Invalid data
gpg: encrypted with 1 passphrase
gpg: decryption failed: No secret key
===== End GnuPG log =====

I'm wondering whether anyone has seen this; I'm puzzled by it, since it
doesn't appear to be an issue of the back end corrupting the data, and
restore works correctly despite list-current-files failing.

Thanks,
-Mike

_______________________________________________
Duplicity-talk mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/duplicity-talk
Reply | Threaded
Open this post in threaded view
|

Re: python3, and a gpg question

duplicity-talk mailing list
Hello Mike,


On 2019-05-09 22:22, Mike Gorse via Duplicity-talk wrote:

> I was just testing the imap backend on python 3 and had a couple of
> questions.
>
> Setup.py now has this:
> if sys.version_info[:2] < (3, 5):
>     print("Sorry, duplicity requires version 3.5 or later of Python.")
>
> This check currently excludes python 2. Is that intended? I thought
> that the plan was for 0.8 to support both python 2 and python 3. If
> 0.8 will actually be python 3 only, then that would probably make it
> easier to tidy up the code in some places, but tox.ini still specifies
> that the unit tests should also be run on 2.7.

Yes, you are correct, the plan is for Duplicity 0.8 to be Python 2 and 3
and for 0.9 to be Python 3 only.

We are a bit late getting a 0.8 release out the door and we are getting
pretty close to Python 2 going EOL. I do not see a lot of benefit
continuing to support Python 2 beyond Python 2 EOL.

> Also, I've fixed a few issues with the back end in
> lp:~mgorse/duplicity/0.8-series (mostly string vs. bytes issues and
> email API changes),

Thank you for your Python 3 work, it is really appreciated. If you do
find Python 3 bugs, please do file them and reference them in the Python
3 blueprint:
https://blueprints.launchpad.net/duplicity/+spec/python3
Please also feel free to add anything relevant to that blueprint (e.g.
backends you have tested that work or do not work).

> but I'm getting this error when running
> list-current-files:
>
> GPGError: GPG Failed, see log below:
> ===== Begin GnuPG log =====
> gpg: AES encrypted data
> gpg: gcry_kdf_derive failed: Invalid data
> gpg: encrypted with 1 passphrase
> gpg: decryption failed: No secret key
> ===== End GnuPG log =====
>
> I'm wondering whether anyone has seen this; I'm puzzled by it, since
> it doesn't appear to be an issue of the back end corrupting the data,
> and restore works correctly despite list-current-files failing.

No, it is not one I have come across. Does it work as expected if you
use Python 2?

Kind regards,

Aaron

_______________________________________________
Duplicity-talk mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/duplicity-talk
Reply | Threaded
Open this post in threaded view
|

Re: python3, and a gpg question

duplicity-talk mailing list
On 10.05.2019 12:54, Aaron via Duplicity-talk wrote:

> but I'm getting this error when running
> list-current-files:
>
> GPGError: GPG Failed, see log below:
> ===== Begin GnuPG log =====
> gpg: AES encrypted data
> gpg: gcry_kdf_derive failed: Invalid data
> gpg: encrypted with 1 passphrase
> gpg: decryption failed: No secret key
> ===== End GnuPG log =====
>
> I'm wondering whether anyone has seen this; I'm puzzled by it, since
> it doesn't appear to be an issue of the back end corrupting the data,
> and restore works correctly despite list-current-files failing.

sounds like it needs the proper passphrase for symmetrically encrypted backup data. can you check that it is given and properly propagated?

..ede/duply.net

_______________________________________________
Duplicity-talk mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/duplicity-talk
Reply | Threaded
Open this post in threaded view
|

Re: python3, and a gpg question

duplicity-talk mailing list
On Fri, 10 May 2019, edgar.soldin--- via Duplicity-talk wrote:

>> but I'm getting this error when running
>> list-current-files:
>>
>> GPGError: GPG Failed, see log below:
>> ===== Begin GnuPG log =====
>> gpg: AES encrypted data
>> gpg: gcry_kdf_derive failed: Invalid data
>> gpg: encrypted with 1 passphrase
>> gpg: decryption failed: No secret key
>> ===== End GnuPG log =====
>>
>> I'm wondering whether anyone has seen this; I'm puzzled by it, since
>> it doesn't appear to be an issue of the back end corrupting the data,
>> and restore works correctly despite list-current-files failing.
>
> sounds like it needs the proper passphrase for symmetrically encrypted backup data. can you check that it is given and properly propagated?

Indeed, gpg is not being passed a passphrase. Duplicity isn't asking for
one because, in theory, it shouldn't need to invoke gpg at all when
listing files, once the local cache is synch. Still investigating the root
cause; probably a regression from my python 3 changes.

Thanks,
-Mike

_______________________________________________
Duplicity-talk mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/duplicity-talk
Reply | Threaded
Open this post in threaded view
|

Re: python3, and a gpg question

duplicity-talk mailing list
In reply to this post by duplicity-talk mailing list
Mike,

On 2019-05-10 11:54, Aaron via Duplicity-talk wrote:

> On 2019-05-09 22:22, Mike Gorse via Duplicity-talk wrote:
>> Setup.py now has this:
>> if sys.version_info[:2] < (3, 5):
>>     print("Sorry, duplicity requires version 3.5 or later of Python.")
>>
>> This check currently excludes python 2. Is that intended? I thought
>> that the plan was for 0.8 to support both python 2 and python 3.
>
> Yes, you are correct, the plan is for Duplicity 0.8 to be Python 2 and
> 3 and for 0.9 to be Python 3 only.

Something like:

if not (sys.version_info[:2] >= (3, 5) or (sys.version_info[0] == 2 and
sys.version_info[:2] >= (2, 7))):
     print("Sorry, duplicity requires version 3.5 or later of Python.")
     sys.exit(1)

is my understanding of how this check should work.

Kind regards,

Aaron

_______________________________________________
Duplicity-talk mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/duplicity-talk
Reply | Threaded
Open this post in threaded view
|

Re: python3, and a gpg question

duplicity-talk mailing list
Hi Aaron,

> On 2019-05-10 11:54, Aaron via Duplicity-talk wrote:
> Something like:
>
> if not (sys.version_info[:2] >= (3, 5) or (sys.version_info[0] == 2 and
> sys.version_info[:2] >= (2, 7))):
>     print("Sorry, duplicity requires version 3.5 or later of Python.")
>     sys.exit(1)
>
> is my understanding of how this check should work.

Okay. I already have a merge request open for other reasons, so I've added
that check to my branch.

As for the other issue I was having, I filed it as lp#1828869 and also
have a fix in my branch. It is also a regression in 0.7.19, but I haven't
submitted a fix there so far--I figured I'd wait for a review first.

Thanks,
-Mike

_______________________________________________
Duplicity-talk mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/duplicity-talk