diff --git a/gphotoframe-2.0a2-fix-gdk-oldsymbol.patch b/gphotoframe-2.0a2-fix-gdk-oldsymbol.patch new file mode 100644 index 0000000..443584e --- /dev/null +++ b/gphotoframe-2.0a2-fix-gdk-oldsymbol.patch @@ -0,0 +1,17 @@ +--- gphotoframe-2.0-a2/lib/preferences/photosource.py.gdksymbol 2012-02-24 21:31:51.000000000 +0900 ++++ gphotoframe-2.0-a2/lib/preferences/photosource.py 2012-08-13 00:29:12.000000000 +0900 +@@ -1,4 +1,4 @@ +-from gi.repository import Gtk ++from gi.repository import Gtk, Gdk + # from gettext import gettext as _ + + from ..constants import UI_FILE +@@ -54,7 +54,7 @@ + self.treeview.set_cursor(row, None, False) + + def on_treeview1_button_press_event(self, widget, event): +- if event.type == Gdk._2BUTTON_PRESS: ++ if event.type == Gdk.EventType._2BUTTON_PRESS: + self.on_button4_clicked(widget) + return True + diff --git a/gphotoframe-2.0a2-fix-traceback-choosing-folder-plugin.patch b/gphotoframe-2.0a2-fix-traceback-choosing-folder-plugin.patch new file mode 100644 index 0000000..14b45b9 --- /dev/null +++ b/gphotoframe-2.0a2-fix-traceback-choosing-folder-plugin.patch @@ -0,0 +1,53 @@ +--- ./gphotoframe-2.0-a2/lib/liststore.py.debug 2012-02-24 21:31:51.000000000 +0900 ++++ ./gphotoframe-2.0-a2/lib/liststore.py 2012-08-13 14:59:32.000000000 +0900 +@@ -39,13 +39,22 @@ + self._start_timer() + + def append(self, d, iter=None, is_delay=False): +- if 'source' not in d or d['source'] not in plugins.MAKE_PHOTO_TOKEN: ++ if 'source' not in d: + return None + +- obj = plugins.MAKE_PHOTO_TOKEN[ d['source'] ]( ++ sourcestr = d['source'] ++ if sourcestr not in plugins.MAKE_PHOTO_TOKEN: ++ try: ++ sourcestr = sourcestr.decode('utf-8') ++ except: ++ return None ++ if sourcestr not in plugins.MAKE_PHOTO_TOKEN: ++ return None ++ ++ obj = plugins.MAKE_PHOTO_TOKEN[ sourcestr ]( + d['target'], d['argument'], d['weight'], d['options'], self) +- pixbuf = plugins.PLUGIN_INFO_TOKEN[d['source']]().get_icon_pixbuf() +- list = [ pixbuf, d['source'], ++ pixbuf = plugins.PLUGIN_INFO_TOKEN[sourcestr]().get_icon_pixbuf() ++ list = [ pixbuf, sourcestr, + d['target'], d['argument'], d['weight'], d['options'], obj ] + + new_iter = self.insert_before(iter, list) +--- ./gphotoframe-2.0-a2/lib/preferences/plugin.py.debug 2012-02-24 21:31:51.000000000 +0900 ++++ ./gphotoframe-2.0-a2/lib/preferences/plugin.py 2012-08-13 16:17:36.000000000 +0900 +@@ -41,7 +41,8 @@ + self.gui.get_object('button6').set_sensitive(state) + + def on_treeview2_cursor_changed(self, widget): +- (model, iter) = self.treeview.get_selection().get_selected() ++ selection = self.treeview.get_selection() ++ (model, iter) = selection.get_selected() if selection else (None, None) + plugin_type = model[iter][2] if iter else None + + state = bool(plugin_type in DIALOG_TOKEN) +--- ./gphotoframe-2.0-a2/lib/preferences/treeview.py.debug 2012-02-24 21:31:51.000000000 +0900 ++++ ./gphotoframe-2.0-a2/lib/preferences/treeview.py 2012-08-13 16:14:13.000000000 +0900 +@@ -11,5 +11,8 @@ + self._set_button_sensitive(False) + + def on_treeview1_cursor_changed(self, widget): +- if self.treeview.get_selection().get_selected()[1] != None: ++ selection = self.treeview.get_selection() ++ if not selection: ++ return ++ if selection.get_selected()[1] != None: + self._set_button_sensitive(True) diff --git a/gphotoframe-2.0a2-parseexif-geom-zerovalue.patch b/gphotoframe-2.0a2-parseexif-geom-zerovalue.patch new file mode 100644 index 0000000..df06dff --- /dev/null +++ b/gphotoframe-2.0a2-parseexif-geom-zerovalue.patch @@ -0,0 +1,30 @@ +--- ./gphotoframe-2.0-a2/lib/plugins/base/parseexif.py.zero 2012-02-15 16:05:52.000000000 +0900 ++++ ./gphotoframe-2.0-a2/lib/plugins/base/parseexif.py 2012-08-13 16:21:32.000000000 +0900 +@@ -61,6 +61,14 @@ + + return orientation + ++ def realvalue_geo(self, fracs): ++ result = 0. ++ factor = 1. ++ for frac in fracs: ++ result += frac.num and frac.num / factor / frac.den or 0. ++ factor *= 60. ++ return result ++ + def get_geo(self): + lat_array = self.tags.get('GPS GPSLatitude') + lon_array = self.tags.get('GPS GPSLongitude') +@@ -70,8 +78,10 @@ + lon = lon_array.values + lat = lat_array.values + +- x = lon[0].num + lon[1].num/60 + lon[2].num/3600/lon[2].den +- y = lat[0].num + lat[1].num/60 + lat[2].num/3600/lat[2].den ++ #x = lon[0].num + lon[1].num/60. + lon[2].num/3600./lon[2].den ++ #y = lat[0].num + lat[1].num/60. + lat[2].num/3600./lat[2].den ++ x = self.realvalue_geo(lon) ++ y = self.realvalue_geo(lat) + + lon_ref = -1 if str(self.tags.get('GPS GPSLongitudeRef')) == 'W' else 1 + lat_ref = -1 if str(self.tags.get('GPS GPSLatitudeRef')) == 'S' else 1 diff --git a/gphotoframe.spec b/gphotoframe.spec index 8620c53..dff4f85 100644 --- a/gphotoframe.spec +++ b/gphotoframe.spec @@ -11,14 +11,14 @@ %global mainver 2.0 %define minorver -a2 -%global mainrel 1 +%global mainrel 2 %global rpmminorver %(echo "%minorver" | sed -e 's|^-||' | sed -e 's|\\\.||') %global fedorarel %{?minorver:0.}%{mainrel}%{?minorver:.%rpmminorver} Name: gphotoframe Version: %{mainver} -Release: %{fedorarel}%{?dist}.1 +Release: %{fedorarel}%{?dist} Summary: Photo Frame Gadget for the GNOME Desktop Group: Amusements/Graphics @@ -29,6 +29,14 @@ License: GPLv3 and GPLv2+ and GFDL URL: http://code.google.com/p/gphotoframe/ Source0: http://gphotoframe.googlecode.com/files/%{name}-%{mainver}%{?minorver}.tar.gz +# Fix traceback when choosing photo source on setting gui: +# upstream hp commit c6189be818cc +Patch0: gphotoframe-2.0a2-fix-gdk-oldsymbol.patch +# Fix traceback when choosing folder plugin on setting gui +Patch1: gphotoframe-2.0a2-fix-traceback-choosing-folder-plugin.patch +# Handle exif file with zero denominator on geometry information +Patch2: gphotoframe-2.0a2-parseexif-geom-zerovalue.patch + BuildRequires: GConf2 BuildRequires: desktop-file-utils BuildRequires: gettext @@ -80,6 +88,10 @@ for gnome-screensaver compatibility. %prep %setup -q -n %{name}-%{mainver}%{?minorver} +%patch0 -p1 -b .oldsymbol +%patch1 -p2 -b .folder +%patch2 -p2 -b .zeroden + # Remove unneeded shebangs grep -rl '^#![ \t]*%{_bindir}' lib/ | \ xargs sed -i -e '\@^#![ \t]*%{_bindir}@d' @@ -160,14 +172,14 @@ exit 0 %postun if [ $1 -eq 0 ] ; then touch --no-create %{_datadir}/icons/hicolor >/dev/null - gtk-update-icon-cache %{_datadir}/icons/hicolor >/dev/null - glib-compile-schemas %{_datadir}/glib-2.0/schemas > /dev/null + gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null + glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null fi exit 0 %posttrans -gtk-update-icon-cache %{_datadir}/icons/hicolor >/dev/null -glib-compile-schemas %{_datadir}/glib-2.0/schemas > /dev/null +gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null +glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null exit 0 @@ -203,6 +215,11 @@ exit 0 %{_datadir}/applications/screensavers/%{name}-screensaver.desktop %changelog +* Mon Aug 19 2012 Mamoru Tasaka - 2.0-0.2.a2 +- Fix traceback when choosing photo source on setting gui +- Fix traceback when choosing folder plugin on setting gui +- Handle exif file with zero denominator on geometry information + * Thu Jul 19 2012 Fedora Release Engineering - 2.0-0.1.a2.1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild