Package: deja-dup
Severity: important
Version: 14.2-1
Tags: patch fixed-upstream

Déjà Dup in Squeeze and unstable is affected by LP #582720 [1].
Restoring fails with the following stacktrace:

Traceback (most recent call last):
  File "/usr/bin/duplicity", line 1239, in <module>
    with_tempdir(main)
  File "/usr/bin/duplicity", line 1232, in with_tempdir
    fn()
  File "/usr/bin/duplicity", line 1124, in main
    globals.gpg_profile.passphrase = get_passphrase(1, action)
  File "/usr/bin/duplicity", line 128, in get_passphrase
    pass1 = getpass.getpass("GnuPG passphrase: ")
  File "/usr/lib/python2.6/getpass.py", line 83, in unix_getpass
    passwd = fallback_getpass(prompt, stream)
  File "/usr/lib/python2.6/getpass.py", line 118, in fallback_getpass
    return _raw_input(prompt, stream)
  File "/usr/lib/python2.6/getpass.py", line 135, in _raw_input
    raise EOFError
EOFError

This bug appears on system in sudo mode. It was introduced by the change
in the default configuration of sudo to strip out environment variables.

The bug has been fixed upstream, in revision 728, extracted to the
attached patch.

This issue should be fixed in a Squeeze point release. I am willing to
prepare an upload and coordinate with SRM, if you'd like.

[1] https://bugs.launchpad.net/deja-dup/+bug/582720

Cheers,
-- 
Jérémy Bobbio                        .''`. 
lu...@debian.org                    : :Ⓐ  :  # apt-get install anarchism
                                    `. `'` 
                                      `-   
=== modified file 'common/DuplicityInstance.vala'
--- common/DuplicityInstance.vala	2010-10-03 05:24:54 +0000
+++ common/DuplicityInstance.vala	2010-10-11 13:05:22 +0000
@@ -146,7 +146,13 @@
         
         // We have to wrap all current args into one string.
         StringBuilder args = new StringBuilder();
-        foreach(string a in argv) {
+
+        // Set environment variables for subprocess here because sudo reserves
+        // the right to strip them.
+        foreach (string env in envp_in)
+          args.append("export %s\n".printf(env));
+
+        foreach (string a in argv) {
           if (a == null)
             break;
           if (args.len == 0)

Attachment: signature.asc
Description: Digital signature

Reply via email to