Hello community, here is the log from the commit of package syncthing-gtk for openSUSE:Factory checked in at 2015-10-12 10:01:59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/syncthing-gtk (Old) and /work/SRC/openSUSE:Factory/.syncthing-gtk.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "syncthing-gtk" Changes: -------- --- /work/SRC/openSUSE:Factory/syncthing-gtk/syncthing-gtk.changes 2015-09-08 17:42:13.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.syncthing-gtk.new/syncthing-gtk.changes 2015-10-12 10:02:00.000000000 +0200 @@ -1,0 +2,10 @@ +Mon Oct 5 14:45:54 UTC 2015 - [email protected] + +- Update to 0.7.6: + * Fix crash on too old and too recent glib. + * Fix inotify (filesystem watcher) not being aware of created + directories. + * Fix Caja / Nautilus plugin ignoring some files until view is + refreshed. + +------------------------------------------------------------------- Old: ---- syncthing-gtk-0.7.5.1.tar.gz New: ---- syncthing-gtk-0.7.6.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ syncthing-gtk.spec ++++++ --- /var/tmp/diff_new_pack.sMhVkR/_old 2015-10-12 10:02:01.000000000 +0200 +++ /var/tmp/diff_new_pack.sMhVkR/_new 2015-10-12 10:02:01.000000000 +0200 @@ -19,7 +19,7 @@ %global __requires_exclude typelib\\(Caja\\)|typelib\\(Nautilus\\)|typelib\\(Nemo\\) %define _name syncthing_gtk Name: syncthing-gtk -Version: 0.7.5.1 +Version: 0.7.6 Release: 0 Summary: Syncthing Gtk-based graphical interface License: GPL-2.0+ ++++++ syncthing-gtk-0.7.5.1.tar.gz -> syncthing-gtk-0.7.6.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing-gtk-0.7.5.1/README.md new/syncthing-gtk-0.7.6/README.md --- old/syncthing-gtk-0.7.5.1/README.md 2015-09-02 17:54:54.000000000 +0200 +++ new/syncthing-gtk-0.7.6/README.md 2015-09-27 23:08:48.000000000 +0200 @@ -22,7 +22,8 @@ Dependencies: - python 2.7, GTK 3.8 or newer and [PyGObject](https://live.gnome.org/PyGObject) -- [python-gi-cairo](https://packages.debian.org/jessie/python-gi-cairo) on debian based distros (included in PyGObject elsewhere) +- [python-gi-cairo](https://packages.debian.org/sid/python-gi-cairo) on debian based distros (included in PyGObject elsewhere) +- [gir1.2-rsvg-2.0](https://packages.debian.org/sid/gir1.2-rsvg-2.0) on debian based distros (included in PyGObject elsewhere) - [python-dateutil](http://labix.org/python-dateutil) (Python 2 version) - [setuptools](https://pypi.python.org/pypi/setuptools) - [psmisc](http://psmisc.sourceforge.net) (for the `killall` command) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing-gtk-0.7.5.1/syncthing_gtk/aboutdialog.py new/syncthing-gtk-0.7.6/syncthing_gtk/aboutdialog.py --- old/syncthing-gtk-0.7.5.1/syncthing_gtk/aboutdialog.py 2015-09-02 17:54:54.000000000 +0200 +++ new/syncthing-gtk-0.7.6/syncthing_gtk/aboutdialog.py 2015-09-27 23:08:48.000000000 +0200 @@ -43,8 +43,9 @@ vfile = file(os.path.join(get_install_path(), "__version__"), "r") app_ver = vfile.read().strip(" \t\r\n") else: - import pkg_resources - app_ver = pkg_resources.require("syncthing-gtk")[0].version + import pkg_resources, syncthing_gtk + if syncthing_gtk.__file__.startswith(pkg_resources.require("syncthing-gtk")[0].location): + app_ver = pkg_resources.require("syncthing-gtk")[0].version except: # pkg_resources is not available or __version__ file missing # There is no reason to crash on this. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing-gtk-0.7.5.1/syncthing_gtk/app.py new/syncthing-gtk-0.7.6/syncthing_gtk/app.py --- old/syncthing-gtk-0.7.5.1/syncthing_gtk/app.py 2015-09-02 17:54:54.000000000 +0200 +++ new/syncthing-gtk-0.7.6/syncthing_gtk/app.py 2015-09-27 23:08:48.000000000 +0200 @@ -119,7 +119,7 @@ def do_local_options(self, trash, lo): self.parse_local_options(lo.contains) - return 0 + return -1 def parse_local_options(self, is_option): """ Test for expected options using specified method """ @@ -583,6 +583,16 @@ self["menu-si-show-id"].set_sensitive(True) self["menu-si-recvlimit"].set_sensitive(True) self["menu-si-sendlimit"].set_sensitive(True) + if IS_WINDOWS and not self.use_headerbar: + # Stupid way to reconfigure window content and keep windows + # decorations visible on Windows + r = RIBar( + _("Connected to Syncthing daemon"), + Gtk.MessageType.INFO + ) + self.show_info_box(r) + self.cb_infobar_close(r) + def cb_syncthing_disconnected(self, daemon, reason, message): # if reason == Daemon.UNEXPECTED diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing-gtk-0.7.5.1/syncthing_gtk/foldereditor.py new/syncthing-gtk-0.7.6/syncthing_gtk/foldereditor.py --- old/syncthing-gtk-0.7.5.1/syncthing_gtk/foldereditor.py 2015-09-02 17:54:54.000000000 +0200 +++ new/syncthing-gtk-0.7.6/syncthing_gtk/foldereditor.py 2015-09-27 23:08:48.000000000 +0200 @@ -118,13 +118,17 @@ self.create_dicts(self.values, ("versioning", "params", "versionsPath")) self.values["versioning"]["params"]["versionsPath"] = value elif key == "inotify": + id = self.id + if id is None: + # Happens when saving new folder + id = self["vid"].get_text().strip() l = self.app.config["use_inotify"] if value: - if not self.id in l: - l.append(self.id) + if not id in l: + l.append(id) else: - while self.id in l: - l.remove(self.id) + while id in l: + l.remove(id) self.app.config["use_inotify"] = l else: EditorDialog.set_value(self, key, value) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing-gtk-0.7.5.1/syncthing_gtk/infobox.py new/syncthing-gtk-0.7.6/syncthing_gtk/infobox.py --- old/syncthing-gtk-0.7.5.1/syncthing_gtk/infobox.py 2015-09-02 17:54:54.000000000 +0200 +++ new/syncthing-gtk-0.7.6/syncthing_gtk/infobox.py 2015-09-27 23:08:48.000000000 +0200 @@ -414,8 +414,16 @@ for key in self.value_widgets: for w in self.value_widgets[key]: if isinstance(w, Gtk.Image): - la = self.grid.child_get_property(w, "left-attach") - ta = self.grid.child_get_property(w, "top-attach") + if (Gtk.get_major_version(), Gtk.get_minor_version()) <= (3, 10): + # Mint.... + v1 = GObject.Value(int, 0) + v2 = GObject.Value(int, 0) + self.grid.child_get_property(w, "left-attach", v1) + self.grid.child_get_property(w, "top-attach", v2) + la, ta = v1.get_int(), v2.get_int() + else: + la = self.grid.child_get_property(w, "left-attach") + ta = self.grid.child_get_property(w, "top-attach") vis = not w.get_no_show_all() wIcon = self._prepare_icon(self.icons[key]) w.get_parent().remove(w) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing-gtk-0.7.5.1/syncthing_gtk/nautilusplugin.py new/syncthing-gtk-0.7.6/syncthing_gtk/nautilusplugin.py --- old/syncthing-gtk-0.7.5.1/syncthing_gtk/nautilusplugin.py 2015-09-02 17:54:54.000000000 +0200 +++ new/syncthing-gtk-0.7.6/syncthing_gtk/nautilusplugin.py 2015-09-27 23:08:48.000000000 +0200 @@ -236,9 +236,12 @@ ### InfoProvider stuff def update_file_info(self, file): + # TODO: This remembers every file user ever saw in Nautilus. + # There *has* to be memory effecient alternative... + path = self._get_path(file) + self.files[path] = file if not self.ready: return plugin_module.OperationResult.COMPLETE # Check if folder is one of repositories managed by syncthing - path = self._get_path(file) if path in self.downloads: file.add_emblem("syncthing-active") elif path in self.repos: @@ -266,9 +269,6 @@ else: # Default (i-have-no-idea-what-happened) state file.add_emblem("syncthing-offline") - # TODO: This remembers every file user ever saw in Nautilus. - # There *has* to be memory effecient alternative... - self.files[path] = file return plugin_module.OperationResult.COMPLETE ### MenuProvider stuff diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing-gtk-0.7.5.1/syncthing_gtk/tools.py new/syncthing-gtk-0.7.6/syncthing_gtk/tools.py --- old/syncthing-gtk-0.7.5.1/syncthing_gtk/tools.py 2015-09-02 17:54:54.000000000 +0200 +++ new/syncthing-gtk-0.7.6/syncthing_gtk/tools.py 2015-09-27 23:08:48.000000000 +0200 @@ -213,6 +213,16 @@ def verbose(self, msg, *args, **kwargs): return self.log(15, msg, *args, **kwargs) logging.Logger.verbose = verbose + # Wrap Logger._log in something that can handle utf-8 exceptions + old_log = logging.Logger._log + def _log(self, level, msg, args, exc_info=None, extra=None): + args = tuple([ + (c if type(c) is unicode else str(c).decode("utf-8")) + for c in args + ]) + msg = msg if type(msg) is unicode else str(msg).decode("utf-8") + old_log(self, level, msg, args, exc_info, extra) + logging.Logger._log = _log def set_logging_level(verbose, debug): """ Sets logging level """ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing-gtk-0.7.5.1/syncthing_gtk/watcher.py new/syncthing-gtk-0.7.6/syncthing_gtk/watcher.py --- old/syncthing-gtk-0.7.5.1/syncthing_gtk/watcher.py 2015-09-02 17:54:54.000000000 +0200 +++ new/syncthing-gtk-0.7.6/syncthing_gtk/watcher.py 2015-09-27 23:08:48.000000000 +0200 @@ -79,29 +79,20 @@ def _process(self, event): """ Inotify event callback """ - if event.mask & pyinotify.IN_ISDIR != 0: - if event.mask & pyinotify.IN_CREATE != 0: + if event.mask & (pyinotify.IN_CREATE | pyinotify.IN_MOVED_TO) != 0: + if event.mask & pyinotify.IN_ISDIR != 0: # New dir - Add watch to created dir as well self.watch(None, event.pathname.decode("utf-8")) self._report_created(event.pathname) - elif event.mask & pyinotify.IN_DELETE != 0: - # Deleted dir - self._report_deleted(event.pathname) - elif event.mask & pyinotify.IN_CREATE != 0: - # New file - ignore event, 'IN_CLOSE_WRITE' is enought for my purpose - return + else: + # New file + self._report_changed(event.pathname) elif event.mask & pyinotify.IN_CLOSE_WRITE != 0: # Changed file self._report_changed(event.pathname) - elif event.mask & pyinotify.IN_DELETE != 0: - # Deleted file + elif event.mask & (pyinotify.IN_DELETE | pyinotify.IN_MOVED_FROM) != 0: + # Deleted file or directory self._report_deleted(event.pathname) - elif event.mask & pyinotify.IN_MOVED_FROM != 0: - # Moved out = deleted - self._report_deleted(event.pathname) - elif event.mask & pyinotify.IN_MOVED_TO != 0: - # Moved in = created - self._report_created(event.pathname) def _process_events(self): """ Called from GLib.idle_add """
