Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.

Bug 1881990

Summary: PyDrive not installable by Deja Dup's packagekit support
Product: [Fedora] Fedora Reporter: Michael Terry <mike>
Component: deja-dupAssignee: Gwyn Ciesla <gwync>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: fedora, gwync, jitesh.1337, kai-engert-fedora, walter.pete
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: deja-dup-42.4-2.fc33 deja-dup-42.4-2.fc32 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-09-28 00:14:53 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Michael Terry 2020-09-23 14:33:46 UTC
Description of problem:
When the pydrive package* is not installed, Deja Dup does not offer to install it.

* https://src.fedoraproject.org/rpms/PyDrive

Version-Release number of selected component (if applicable):
42.4

How reproducible:
Always

Steps to Reproduce:
1. Make sure that pydrive is uninstalled
2. Open Deja Dup's preferences and set your storage location to Google Drive
3. Try to back up

Actual results:
Deja Dup will throw up an error like:

BackendException: PyDrive backend requires PyDrive installation.  Please read the manpage for setup details.
Exception: No module named 'pydrive'

Expected results:
It should offer to install the missing package using packagekit.

Additional info:
The easy fix is to add a meson argument like -Dpydrive_pkgs=

However, I noticed some early signs of building the packaging as a flatpak too in git. Maybe it would be better to just Require the pydrive package? That way, it's always available in both rpm and flatpak formats.

Also,
1. The spec file builds with packagekit support but does not currently use it (duplicity and python3-gobject-base are already Required, and pydrive is not configured -- those are the only three packages that deja-dup currently has packagekit support for). If you do not decide to add the -Dpydrive_pkgs argument, you can drop the BuildRequires on packagekit.

2. PyDrive is unmaintained and has some bugs in it (notably, a bug around 308 redirects introduced with httplib2 0.16 *). There is a drop-in maintained replacement PyDrive2 here: https://github.com/iterative/PyDrive2

* https://github.com/googleapis/google-api-python-client/issues/803 -- you could also just patch Fedora's pydrive with the fixes they applied in pydrive2: https://github.com/iterative/PyDrive2/compare/c2609b74f41569f81e98376ab6cbc71333e82848...18537bbb5b9a7eee38c84bc1bbea46faf42c18b4

Comment 1 Michael Terry 2020-09-23 14:38:00 UTC
Well, I guess pydrive2 isn't drop-in, since it has its own module name (pydrive2). But the API is the same, is what I meant.

Comment 2 Michael Terry 2020-09-23 14:39:01 UTC
(And duplicity has transparent support for both pydrive and pydrive2, it will use whichever it finds.)

Comment 3 Gwyn Ciesla 2020-09-23 15:15:51 UTC
This is because the Requires for python3-PyDrive for duplicity was just changed to Recommends, to reduce dependencies.
https://bugzilla.redhat.com/show_bug.cgi?id=1876318
An alternate solution would be to Require python3-PyDrive in deja-dup. Thoughts?

Comment 4 Michael Terry 2020-09-23 15:46:23 UTC
> An alternate solution would be to Require python3-PyDrive in deja-dup. Thoughts?

That makes sense to me. Deja Dup has its own duplicity-backend requirements and concerns. Makes sense that it would ensure the ones it cares about are installed.

That way you can also drop the packagekit BuildRequires.

Regarding the pydrive/pydrive2/httplib2 issue, I'll file a bug against the pydrive package pointing at the pydrive2 redirect patches. That will at least cover the greatest pydrive sin.

Comment 5 Fedora Update System 2020-09-23 16:16:50 UTC
FEDORA-2020-0014d48eae has been submitted as an update to Fedora 32. https://bodhi.fedoraproject.org/updates/FEDORA-2020-0014d48eae

Comment 6 Fedora Update System 2020-09-23 16:16:51 UTC
FEDORA-2020-c4ed855a2c has been submitted as an update to Fedora 33. https://bodhi.fedoraproject.org/updates/FEDORA-2020-c4ed855a2c

Comment 7 Fedora Update System 2020-09-23 17:22:29 UTC
FEDORA-2020-0014d48eae has been pushed to the Fedora 32 testing repository.
In short time you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2020-0014d48eae`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-0014d48eae

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 8 Fedora Update System 2020-09-24 13:33:01 UTC
FEDORA-2020-c4ed855a2c has been pushed to the Fedora 33 testing repository.
In short time you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2020-c4ed855a2c`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-c4ed855a2c

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 9 Fedora Update System 2020-09-28 00:14:53 UTC
FEDORA-2020-c4ed855a2c has been pushed to the Fedora 33 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 10 Fedora Update System 2020-10-01 01:28:58 UTC
FEDORA-2020-0014d48eae has been pushed to the Fedora 32 stable repository.
If problem still persists, please make note of it in this bug report.