Comment 20 for bug 1641423

Revision history for this message
Naël (nathanael-naeri) wrote : Re: Back up failed with message: Failed to execute child process "duplicity" (No such file or directory)

@Vej:

This is an unusual setup and I find it difficult to explain. What about python-gi, is it installed?

deja-dup-backend-gvfs should have been installed either as a recommended dependency of deja-dup (prior to deja-dup package version 34.1-1ubuntu3), or on-demand when you click the button in the GUI (starting with deja-dup package version 34.1-1ubuntu3).

Did you perhaps install deja-dup prior to version 34.1-1ubuntu3 without installing its Recommends? Using dpkg or --without-recommends in aptitude or --no-install-recommends in apt-get, perhaps? And then clicked the button in the GUI? That's the only logical explanation I can think of (besides a bug). Or are you using Debian?

Full details below if you want to investigate more.

-----

Looking at Déjà Dup's codebase, it appears that packagekit is used to install duplicity on-demand if it is needed. The code for that was introduced by Déjà Dup's developer in revision 1548 for version 34.1:

  http://bazaar.launchpad.net/~deja-dup-hackers/deja-dup/34/revision/1548

It also appears that duplicity and deja-dup-backend-gvfs are listed as Recommends. But Debian and Ubuntu treat recommended packages as dependencies by default. So duplicity and deja-dup-backend-gvfs should be present from the start in any normal installation, meaning that the code for on-demand installation of duplicity would not be triggered.

That situation is not what we observe, because further modifications have been introduced at packaging time by the maintainers of the deja-dup Debian and Ubuntu packages. Looking at the changes for the Ubuntu source package we learn that:

In revision 46, package version 34.1-0ubuntu1:
duplicity was dropped to a Suggests for deja-dup, to help get python2 off of the default Ubuntu image (suggested packages are not installed by default, contrary to recommended packages)

  http://bazaar.launchpad.net/~ubuntu-desktop/deja-dup/ubuntu/revision/46

In revision 47, package version 34.1-1ubuntu1:
python-gi was added as a Depends for deja-dup-backend-gvfs

  http://bazaar.launchpad.net/~ubuntu-desktop/deja-dup/ubuntu/revision/47

In revision 49, package version 34.1-1ubuntu2:
code was introduced to install python-gi on-demand, and python-gi was therefore dropped to a Suggests for deja-dup-backend-gvfs

  http://bazaar.launchpad.net/~ubuntu-desktop/deja-dup/ubuntu/revision/49

In revision 50, package version 34.1-1ubuntu3:
code was modified to install deja-dup-backend-gvfs on-demand instead of python-gi, which was therefore upgraded back to a Depends for deja-dup-backend-gvfs, which in turn was dropped from a Recommends to a Suggests for deja-dup (also it was changed to depend on duplicity too)

  http://bazaar.launchpad.net/~ubuntu-desktop/deja-dup/ubuntu/revision/50

See also changelog on http://packages.ubuntu.com/source/xenial/deja-dup

This is how we end up today with Déjà Dup's codebase including code for on-demand install of duplicity and Déjà Dup's Ubuntu package including code for on-demand install of deja-dup-backend-gvfs, which depends on duplicity and python-gi.