Your message dated Fri, 05 Dec 2014 19:15:28 +0000
with message-id <1417806928.10998.51.ca...@adam-barratt.org.uk>
and subject line Re: Bug#772147: unblock: cinnamon/2.2.16-5
has caused the Debian Bug report #772147,
regarding unblock: cinnamon/2.2.16-5
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
772147: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=772147
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
User: release.debian....@packages.debian.org
Usertags: unblock
Severity: normal

Please unblock package cinnamon

The latest upload includes fixes for 3 important bugs.  The fixes are simple,
but the impact on the user experience is large.

The fixes all come from upstream.  They are:

photoframe-desklet-fix-memory-leak.patch. (Closes: #761314)
 -> This prevents a very bad memory leak. The upstream patch includes a
 refactoring that makes the diff less readable, so I've modified it to be as
 minimal as possible.
 Upstream change:
 
https://github.com/linuxmint/Cinnamon/commit/2f15a99773302db75f8ad1a60a21e7954218f9c6
                                                                                
 
fix-theme-regressions-with-gtk-3.14.patch. (Closes: #770556)
 -> This disables shadows on icons, because with the new GTK, the shadows for
 SVG icons don't get properly scaled and appear huge in the screen, making some
 particular screens (as the dropdown selector for opening a file with a program)
 practically unusable.
                                                                                
 
fix-cinnamon2d-session.patch (Closes: #772145)
 -> This is a very simple patch, but without it, it's not possible to use
 cinnamon2d.
                                                                                
 
I'm including the full debdiff, plus the three patches on their own, to make it
easier to look at them.

unblock cinnamon/2.2.16-5

-- 
Thanks!
Marga
Description: Fix theme regressions with gtk 3.14 
Author: leigh123linux
Origin: git of fedora packages
---
--- a/data/theme/cinnamon.css
+++ b/data/theme/cinnamon.css
@@ -1445,7 +1445,8 @@
 .applet-icon:hover,
 .applet-box:hover > .applet-icon {
 	color: #fff;
-	icon-shadow: white 0px 0px 3px;
+/* Broken with GNOME 3.14 (icon-size is not honoured)
+ *	icon-shadow: white 0px 0px 3px;*/
 }
 
 /* ===================================================================
--- a/files/usr/lib/cinnamon-settings/modules/cs_themes.py
+++ b/files/usr/lib/cinnamon-settings/modules/cs_themes.py
@@ -91,7 +91,7 @@
     
     def _load_icon_themes(self):
         dirs = ("/usr/share/icons", os.path.join(os.path.expanduser("~"), ".icons"))
-        valid = walk_directories(dirs, lambda d: os.path.isdir(d) and not os.path.exists(os.path.join(d, "cursors")) and os.path.exists(os.path.join(d, "index.theme")))
+        valid = walk_directories(dirs, lambda d: os.path.isdir(d) and os.path.exists(os.path.join(d, "index.theme")))
         valid.sort(lambda a,b: cmp(a.lower(), b.lower()))
         res = []
         for i in valid:
diff -Nru cinnamon-2.2.16/debian/changelog cinnamon-2.2.16/debian/changelog
--- cinnamon-2.2.16/debian/changelog	2014-10-25 20:00:57.000000000 +0200
+++ cinnamon-2.2.16/debian/changelog	2014-12-05 15:43:28.000000000 +0100
@@ -1,3 +1,12 @@
+cinnamon (2.2.16-5) unstable; urgency=medium
+
+  [ Fabio Fantoni ]
+  * New patch: photoframe-desklet-fix-memory-leak.patch. (Closes: #761314)
+  * New patch: fix-theme-regressions-with-gtk-3.14.patch. (Closes: #770556)
+  * New patch: fix-cinnamon2d-session.patch (Closes: #772145).
+
+ -- Margarita Manterola <ma...@debian.org>  Fri, 05 Dec 2014 15:43:08 +0100
+
 cinnamon (2.2.16-4) unstable; urgency=medium
 
   [ Maximiliano Curia ]
diff -Nru cinnamon-2.2.16/debian/patches/fix-cinnamon2d-session.patch cinnamon-2.2.16/debian/patches/fix-cinnamon2d-session.patch
--- cinnamon-2.2.16/debian/patches/fix-cinnamon2d-session.patch	1970-01-01 01:00:00.000000000 +0100
+++ cinnamon-2.2.16/debian/patches/fix-cinnamon2d-session.patch	2014-12-05 15:43:28.000000000 +0100
@@ -0,0 +1,13 @@
+Description: Fix 2d session requirements.
+Author: Michael Webster <miketwebs...@gmail.com>
+Origin: upstream - e9c28b75626f180a67c8ed577ac284ea005e8a2d
+--- a/files/usr/share/cinnamon-session/sessions/cinnamon2d.session
++++ b/files/usr/share/cinnamon-session/sessions/cinnamon2d.session
+@@ -1,6 +1,6 @@
+ [Cinnamon Session]
+ Name=Cinnamon (Software Rendering)
+-RequiredComponents=cinnamon;cinnamon-polkit-gnome-authentication-agent-1;cinnamon-settings-daemon;cinnamon-screensaver;nemo-autostart;nm-applet;
++RequiredComponents=cinnamon2d;cinnamon-polkit-gnome-authentication-agent-1;cinnamon-settings-daemon;cinnamon-screensaver;nemo-autostart;nm-applet;
+ DesktopName=X-Cinnamon
+ 
+ 
diff -Nru cinnamon-2.2.16/debian/patches/fix-theme-regressions-with-gtk-3.14.patch cinnamon-2.2.16/debian/patches/fix-theme-regressions-with-gtk-3.14.patch
--- cinnamon-2.2.16/debian/patches/fix-theme-regressions-with-gtk-3.14.patch	1970-01-01 01:00:00.000000000 +0100
+++ cinnamon-2.2.16/debian/patches/fix-theme-regressions-with-gtk-3.14.patch	2014-12-05 15:43:28.000000000 +0100
@@ -0,0 +1,27 @@
+Description: Fix theme regressions with gtk 3.14 
+Author: leigh123linux
+Origin: git of fedora packages
+---
+--- a/data/theme/cinnamon.css
++++ b/data/theme/cinnamon.css
+@@ -1445,7 +1445,8 @@
+ .applet-icon:hover,
+ .applet-box:hover > .applet-icon {
+ 	color: #fff;
+-	icon-shadow: white 0px 0px 3px;
++/* Broken with GNOME 3.14 (icon-size is not honoured)
++ *	icon-shadow: white 0px 0px 3px;*/
+ }
+ 
+ /* ===================================================================
+--- a/files/usr/lib/cinnamon-settings/modules/cs_themes.py
++++ b/files/usr/lib/cinnamon-settings/modules/cs_themes.py
+@@ -91,7 +91,7 @@
+     
+     def _load_icon_themes(self):
+         dirs = ("/usr/share/icons", os.path.join(os.path.expanduser("~"), ".icons"))
+-        valid = walk_directories(dirs, lambda d: os.path.isdir(d) and not os.path.exists(os.path.join(d, "cursors")) and os.path.exists(os.path.join(d, "index.theme")))
++        valid = walk_directories(dirs, lambda d: os.path.isdir(d) and os.path.exists(os.path.join(d, "index.theme")))
+         valid.sort(lambda a,b: cmp(a.lower(), b.lower()))
+         res = []
+         for i in valid:
diff -Nru cinnamon-2.2.16/debian/patches/photoframe-desklet-fix-memory-leak.patch cinnamon-2.2.16/debian/patches/photoframe-desklet-fix-memory-leak.patch
--- cinnamon-2.2.16/debian/patches/photoframe-desklet-fix-memory-leak.patch	1970-01-01 01:00:00.000000000 +0100
+++ cinnamon-2.2.16/debian/patches/photoframe-desklet-fix-memory-leak.patch	2014-12-05 15:43:28.000000000 +0100
@@ -0,0 +1,93 @@
+Description: photoframe desklet: fix mega leak, don't cache all images,
+ destroy old images.
+Author: Michael Webster <miketwebs...@gmail.com>
+Origin: upstream - 2f15a99773302db75f8ad1a60a21e7954218f9c6
+---
+ .../desklets/photofr...@cinnamon.org/desklet.js    | 99 +++++++++++++---------
+ 1 file changed, 57 insertions(+), 42 deletions(-)
+
+Index: cinnamon/files/usr/share/cinnamon/desklets/photofr...@cinnamon.org/desklet.js
+===================================================================
+--- cinnamon.orig/files/usr/share/cinnamon/desklets/photofr...@cinnamon.org/desklet.js	2014-09-27 14:59:30.621794888 +0200
++++ cinnamon/files/usr/share/cinnamon/desklets/photofr...@cinnamon.org/desklet.js	2014-11-21 21:58:14.173417652 +0100
+@@ -92,6 +92,8 @@
+             Mainloop.source_remove(this.update_id);
+         this.update_id = null;
+         this._setup_dir_monitor();
++        if (this.currentPicture)
++            this.currentPicture.destroy();
+         this._photoFrame.destroy();
+         this.setup_display();
+     },
+@@ -142,12 +144,12 @@
+         }
+ 
+         if (this.dir_file.query_exists(null)) {
+-            let fileEnum = this.dir_file.enumerate_children('standard::*', Gio.FileQueryInfoFlags.NONE, null);
++            let fileEnum = this.dir_file.enumerate_children('standard::type,standard::name', Gio.FileQueryInfoFlags.NONE, null);
+             let info;
+             while ((info = fileEnum.next_file(null)) != null) {
+                 let fileType = info.get_file_type();
+                 if (fileType != Gio.FileType.DIRECTORY) {
+-                    this._loadImage(this.dir + "/" + info.get_name());
++                    this._images.push(this.dir + "/" + info.get_name());
+                 }
+             }
+ 
+@@ -170,14 +172,21 @@
+         }
+         this.updateInProgress = true;
+         try {
+-            let image;
++            let image_path;
+             if (!this.shuffle){
+-                image = this._images.shift();
+-                this._images.push(image);
++                image_path = this._images.shift();
++                this._images.push(image_path);
+             } else {
+-                image = this._images[Math.floor(Math.random() * this._images.length)];
++                image_path = this._images[Math.floor(Math.random() * this._images.length)];
+             }
+ 
++            if (!image_path) {
++                this.updateInProgress = false;
++                return;
++            }
++
++            let image = this._loadImage(image_path);
++
+             if (image){
+                 let height, width;
+                 let imageRatio = image.width/image.height;
+@@ -193,6 +202,7 @@
+ 
+                 image.set_size(width, height);
+ 
++                let old_pic = this.currentPicture;
+                 this.currentPicture = image;
+                 if (this.fade_delay > 0) {
+                     Tweener.addTween(this._bin,
+@@ -211,7 +221,7 @@
+                 } else {
+                     this._bin.set_child(this.currentPicture);
+                 }
+-                
++                old_pic.destroy();
+             }
+         } catch (e) {
+             global.logError(e);
+@@ -241,10 +251,10 @@
+ 
+             let image = St.TextureCache.get_default().load_uri_async(uri, this.width, this.height);
+ 
+-            image._path = filePath;
+-            this._images.push(image);
++            return image;
+         } catch (x) {
+-            // Do nothing. Probably a non-image is in the folder
++            // Probably a non-image is in the folder
++            return null;
+         }
+     },
+ }
diff -Nru cinnamon-2.2.16/debian/patches/series cinnamon-2.2.16/debian/patches/series
--- cinnamon-2.2.16/debian/patches/series	2014-10-25 20:00:57.000000000 +0200
+++ cinnamon-2.2.16/debian/patches/series	2014-12-05 15:43:28.000000000 +0100
@@ -20,3 +20,6 @@
 calendar-applet-upower-support
 make_nm_optional
 add_capi_search_path
+photoframe-desklet-fix-memory-leak.patch
+fix-theme-regressions-with-gtk-3.14.patch
+fix-cinnamon2d-session.patch
Description: Fix 2d session requirements.
Author: Michael Webster <miketwebs...@gmail.com>
Origin: upstream - e9c28b75626f180a67c8ed577ac284ea005e8a2d
--- a/files/usr/share/cinnamon-session/sessions/cinnamon2d.session
+++ b/files/usr/share/cinnamon-session/sessions/cinnamon2d.session
@@ -1,6 +1,6 @@
 [Cinnamon Session]
 Name=Cinnamon (Software Rendering)
-RequiredComponents=cinnamon;cinnamon-polkit-gnome-authentication-agent-1;cinnamon-settings-daemon;cinnamon-screensaver;nemo-autostart;nm-applet;
+RequiredComponents=cinnamon2d;cinnamon-polkit-gnome-authentication-agent-1;cinnamon-settings-daemon;cinnamon-screensaver;nemo-autostart;nm-applet;
 DesktopName=X-Cinnamon
 
 
Description: photoframe desklet: fix mega leak, don't cache all images,
 destroy old images.
Author: Michael Webster <miketwebs...@gmail.com>
Origin: upstream - 2f15a99773302db75f8ad1a60a21e7954218f9c6
---
 .../desklets/photofr...@cinnamon.org/desklet.js    | 99 +++++++++++++---------
 1 file changed, 57 insertions(+), 42 deletions(-)

Index: cinnamon/files/usr/share/cinnamon/desklets/photofr...@cinnamon.org/desklet.js
===================================================================
--- cinnamon.orig/files/usr/share/cinnamon/desklets/photofr...@cinnamon.org/desklet.js	2014-09-27 14:59:30.621794888 +0200
+++ cinnamon/files/usr/share/cinnamon/desklets/photofr...@cinnamon.org/desklet.js	2014-11-21 21:58:14.173417652 +0100
@@ -92,6 +92,8 @@
             Mainloop.source_remove(this.update_id);
         this.update_id = null;
         this._setup_dir_monitor();
+        if (this.currentPicture)
+            this.currentPicture.destroy();
         this._photoFrame.destroy();
         this.setup_display();
     },
@@ -142,12 +144,12 @@
         }
 
         if (this.dir_file.query_exists(null)) {
-            let fileEnum = this.dir_file.enumerate_children('standard::*', Gio.FileQueryInfoFlags.NONE, null);
+            let fileEnum = this.dir_file.enumerate_children('standard::type,standard::name', Gio.FileQueryInfoFlags.NONE, null);
             let info;
             while ((info = fileEnum.next_file(null)) != null) {
                 let fileType = info.get_file_type();
                 if (fileType != Gio.FileType.DIRECTORY) {
-                    this._loadImage(this.dir + "/" + info.get_name());
+                    this._images.push(this.dir + "/" + info.get_name());
                 }
             }
 
@@ -170,14 +172,21 @@
         }
         this.updateInProgress = true;
         try {
-            let image;
+            let image_path;
             if (!this.shuffle){
-                image = this._images.shift();
-                this._images.push(image);
+                image_path = this._images.shift();
+                this._images.push(image_path);
             } else {
-                image = this._images[Math.floor(Math.random() * this._images.length)];
+                image_path = this._images[Math.floor(Math.random() * this._images.length)];
             }
 
+            if (!image_path) {
+                this.updateInProgress = false;
+                return;
+            }
+
+            let image = this._loadImage(image_path);
+
             if (image){
                 let height, width;
                 let imageRatio = image.width/image.height;
@@ -193,6 +202,7 @@
 
                 image.set_size(width, height);
 
+                let old_pic = this.currentPicture;
                 this.currentPicture = image;
                 if (this.fade_delay > 0) {
                     Tweener.addTween(this._bin,
@@ -211,7 +221,7 @@
                 } else {
                     this._bin.set_child(this.currentPicture);
                 }
-                
+                old_pic.destroy();
             }
         } catch (e) {
             global.logError(e);
@@ -241,10 +251,10 @@
 
             let image = St.TextureCache.get_default().load_uri_async(uri, this.width, this.height);
 
-            image._path = filePath;
-            this._images.push(image);
+            return image;
         } catch (x) {
-            // Do nothing. Probably a non-image is in the folder
+            // Probably a non-image is in the folder
+            return null;
         }
     },
 }

--- End Message ---
--- Begin Message ---
On Fri, 2014-12-05 at 15:16 +0000, Margarita Manterola wrote:
> Please unblock package cinnamon
> 
> The latest upload includes fixes for 3 important bugs.  The fixes are simple,
> but the impact on the user experience is large.

Unblocked, thanks.

Regards,

Adam

--- End Message ---

Reply via email to