Bug#683924: unblock: shotwell/0.12.3-2
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock
Please unblock package shotwell
It provides a fix for #665498, which has been tested and applied upstream.
unblock shotwell/0.12.3-2
-- System Information:
Debian Release: wheezy/sid
APT prefers unstable
APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 3.2.0-3-amd64 (SMP w/8 CPU cores)
diff -Nru shotwell-0.12.3/debian/changelog shotwell-0.12.3/debian/changelog
--- shotwell-0.12.3/debian/changelog 2012-06-03 15:18:23.000000000 +0200
+++ shotwell-0.12.3/debian/changelog 2012-08-05 14:54:36.000000000 +0200
@@ -1,3 +1,12 @@
+shotwell (0.12.3-2) unstable; urgency=low
+
+ * Team upload.
+ * debian/patches/metadata.patch:
+ - Cherry-pick patches from upstream repository to fix crashes while
+ managing metadata (Closes: #665498).
+
+ -- Luca Falavigna <dktrkranz@debian.org> Sun, 22 Jul 2012 11:56:51 +0200
+
shotwell (0.12.3-1) unstable; urgency=low
* Team upload.
diff -Nru shotwell-0.12.3/debian/patches/metadata.patch shotwell-0.12.3/debian/patches/metadata.patch
--- shotwell-0.12.3/debian/patches/metadata.patch 1970-01-01 01:00:00.000000000 +0100
+++ shotwell-0.12.3/debian/patches/metadata.patch 2012-07-22 11:56:42.000000000 +0200
@@ -0,0 +1,33 @@
+Description: Writing metadata ends up in a neverending cycle
+Author: Clinton Rogers
+
+Index: shotwell-0.12.3/src/MetadataWriter.vala
+===================================================================
+--- shotwell-0.12.3.orig/src/MetadataWriter.vala 2012-05-08 23:46:35.000000000 +0200
++++ shotwell-0.12.3/src/MetadataWriter.vala 2012-07-22 11:55:09.212907651 +0200
+@@ -103,7 +103,24 @@
+ }
+
+ // tags (keywords) ... replace (or clear) entirely rather than union or intersection
+- if (!equal_sets(current_keywords, metadata.get_keywords())) {
++
++ Gee.Set<string> safe_keywords = new Gee.HashSet<string>();
++
++ // Since the tags are stored in an image file's `keywords' field in
++ // non-hierarchical format, before checking whether the tags that
++ // should be associated with this image have been written, we'll need
++ // to produce non-hierarchical versions of the tags to be tested.
++ // get_user_visible_name() does this by returning the most deeply-nested
++ // portion of a given hierarchical tag; that is, for a tag "/a/b/c",
++ // it'll return "c", which is exactly the form we want here.
++ if (current_keywords != null) {
++ foreach(string tmp in current_keywords) {
++ Tag tag = Tag.for_path(tmp);
++ safe_keywords.add(tag.get_user_visible_name());
++ }
++ }
++
++ if (!equal_sets(safe_keywords, metadata.get_keywords())) {
+ metadata.set_keywords(current_keywords);
+ changed = true;
+ }
diff -Nru shotwell-0.12.3/debian/patches/series shotwell-0.12.3/debian/patches/series
--- shotwell-0.12.3/debian/patches/series 2012-06-03 12:23:14.000000000 +0200
+++ shotwell-0.12.3/debian/patches/series 2012-07-22 11:35:17.000000000 +0200
@@ -1,3 +1,4 @@
gettext.patch
format_string.patch
openmp.patch
+metadata.patch
Reply to: