← Back to team overview

deja-dup-team team mailing list archive

[Merge] lp:~adrien-bak/deja-dup/ducplicity-version-retrieval into lp:deja-dup

 

Adrien BAK has proposed merging lp:~adrien-bak/deja-dup/ducplicity-version-retrieval into lp:deja-dup.

Requested reviews:
  Déjà Dup Developers (deja-dup-hackers)

For more details, see:
https://code.launchpad.net/~adrien-bak/deja-dup/ducplicity-version-retrieval/+merge/239340

duplicity 0.6.25 change the format of the version string from :
>> duplicity --version
duplicity 0.6.24

to 
>> duplicity --version
Duplicity 0.6 series is being deprecated:
See http://www.nongnu.org/duplicity/

duplicity 0.6.25


which breaks deja-dup since it uses the second word of the version string.
The proposed patch changes this behaviour by taking instead the penultimate word (the last one is alway null), which works in both cases.
-- 
https://code.launchpad.net/~adrien-bak/deja-dup/ducplicity-version-retrieval/+merge/239340
Your team Déjà Dup Developers is requested to review the proposed merge of lp:~adrien-bak/deja-dup/ducplicity-version-retrieval into lp:deja-dup.
=== modified file 'AUTHORS'
--- AUTHORS	2014-04-29 02:38:47 +0000
+++ AUTHORS	2014-10-23 06:41:44 +0000
@@ -12,6 +12,10 @@
 Comment: For specific author information, see the bzr logs
 License: GPL-3+
 
+Files: libdeja/tools/duplicity/DuplicityPlugin.vala
+Copyright: 2014 Adrien Bak <adrien.bak@xxxxxxxxx>
+Licence: GPL-3+
+
 Files: po/*.po
 Copyright: 2008–2013 Rosetta Contributors and Canonical Ltd
 License: GPL-3+

=== modified file 'libdeja/tools/duplicity/DuplicityPlugin.vala'
--- libdeja/tools/duplicity/DuplicityPlugin.vala	2014-01-24 16:07:59 +0000
+++ libdeja/tools/duplicity/DuplicityPlugin.vala	2014-10-23 06:41:44 +0000
@@ -35,13 +35,17 @@
   {
     string output;
     Process.spawn_command_line_sync("duplicity --version", out output, null, null);
+    var tokens = output.split(" ");
 
-    var tokens = output.split(" ", 2);
-    if (tokens == null || tokens[0] == null || tokens[1] == null)
+    if (tokens == null || tokens.length < 2 )
       throw new SpawnError.FAILED(_("Could not understand duplicity version."));
 
-    // First token is 'duplicity' and is ignorable.  Second looks like '0.5.03'
-    var version_string = tokens[1].strip();
+    // in version 0.6.25, the output fro duplicity --version changed and the string
+    // "duplicity major.minor.micro" is not preceded by a deprecation warning
+    // as a consequence, the substring "major.minor.micro" is now
+    // always the penultimate token (the last one always being null)
+
+    var version_string = tokens[tokens.length - 1].strip();
     int major, minor, micro;
     if (!DejaDup.parse_version(version_string, out major, out minor, out micro))
       throw new SpawnError.FAILED(_("Could not understand duplicity version ‘%s’.").printf(version_string));


Follow ups