[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#694614: marked as done (tpu: cairo-dock/3.0.0-3 (pre-approval))



Your message dated Mon, 14 Jan 2013 22:51:50 +0000
with message-id <1358203910.10250.0.camel@jacala.jungle.funky-badger.org>
and subject line Re: Bug#694614: tpu: cairo-dock/3.0.0-3 (pre-approval)
has caused the Debian Bug report #694614,
regarding tpu: cairo-dock/3.0.0-3 (pre-approval)
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 owner@bugs.debian.org
immediately.)


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

Hi,

I'd like to get your approval about the upload of cairo-dock 3.0.0-3 to
testing-proposed-update in order to fix 1 RC bug and enable hardening build.

The changes from 3.0.0-2 (in wheezy) to 3.0.3-3 as follows:

  - RC bug number: #676831
    - This bug is already fix newer cairo-dock ( >= 3.1.1, in unstable).
    - We created patches by cherry-picked from upstream Git repository for
      cairo-dock (3.0.0-2, in wheezy).

  - Enable hardening build
    - Update debhelper >= 9, Add dpkg-dev (>= 1.16.1~)

I attached debdiff output.

Best Wishes,
Youhei

-- System Information:
Debian Release: wheezy/sid
  APT prefers testing-updates
  APT policy: (500, 'testing-updates'), (500, 'testing'), (95, 'unstable'), (90, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.2.0-4-amd64 (SMP w/4 CPU cores)
Locale: LANG=ja_JP.UTF-8, LC_CTYPE=ja_JP.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

---
Youhei SASAKI <uwabami@gfd-dennou.org>
              <uwabami@debian.or.jp>
GPG fingerprint:
  4096/RSA: 66A4 EA70 4FE2 4055 8D6A C2E6 9394 F354 891D 7E07
diff -Nru cairo-dock-3.0.0/debian/changelog cairo-dock-3.0.0/debian/changelog
--- cairo-dock-3.0.0/debian/changelog	2012-05-20 21:06:28.000000000 +0900
+++ cairo-dock-3.0.0/debian/changelog	2012-11-27 12:15:55.000000000 +0900
@@ -1,3 +1,13 @@
+cairo-dock (3.0.0-3) unstable; urgency=low
+
+  * Update debhelper to 9.
+  * Add dpkg-dev (>= 1.16.1~) to Build-Depends.
+  * Enable hardening.
+  * Fix syntax error in copyright file.
+  * Fix segfault when using log out applet. (Closes: #676841)
+
+ -- Nobuhiro Iwamatsu <iwamatsu@debian.org>  Tue, 31 Jul 2012 12:46:41 +0900
+
 cairo-dock (3.0.0-2) unstable; urgency=low
 
   * Set Build-Depends libgtk-3-dev instead of libgtk2.0-dev.
diff -Nru cairo-dock-3.0.0/debian/compat cairo-dock-3.0.0/debian/compat
--- cairo-dock-3.0.0/debian/compat	2011-02-28 09:44:20.000000000 +0900
+++ cairo-dock-3.0.0/debian/compat	2012-11-27 12:15:55.000000000 +0900
@@ -1 +1 @@
-7
+9
diff -Nru cairo-dock-3.0.0/debian/control cairo-dock-3.0.0/debian/control
--- cairo-dock-3.0.0/debian/control	2012-05-20 21:03:28.000000000 +0900
+++ cairo-dock-3.0.0/debian/control	2012-11-27 12:15:55.000000000 +0900
@@ -5,7 +5,7 @@
 DM-Upload-Allowed: yes
 Uploaders: Nobuhiro Iwamatsu <iwamatsu@debian.org>,
  Youhei SASAKI <uwabami@gfd-dennou.org>
-Build-Depends: cdbs, debhelper (>= 7), autotools-dev, intltool, pkg-config,
+Build-Depends: cdbs, debhelper (>= 9), dpkg-dev (>= 1.16.1~), autotools-dev, intltool, pkg-config,
 		libcairo-dev, libdbus-1-dev, librsvg2-dev, libxml2-dev,
 		libxrender-dev, libxtst-dev, libgtkglext1-dev, libcurl4-gnutls-dev,
 		libdbus-glib-1-dev, libgtk-3-dev, quilt, cmake (>= 2.8.0)
diff -Nru cairo-dock-3.0.0/debian/copyright cairo-dock-3.0.0/debian/copyright
--- cairo-dock-3.0.0/debian/copyright	2011-10-26 13:05:18.000000000 +0900
+++ cairo-dock-3.0.0/debian/copyright	2012-11-27 12:15:55.000000000 +0900
@@ -37,12 +37,12 @@
 
 Files: po/*
 Copyright: 2007, 2008 Cairo-Dock project
-Copyright: 2009, 2010 Rosetta Contributors and Canonical Ltd
+           2009, 2010 Rosetta Contributors and Canonical Ltd
 License: GPL-3+
 
 Files: debian/*
 Copyright: 2009, 2010, 2011 Nobuhiro Iwamatsu <iwamatsu@debian.org>
-Copyright: 2009, 2010, 2011 Youhei SASAKI <uwabami@gfd-dennou.org>
+           2009, 2010, 2011 Youhei SASAKI <uwabami@gfd-dennou.org>
 License: GPL-3+
 
 License: GPL-3+
diff -Nru cairo-dock-3.0.0/debian/patches/0001-Main-GUI-fixed-a-crash-when-hovering-group-buttons-t.patch cairo-dock-3.0.0/debian/patches/0001-Main-GUI-fixed-a-crash-when-hovering-group-buttons-t.patch
--- cairo-dock-3.0.0/debian/patches/0001-Main-GUI-fixed-a-crash-when-hovering-group-buttons-t.patch	1970-01-01 09:00:00.000000000 +0900
+++ cairo-dock-3.0.0/debian/patches/0001-Main-GUI-fixed-a-crash-when-hovering-group-buttons-t.patch	2012-11-27 12:15:55.000000000 +0900
@@ -0,0 +1,47 @@
+Description: Main GUI: fixed a crash when hovering group buttons too quickly (the dialog was not correctly destroyed)
+Forwarded: not-needed
+rigin: upstream, http://bazaar.launchpad.net/~cairo-dock-team/cairo-dock-core/cairo-dock/revision/1100
+Bug-Debian: http://bugs.debian.org/676841
+
+---
+ src/cairo-dock-gui-main.c |    7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/src/cairo-dock-gui-main.c b/src/cairo-dock-gui-main.c
+index 1983329..52ba76a 100644
+--- a/src/cairo-dock-gui-main.c
++++ b/src/cairo-dock-gui-main.c
+@@ -28,6 +28,7 @@
+ #include <gdk/gdkx.h>
+ 
+ #include "config.h"
++#include "cairo-dock-notifications.h"
+ #include "cairo-dock-module-factory.h"
+ #include "cairo-dock-icon-facility.h"
+ #include "cairo-dock-log.h"
+@@ -888,10 +889,12 @@ static gboolean _show_group_dialog (CairoDockGroupDescription *pGroupDescription
+ 	attr.cText = dgettext (pGroupDescription->cGettextDomain, cDescription != NULL ? cDescription : pGroupDescription->cDescription);
+ 	attr.cImageFilePath = pGroupDescription->cIcon;
+ 	attr.bNoInput = TRUE;
+-	attr.pFreeDataFunc = _on_group_dialog_destroyed;
+ 	myDialogsParam.dialogTextDescription.bUseMarkup = TRUE;
+ 	s_pDialog = cairo_dock_build_dialog (&attr, pIcon, CAIRO_CONTAINER (pDock));
+ 	myDialogsParam.dialogTextDescription.bUseMarkup = FALSE;
++	cairo_dock_register_notification_on_object (s_pDialog,
++		NOTIFICATION_DESTROY, (CairoDockNotificationFunc)_on_group_dialog_destroyed,
++		CAIRO_DOCK_RUN_AFTER, NULL);
+ 	
+ 	gtk_window_set_transient_for (GTK_WINDOW (s_pDialog->container.pWidget), GTK_WINDOW (s_pMainWindow));
+ 	g_free (cDescription);
+@@ -932,7 +935,7 @@ static gboolean _check_group_button (gpointer data)
+ 	if (Xid != cairo_dock_get_current_active_window ())  // we're not the active window any more, so the 'leave' event was probably due to an Alt+Tab -> the mouse is really out of the button.
+ 	{
+ 		gtk_widget_hide (s_pPreviewBox);
+-	
++		
+ 		cairo_dock_dialog_unreference (s_pDialog);
+ 		
+ 		s_pCurrentButton = NULL;
+-- 
+1.7.10.4
+
diff -Nru cairo-dock-3.0.0/debian/patches/0001-main-GUI-fix-a-case-where-the-description-dialog-pre.patch cairo-dock-3.0.0/debian/patches/0001-main-GUI-fix-a-case-where-the-description-dialog-pre.patch
--- cairo-dock-3.0.0/debian/patches/0001-main-GUI-fix-a-case-where-the-description-dialog-pre.patch	1970-01-01 09:00:00.000000000 +0900
+++ cairo-dock-3.0.0/debian/patches/0001-main-GUI-fix-a-case-where-the-description-dialog-pre.patch	2012-11-27 12:15:55.000000000 +0900
@@ -0,0 +1,192 @@
+Description: main GUI: fix a case where the description dialog&preview didn't appear when hovering the button
+Forwarded: not-needed
+rigin: upstream, http://bazaar.launchpad.net/~cairo-dock-team/cairo-dock-core/cairo-dock/revision/1085
+Bug-Debian: http://bugs.debian.org/676841
+		
+---
+ src/cairo-dock-gui-main.c |  101 ++++++++++++++++++++++++++++++++++++---------
+ 1 file changed, 82 insertions(+), 19 deletions(-)
+
+diff --git a/src/cairo-dock-gui-main.c b/src/cairo-dock-gui-main.c
+index 50b02f3..1983329 100644
+--- a/src/cairo-dock-gui-main.c
++++ b/src/cairo-dock-gui-main.c
+@@ -24,6 +24,9 @@
+ #include <glib/gstdio.h>
+ #include <glib/gi18n.h>
+ 
++
++#include <gdk/gdkx.h>
++
+ #include "config.h"
+ #include "cairo-dock-module-factory.h"
+ #include "cairo-dock-icon-facility.h"
+@@ -123,7 +126,8 @@ static GtkWidget *s_pStatusBar = NULL;
+ static GSList *s_path = NULL;
+ static int s_iPreviewWidth, s_iNbButtonsByRow;
+ static CairoDialog *s_pDialog = NULL;
+-static int s_iSidShowGroupDialog = 0;
++static guint s_iSidShowGroupDialog = 0;
++static guint s_iSidCheckGroupButton = 0;
+ 
+ static const gchar *s_cCategoriesDescription[2*(CAIRO_DOCK_NB_CATEGORY+1)] = {
+ 	N_("Behaviour"), "icon-behavior.svg",
+@@ -803,6 +807,10 @@ static void on_click_back_button (GtkButton *button, gpointer data)
+ 	_show_group_or_category (pPrevPlace);
+ }
+ 
++static void _on_group_dialog_destroyed (gpointer data)
++{
++	s_pDialog = NULL;
++}
+ static gboolean _show_group_dialog (CairoDockGroupDescription *pGroupDescription)
+ {
+ 	gchar *cDescription = NULL;
+@@ -869,9 +877,7 @@ static gboolean _show_group_dialog (CairoDockGroupDescription *pGroupDescription
+ 		gdk_pixbuf_unref (pPreviewPixbuf);
+ 	}
+ 	
+-	if (s_pDialog != NULL)
+-		if (! cairo_dock_dialog_unreference (s_pDialog))
+-			cairo_dock_dialog_unreference (s_pDialog);
++	cairo_dock_dialog_unreference (s_pDialog);
+ 	Icon *pIcon = cairo_dock_get_current_active_icon ();
+ 	if (pIcon == NULL || pIcon->cParentDockName == NULL || cairo_dock_icon_is_being_removed (pIcon))
+ 		pIcon = cairo_dock_get_dialogless_icon ();
+@@ -882,45 +888,96 @@ static gboolean _show_group_dialog (CairoDockGroupDescription *pGroupDescription
+ 	attr.cText = dgettext (pGroupDescription->cGettextDomain, cDescription != NULL ? cDescription : pGroupDescription->cDescription);
+ 	attr.cImageFilePath = pGroupDescription->cIcon;
+ 	attr.bNoInput = TRUE;
++	attr.pFreeDataFunc = _on_group_dialog_destroyed;
+ 	myDialogsParam.dialogTextDescription.bUseMarkup = TRUE;
+ 	s_pDialog = cairo_dock_build_dialog (&attr, pIcon, CAIRO_CONTAINER (pDock));
+ 	myDialogsParam.dialogTextDescription.bUseMarkup = FALSE;
+ 	
+-	cairo_dock_dialog_reference (s_pDialog);
+-	
+ 	gtk_window_set_transient_for (GTK_WINDOW (s_pDialog->container.pWidget), GTK_WINDOW (s_pMainWindow));
+ 	g_free (cDescription);
+ 
+ 	s_iSidShowGroupDialog = 0;
+ 	return FALSE;
+ }
+-static void on_enter_group_button (GtkButton *button, CairoDockGroupDescription *pGroupDescription)
++
++static GtkButton *s_pCurrentButton = NULL;
++static gboolean on_enter_group_button (GtkButton *button, GdkEventCrossing *pEvent, CairoDockGroupDescription *pGroupDescription)
+ {
+-	//g_print ("%s (%s)\n", __func__, pGroupDescription->cDescription);
++	g_print ("%s (%s)\n", __func__, pGroupDescription->cGroupName);
+ 	if (g_pPrimaryContainer == NULL)  // inutile en maintenance, le dialogue risque d'apparaitre sur la souris.
+-		return ;
++		return FALSE;
+ 	
++	// if we were about to show a dialog, cancel it to reset the timer.
+ 	if (s_iSidShowGroupDialog != 0)
+ 		g_source_remove (s_iSidShowGroupDialog);
+ 	
++	if (s_iSidCheckGroupButton != 0)
++	{
++		g_source_remove (s_iSidCheckGroupButton);
++		s_iSidCheckGroupButton = 0;
++	}
++	
++	// avoid re-entering the same button (can happen if the input shape of the dialog is set a bit late by X, and the dialog spawns under the cursor, which will make us leave the button and re-enter when the input shape is ready).
++	if (s_pCurrentButton == button)
++		return FALSE;
++	s_pCurrentButton = button;  // we don't actually use the content of the pointer, only the address value.
++	
++	// show the dialog with a delay.
+ 	s_iSidShowGroupDialog = g_timeout_add (330, (GSourceFunc)_show_group_dialog, (gpointer) pGroupDescription);
++	return FALSE;
+ }
+-static void on_leave_group_button (GtkButton *button, gpointer *data)
++static gboolean _check_group_button (gpointer data)
+ {
+-	//g_print ("%s ()\n", __func__);
++	Window Xid = GDK_WINDOW_XID (gtk_widget_get_window (s_pMainWindow));
++	if (Xid != cairo_dock_get_current_active_window ())  // we're not the active window any more, so the 'leave' event was probably due to an Alt+Tab -> the mouse is really out of the button.
++	{
++		gtk_widget_hide (s_pPreviewBox);
++	
++		cairo_dock_dialog_unreference (s_pDialog);
++		
++		s_pCurrentButton = NULL;
++	}
++	s_iSidCheckGroupButton = 0;
++	return FALSE;
++}
++static gboolean on_leave_group_button (GtkButton *button, GdkEventCrossing *pEvent, gpointer data)
++{
++	g_print ("%s (%d, %d)\n", __func__, pEvent->mode, pEvent->detail);
++	// if we were about to show the dialog, cancel.
+ 	if (s_iSidShowGroupDialog != 0)
+ 	{
+ 		g_source_remove (s_iSidShowGroupDialog);
+ 		s_iSidShowGroupDialog = 0;
+ 	}
+-
+-	int iPreviewWidgetWidth = s_iPreviewWidth;
+-	GtkWidget *pPreviewImage = s_pPreviewImage;
++	
++	if (s_iSidCheckGroupButton != 0)
++	{
++		g_source_remove (s_iSidCheckGroupButton);
++		s_iSidCheckGroupButton = 0;
++	}
++	
++	// check that we are really outside of the button (this may be false if the dialog is appearing under the mouse and has not yet its input shape (X lag)).
++	if (pEvent->detail != GDK_NOTIFY_ANCESTOR)  // a LeaveNotify event not within the same window (ie, either an Alt+Tab or the dialog that spawned under the cursor)
++	{
++		int x, y;
++		gtk_widget_get_pointer (GTK_WIDGET (button), &x, &y);
++		GtkAllocation allocation;
++		gtk_widget_get_allocation (GTK_WIDGET (button), &allocation);
++		if (x >= 0 && x < allocation.width && y >= 0 && y < allocation.height)  // we are actually still inside the button, ignore the event, we'll get an 'enter' event as soon as the dialog's input shape is ready.
++		{
++			s_iSidCheckGroupButton = g_timeout_add (1000, _check_group_button, NULL);  // check in a moment if we left the button because of the dialog or because of another window (alt+tab).
++			return FALSE;
++		}
++	}
++	
++	// hide the dialog and the preview box.
+ 	gtk_widget_hide (s_pPreviewBox);
+ 	
+-	if (! cairo_dock_dialog_unreference (s_pDialog))
+-		cairo_dock_dialog_unreference (s_pDialog);
+-	s_pDialog = NULL;
++	cairo_dock_dialog_unreference (s_pDialog);
++	
++	s_pCurrentButton = NULL;
++	
++	return FALSE;
+ }
+ 
+ 
+@@ -986,6 +1043,12 @@ static gboolean on_delete_main_gui (GtkWidget *pWidget, gpointer data)
+ 		g_source_remove (s_iSidShowGroupDialog);
+ 		s_iSidShowGroupDialog = 0;
+ 	}
++	cairo_dock_dialog_unreference (s_pDialog);
++	if (s_iSidCheckGroupButton != 0)
++	{
++		g_source_remove (s_iSidCheckGroupButton);
++		s_iSidCheckGroupButton = 0;
++	}
+ 	return FALSE;
+ }
+ 
+@@ -1364,8 +1427,8 @@ static inline CairoDockGroupDescription *_add_group_button (const gchar *cGroupN
+ 		g_signal_connect (G_OBJECT (pGroupButton), "clicked", G_CALLBACK(on_click_group_button), pGroupDescription);
+ 	else
+ 		gtk_widget_set_sensitive (pGroupButton, FALSE);
+-	g_signal_connect (G_OBJECT (pGroupButton), "enter", G_CALLBACK(on_enter_group_button), pGroupDescription);
+-	g_signal_connect (G_OBJECT (pGroupButton), "leave", G_CALLBACK(on_leave_group_button), NULL);
++	g_signal_connect (G_OBJECT (pGroupButton), "enter-notify-event", G_CALLBACK(on_enter_group_button), pGroupDescription);
++	g_signal_connect (G_OBJECT (pGroupButton), "leave-notify-event", G_CALLBACK(on_leave_group_button), NULL);
+ 
+ 	GtkWidget *pButtonHBox = _gtk_hbox_new (CAIRO_DOCK_FRAME_MARGIN);
+ 	GtkWidget *pImage = _make_image (cIconPath, CAIRO_DOCK_GROUP_ICON_SIZE);
+-- 
+1.7.10.4
+
diff -Nru cairo-dock-3.0.0/debian/patches/series cairo-dock-3.0.0/debian/patches/series
--- cairo-dock-3.0.0/debian/patches/series	2012-04-13 20:04:14.000000000 +0900
+++ cairo-dock-3.0.0/debian/patches/series	2012-11-27 12:15:55.000000000 +0900
@@ -1 +1,3 @@
 0001-Fix-GLIB-Single-Include-issue-Closes-665514.patch
+0001-main-GUI-fix-a-case-where-the-description-dialog-pre.patch
+0001-Main-GUI-fixed-a-crash-when-hovering-group-buttons-t.patch
diff -Nru cairo-dock-3.0.0/debian/rules cairo-dock-3.0.0/debian/rules
--- cairo-dock-3.0.0/debian/rules	2011-07-05 21:46:15.000000000 +0900
+++ cairo-dock-3.0.0/debian/rules	2012-11-27 12:15:55.000000000 +0900
@@ -1,5 +1,10 @@
 #!/usr/bin/make -f
 
+DPKG_EXPORT_BUILDFLAGS = 1
+include /usr/share/dpkg/buildflags.mk
+CFLAGS+=$(CPPFLAGS)
+CXXFLAGS+=$(CPPFLAGS)
+
 include /usr/share/cdbs/1/rules/debhelper.mk
 include /usr/share/cdbs/1/class/cmake.mk
 include /usr/share/cdbs/1/rules/patchsys-quilt.mk

--- End Message ---
--- Begin Message ---
On Mon, 2013-01-14 at 08:46 +0900, Nobuhiro Iwamatsu wrote:
> On Fri, Jan 11, 2013 at 11:09 PM, Adam D. Barratt
> <adam@adam-barratt.org.uk> wrote:
> > On Fri, 2013-01-11 at 20:10 +0900, Nobuhiro Iwamatsu wrote:
> >> I deleted these patches and applied the patch for correcting #676841 from
> >> http://bazaar.launchpad.net/~cairo-dock-team/cairo-dock-core/cairo-dock/revision/1075.
> >> Would you check this?
> >
> > +cairo-dock (3.0.0-3) testing; urgency=low
> > +
> > +  * Fix syntax error in copyright file.
> > +  * Fix segfault when using log out applet. (Closes: #676841)
> >
> > 3.0.0-2+deb7u1 is a more conventional version number here, to make it
> > clear that the upload was "out of sequence". Please go ahead; thanks.
> 
> Thank you.I will fix this.

Approved; thanks.

Regards,

Adam

--- End Message ---

Reply to: