[jbrout] survive bad thumbnail patch

Matej Cepl mcepl at fedoraproject.org
Tue Jan 4 22:19:51 UTC 2011


commit 69ff90fe92aecdcbba44b7761416681c9cea2265
Author: Matěj Cepl <mcepl at redhat.com>
Date:   Tue Jan 4 23:19:36 2011 +0100

    survive bad thumbnail patch

 jbrout-survive-bad-thumbnail.patch |   49 ++++++++++++++++++++++++++++++++++++
 jbrout.spec                        |   10 ++++++-
 2 files changed, 57 insertions(+), 2 deletions(-)
---
diff --git a/jbrout-survive-bad-thumbnail.patch b/jbrout-survive-bad-thumbnail.patch
new file mode 100644
index 0000000..e4a9121
--- /dev/null
+++ b/jbrout-survive-bad-thumbnail.patch
@@ -0,0 +1,49 @@
+From 64fd6b993d95c65fdd647f70e8891507067254bd Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Mat=C4=9Bj=20Cepl?= <mcepl at redhat.com>
+Date: Tue, 4 Jan 2011 15:58:25 +0100
+Subject: [PATCH] Don't give up on image with broken thumbnail (or missing the one)
+
+Fixes #179.
+---
+ jbrout/jbrout/commongtk.py |    7 +++++--
+ jbrout/jbrout/db.py        |    5 +----
+ 2 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/jbrout/jbrout/commongtk.py b/jbrout/jbrout/commongtk.py
+index bb9377d..fea9df9 100755
+--- a/jbrout/jbrout/commongtk.py
++++ b/jbrout/jbrout/commongtk.py
+@@ -298,8 +298,11 @@ class Img(object):
+                 if extension == 'nef':
+                     data=Popen(["exiftool","-b","-PreviewImage","%s"%thumb],stdout=PIPE).communicate()[0]
+                 else:
+-                    data=img.getThumbnailData()[1]
+-
++                    thumbnailData = img.getThumbnailData()
++                    if len(thumbnailData) > 0:
++                        data=thumbnailData[1]
++                    else:
++                        raise KeyError
+                 loader = gtk.gdk.PixbufLoader ('jpeg')
+ 
+                 loader.write (data, len (data))
+diff --git a/jbrout/jbrout/db.py b/jbrout/jbrout/db.py
+index 06e1cdf..702550e 100755
+--- a/jbrout/jbrout/db.py
++++ b/jbrout/jbrout/db.py
+@@ -648,11 +648,8 @@ class PhotoNode(object):
+         except KeyError: # no exif
+             pb= pb_nothumb
+         except:
+-            # big error in "exif.py"
+-            print >>sys.stderr,'-'*60
+-            traceback.print_exc(file=sys.stderr)
+-            print >>sys.stderr,'-'*60
+             pb=pb_error
++            raise
+ 
+ 
+         return pb
+-- 
+1.7.3.4
+
diff --git a/jbrout.spec b/jbrout.spec
index 1174f2b..f4af8f4 100644
--- a/jbrout.spec
+++ b/jbrout.spec
@@ -3,7 +3,7 @@
 Name:           jbrout
 Version:        0.3.323
 %if 0%{?svn_checkout}
-Release:        0.svn323.4%{?dist}
+Release:        0.svn323.5%{?dist}
 %else
 Release:        2%{?dist}
 %endif
@@ -27,6 +27,8 @@ Patch0:         jbrout-allow-Exif-Orientation-zero.patch
 Patch1:         jbrout-download-plugin.patch
 # http://code.google.com/p/jbrout/issues/detail?id=129
 Patch2:         jbrout-eliminate-metadata-exiftool.patch
+# http://code.google.com/p/jbrout/issues/detail?id=179
+Patch3:         jbrout-survive-bad-thumbnail.patch
 BuildArch:      noarch
 BuildRoot:      %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
 Requires:       python >= 2.4, python-lxml, pygtk2 >= 2.6
@@ -60,6 +62,7 @@ jBrout is able to :
 %patch0 -p1 -b .exifOrientation
 %patch1 -p1 -b .downloadPlugin
 %patch2 -p1 -b .noExiftool
+%patch3 -p1 -b .badThumbnail
 sh %{SOURCE5}
 install -p %{SOURCE1} jbrout/Makefile
 install -p -m a+rx,u+w %{SOURCE4} jbrout/install-script
@@ -97,8 +100,11 @@ rm -rf $RPM_BUILD_ROOT
 %{_datadir}/applications/jbrout.desktop
 
 %changelog
+* Tue Jan 05 2011 Matěj Cepl <mcepl at redhat.com> - 0.3.323-0.svn323.5
+- Add patch to survive bad thumbnail (upstream #179)
+
 * Tue Jan 04 2011 Matěj Cepl <mcepl at redhat.com> - 0.3.323-0.svn323.4
-- Eliminate exiftool for metadata, make more robust.
+- Eliminate exiftool for metadata, make more robust (upstream #129)
 
 * Mon Dec 20 2010 Matěj Cepl <mcepl at redhat.com> - 0.3.323-3
 - apply patch improving Download plugin (upstream #155)


More information about the scm-commits mailing list