From owner-freebsd-ports-bugs@FreeBSD.ORG Sun Mar 20 20:30:03 2005 Return-Path: Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BF5A116A4CE for ; Sun, 20 Mar 2005 20:30:03 +0000 (GMT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2990143D3F for ; Sun, 20 Mar 2005 20:30:03 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.3/8.13.3) with ESMTP id j2KKU31T052520 for ; Sun, 20 Mar 2005 20:30:03 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.3/8.13.1/Submit) id j2KKU22C052519; Sun, 20 Mar 2005 20:30:02 GMT (envelope-from gnats) Resent-Date: Sun, 20 Mar 2005 20:30:02 GMT Resent-Message-Id: <200503202030.j2KKU22C052519@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Jean-Yves Lefort Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5CEB916A4CE; Sun, 20 Mar 2005 20:20:33 +0000 (GMT) Received: from gateway.lefort.net (212.68.243.121.brutele.be [212.68.243.121]) by mx1.FreeBSD.org (Postfix) with ESMTP id CF7C143D1D; Sun, 20 Mar 2005 20:20:31 +0000 (GMT) (envelope-from jylefort@brutele.be) Received: from jsite.lefort.net (jsite.lefort.net [192.168.1.2]) by gateway.lefort.net (Postfix) with ESMTP id 589EC55CB; Sun, 20 Mar 2005 21:20:30 +0100 (CET) Received: by jsite.lefort.net (Postfix, from userid 1000) id 0BCDE8556; Sun, 20 Mar 2005 21:20:29 +0100 (CET) Message-Id: <20050320202029.0BCDE8556@jsite.lefort.net> Date: Sun, 20 Mar 2005 21:20:29 +0100 (CET) From: Jean-Yves Lefort To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 cc: gnome@FreeBSD.org Subject: ports/79061: Update port: x11-toolkits/libgnomeui: fix thread-safety bugs X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Jean-Yves Lefort List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Mar 2005 20:30:03 -0000 >Number: 79061 >Category: ports >Synopsis: Update port: x11-toolkits/libgnomeui: fix thread-safety bugs >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: update >Submitter-Id: current-users >Arrival-Date: Sun Mar 20 20:30:02 GMT 2005 >Closed-Date: >Last-Modified: >Originator: Jean-Yves Lefort >Release: FreeBSD 5.3-RELEASE-p5 i386 >Organization: >Environment: System: FreeBSD jsite.lefort.net 5.3-RELEASE-p5 FreeBSD 5.3-RELEASE-p5 #0: Mon Feb 14 18:06:40 CET 2005 jylefort@jsite.lefort.net:/usr/obj/usr/src/sys/JSITE i386 >Description: See http://bugzilla.gnome.org/show_bug.cgi?id=152023 A subset of the fixes had been added to the port, but have been mistakenly dropped during the 2.10 upgrade. >How-To-Repeat: >Fix: diff -ruN /usr/ports/x11-toolkits/libgnomeui/Makefile libgnomeui/Makefile --- /usr/ports/x11-toolkits/libgnomeui/Makefile Mon Mar 14 00:31:56 2005 +++ libgnomeui/Makefile Sun Mar 20 21:00:09 2005 @@ -7,6 +7,7 @@ PORTNAME= libgnomeui PORTVERSION= 2.10.0 +PORTREVISION= 1 CATEGORIES= x11-toolkits gnome MASTER_SITES= ${MASTER_SITE_GNOME} MASTER_SITE_SUBDIR= sources/${PORTNAME}/2.10 diff -ruN /usr/ports/x11-toolkits/libgnomeui/files/patch-file-chooser::gtkfilesystemgnomevfs.c libgnomeui/files/patch-file-chooser::gtkfilesystemgnomevfs.c --- /usr/ports/x11-toolkits/libgnomeui/files/patch-file-chooser::gtkfilesystemgnomevfs.c Thu Jan 1 01:00:00 1970 +++ libgnomeui/files/patch-file-chooser::gtkfilesystemgnomevfs.c Sun Mar 20 21:00:49 2005 @@ -0,0 +1,24 @@ +--- file-chooser/gtkfilesystemgnomevfs.c.orig Sun Mar 20 20:58:22 2005 ++++ file-chooser/gtkfilesystemgnomevfs.c Sun Mar 20 20:59:03 2005 +@@ -2536,13 +2536,20 @@ + GtkFileSystemGnomeVFS *system_vfs; + GConfValue *value; + ++ GDK_THREADS_ENTER(); ++ + system_vfs = GTK_FILE_SYSTEM_GNOME_VFS (data); + + if (strcmp (gconf_entry_get_key (entry), BOOKMARKS_KEY) != 0) +- return; ++ { ++ GDK_THREADS_LEAVE(); ++ return; ++ } + + value = gconf_entry_get_value (entry); + set_bookmarks_from_value (system_vfs, value, TRUE); ++ ++ GDK_THREADS_LEAVE(); + } + #endif + diff -ruN /usr/ports/x11-toolkits/libgnomeui/files/patch-libgnomeui::gnome-app-helper.c libgnomeui/files/patch-libgnomeui::gnome-app-helper.c --- /usr/ports/x11-toolkits/libgnomeui/files/patch-libgnomeui::gnome-app-helper.c Thu Jan 1 01:00:00 1970 +++ libgnomeui/files/patch-libgnomeui::gnome-app-helper.c Sun Mar 20 21:03:28 2005 @@ -0,0 +1,74 @@ +--- libgnomeui/gnome-app-helper.c.orig Sun Mar 20 20:46:17 2005 ++++ libgnomeui/gnome-app-helper.c Sun Mar 20 20:49:57 2005 +@@ -435,6 +435,8 @@ + new_setting = gconf_value_get_bool(value); + } + ++ GDK_THREADS_ENTER(); ++ + if (new_setting && (mi->image == NULL)) { + GtkWidget *pixmap; + GnomeUIPixmapType pixmap_type; +@@ -457,6 +459,8 @@ + } else if (!new_setting && (mi->image != NULL)) { + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (mi), NULL); + } ++ ++ GDK_THREADS_LEAVE(); + } + + /* Note that this function is also used for toolbars, don't assume +@@ -1320,6 +1324,8 @@ + if (entry->value->type != GCONF_VALUE_BOOL) + return; + ++ GDK_THREADS_ENTER(); ++ + menu = GTK_WIDGET (user_data); + + if (gconf_value_get_bool (entry->value)) { +@@ -1329,6 +1335,7 @@ + + if (tearoff) { + /* Do nothing */ ++ GDK_THREADS_LEAVE(); + return; + } + +@@ -1345,6 +1352,7 @@ + + if (!tearoff) { + /* Do nothing */ ++ GDK_THREADS_LEAVE(); + return; + } + +@@ -1352,6 +1360,8 @@ + gtk_widget_destroy (tearoff); + g_object_set_data (G_OBJECT (menu), "gnome-app-tearoff", NULL); + } ++ ++ GDK_THREADS_LEAVE(); + } + + +@@ -2467,7 +2477,9 @@ + } + } + ++ GDK_THREADS_ENTER(); + gtk_toolbar_set_style(toolbar, style); ++ GDK_THREADS_LEAVE(); + } + + static void +@@ -2511,7 +2523,9 @@ + style = GTK_TOOLBAR_BOTH; + } + ++ GDK_THREADS_ENTER(); + gtk_toolbar_set_style(toolbar, style); ++ GDK_THREADS_LEAVE(); + } + + static void diff -ruN /usr/ports/x11-toolkits/libgnomeui/files/patch-libgnomeui::gnome-app.c libgnomeui/files/patch-libgnomeui::gnome-app.c --- /usr/ports/x11-toolkits/libgnomeui/files/patch-libgnomeui::gnome-app.c Thu Jan 1 01:00:00 1970 +++ libgnomeui/files/patch-libgnomeui::gnome-app.c Sun Mar 20 21:03:04 2005 @@ -0,0 +1,12 @@ +--- libgnomeui/gnome-app.c.orig Sun Mar 20 20:51:20 2005 ++++ libgnomeui/gnome-app.c Sun Mar 20 20:52:01 2005 +@@ -269,7 +269,9 @@ + detachable = gconf_value_get_bool (entry->value); + + /* Update */ ++ GDK_THREADS_ENTER(); + bonobo_dock_item_set_locked (item, !detachable); ++ GDK_THREADS_LEAVE(); + } + } + diff -ruN /usr/ports/x11-toolkits/libgnomeui/files/patch-libgnomeui::gnome-entry.c libgnomeui/files/patch-libgnomeui::gnome-entry.c --- /usr/ports/x11-toolkits/libgnomeui/files/patch-libgnomeui::gnome-entry.c Thu Jan 1 01:00:00 1970 +++ libgnomeui/files/patch-libgnomeui::gnome-entry.c Sun Mar 20 21:03:52 2005 @@ -0,0 +1,25 @@ +--- libgnomeui/gnome-entry.c.orig Sun Mar 20 20:54:19 2005 ++++ libgnomeui/gnome-entry.c Sun Mar 20 20:54:20 2005 +@@ -419,6 +419,8 @@ + { + GnomeEntry *gentry; + ++ GDK_THREADS_ENTER(); ++ + gentry = GNOME_ENTRY (user_data); + + /* If we're getting a notification from saving our own +@@ -427,10 +429,13 @@ + if (gentry->_priv->saving_history) { + gentry->_priv->saving_history = FALSE; + ++ GDK_THREADS_LEAVE(); + return; + } + + gnome_entry_load_history (gentry); ++ ++ GDK_THREADS_LEAVE(); + } + + /* FIXME: Make this static */ diff -ruN /usr/ports/x11-toolkits/libgnomeui/files/patch-libgnomeui::gnome-gconf-ui.c libgnomeui/files/patch-libgnomeui::gnome-gconf-ui.c --- /usr/ports/x11-toolkits/libgnomeui/files/patch-libgnomeui::gnome-gconf-ui.c Thu Jan 1 01:00:00 1970 +++ libgnomeui/files/patch-libgnomeui::gnome-gconf-ui.c Sun Mar 20 21:02:10 2005 @@ -0,0 +1,20 @@ +--- libgnomeui/gnome-gconf-ui.c.orig Sun Mar 20 20:38:41 2005 ++++ libgnomeui/gnome-gconf-ui.c Sun Mar 20 20:39:51 2005 +@@ -148,6 +148,8 @@ + g_return_val_if_fail(eid.client != NULL, FALSE); + g_return_val_if_fail(pending_errors != NULL, FALSE); + ++ GDK_THREADS_ENTER(); ++ + if (current_dialog == NULL) { + GtkWidget *dialog; + gboolean have_overridden = FALSE; +@@ -245,6 +247,8 @@ + + gtk_window_present (GTK_WINDOW (current_dialog)); + ++ GDK_THREADS_LEAVE(); ++ + return FALSE; + } + diff -ruN /usr/ports/x11-toolkits/libgnomeui/files/patch-libgnomeui::gnome-ice.c libgnomeui/files/patch-libgnomeui::gnome-ice.c --- /usr/ports/x11-toolkits/libgnomeui/files/patch-libgnomeui::gnome-ice.c Thu Jan 1 01:00:00 1970 +++ libgnomeui/files/patch-libgnomeui::gnome-ice.c Sun Mar 20 21:01:19 2005 @@ -0,0 +1,20 @@ +--- libgnomeui/gnome-ice.c.orig Sun Mar 20 20:33:56 2005 ++++ libgnomeui/gnome-ice.c Sun Mar 20 20:34:21 2005 +@@ -54,6 +54,8 @@ + IceConn connection = (IceConn) data; + IceProcessMessagesStatus status; + ++ GDK_THREADS_ENTER(); ++ + status = IceProcessMessages (connection, NULL, NULL); + + if (status == IceProcessMessagesIOError) +@@ -73,6 +75,8 @@ + IceCloseConnection (connection); + } + } ++ ++ GDK_THREADS_LEAVE(); + + return TRUE; + } diff -ruN /usr/ports/x11-toolkits/libgnomeui/files/patch-libgnomeui::gnome-icon-sel.c libgnomeui/files/patch-libgnomeui::gnome-icon-sel.c --- /usr/ports/x11-toolkits/libgnomeui/files/patch-libgnomeui::gnome-icon-sel.c Thu Jan 1 01:00:00 1970 +++ libgnomeui/files/patch-libgnomeui::gnome-icon-sel.c Sun Mar 20 21:02:41 2005 @@ -0,0 +1,20 @@ +--- libgnomeui/gnome-icon-sel.c.orig Sun Mar 20 20:40:05 2005 ++++ libgnomeui/gnome-icon-sel.c Sun Mar 20 20:42:24 2005 +@@ -353,6 +353,8 @@ + return FALSE; + } + ++ GDK_THREADS_ENTER(); ++ + append_an_icon (gis, list->data); + + g_free (list->data); +@@ -367,6 +369,8 @@ + (double)gis->_priv->load_i / gis->_priv->load_file_count); + + gis->_priv->load_i ++; ++ ++ GDK_THREADS_LEAVE(); + + return TRUE; + } diff -ruN /usr/ports/x11-toolkits/libgnomeui/files/patch-libgnomeui::gnome-pixmap-entry.c libgnomeui/files/patch-libgnomeui::gnome-pixmap-entry.c --- /usr/ports/x11-toolkits/libgnomeui/files/patch-libgnomeui::gnome-pixmap-entry.c Thu Jan 1 01:00:00 1970 +++ libgnomeui/files/patch-libgnomeui::gnome-pixmap-entry.c Sun Mar 20 21:01:46 2005 @@ -0,0 +1,25 @@ +--- libgnomeui/gnome-pixmap-entry.c.orig Sun Mar 20 20:34:49 2005 ++++ libgnomeui/gnome-pixmap-entry.c Sun Mar 20 20:38:30 2005 +@@ -237,6 +237,8 @@ + { + GSList *li,*tmp; + ++ GDK_THREADS_ENTER(); ++ + tmp = changed_pentries; + changed_pentries = NULL; + if(tmp) { +@@ -244,9 +246,13 @@ + refresh_preview(li->data); + } + g_slist_free(tmp); ++ ++ GDK_THREADS_LEAVE(); + return TRUE; + } + change_timeout = 0; ++ ++ GDK_THREADS_LEAVE(); + + return FALSE; + } diff -ruN /usr/ports/x11-toolkits/libgnomeui/files/patch-libgnomeui::gnome-ui-init.c libgnomeui/files/patch-libgnomeui::gnome-ui-init.c --- /usr/ports/x11-toolkits/libgnomeui/files/patch-libgnomeui::gnome-ui-init.c Thu Jan 1 01:00:00 1970 +++ libgnomeui/files/patch-libgnomeui::gnome-ui-init.c Sun Mar 20 21:04:19 2005 @@ -0,0 +1,13 @@ +--- libgnomeui/gnome-ui-init.c.orig Sun Mar 20 20:56:32 2005 ++++ libgnomeui/gnome-ui-init.c Sun Mar 20 20:56:36 2005 +@@ -492,8 +492,10 @@ + gnome_gconf_get_bool ("/desktop/gnome/sound/event_sounds")); + + if (new_use_event_sounds && !use_event_sounds) { ++ GDK_THREADS_ENTER(); + initialize_gtk_signal_relay (); + initialize_gnome_signal_relay (); ++ GDK_THREADS_LEAVE(); + } + + use_event_sounds = new_use_event_sounds; >Release-Note: >Audit-Trail: >Unformatted: