diff -Nru nautilus-open-terminal-0.19/debian/changelog nautilus-open-terminal-0.19/debian/changelog --- nautilus-open-terminal-0.19/debian/changelog 2011-10-04 20:55:11.000000000 +0200 +++ nautilus-open-terminal-0.19/debian/changelog 2011-10-14 16:51:38.000000000 +0200 @@ -1,3 +1,11 @@ +nautilus-open-terminal (0.19-1build2ubuntu1) oneiric; urgency=low + + * debian/patches/02_fixed-gconf-bug.patch: It seems libgconf-2 is not + "thread safe" because sometime, it crashes by using this function + 'gconf_client_get_bool' (LP: #869131) + + -- Matthieu Baerts (matttbe) Fri, 14 Oct 2011 16:50:50 +0200 + nautilus-open-terminal (0.19-1build1) oneiric; urgency=low * No-source-change rebuild to fix nautilus from crashing when this plugin is diff -Nru nautilus-open-terminal-0.19/debian/patches/02_fixed-gconf-bug.patch nautilus-open-terminal-0.19/debian/patches/02_fixed-gconf-bug.patch --- nautilus-open-terminal-0.19/debian/patches/02_fixed-gconf-bug.patch 1970-01-01 01:00:00.000000000 +0100 +++ nautilus-open-terminal-0.19/debian/patches/02_fixed-gconf-bug.patch 2011-10-14 16:47:28.000000000 +0200 @@ -0,0 +1,67 @@ +## Description: It seems libgconf-2 is not "thread safe" because sometime, +## it crashes by using this function: 'gconf_client_get_bool' +## Origin/Author: Matthieu Baerts (matttbe) +## Bug: LP: #869131 +Index: nautilus-open-terminal-0.19/src/nautilus-open-terminal.c +=================================================================== +--- nautilus-open-terminal-0.19.orig/src/nautilus-open-terminal.c 2011-10-14 16:34:35.114539196 +0200 ++++ nautilus-open-terminal-0.19/src/nautilus-open-terminal.c 2011-10-14 16:38:38.434530653 +0200 +@@ -49,6 +49,10 @@ + + static GType terminal_type = 0; + ++static gboolean s_bHasBeenChecked = FALSE; ++static gboolean s_bTerminalLockedDown = FALSE; ++static gboolean s_bDisplayMcItem = TRUE; ++ + typedef enum { + /* local files. Always open "conventionally", i.e. cd and spawn. */ + FILE_INFO_LOCAL, +@@ -496,7 +500,13 @@ + NautilusMenuItem *item; + TerminalFileInfo terminal_file_info; + +- if (terminal_locked_down ()) { ++ if (! s_bHasBeenChecked) ++ { ++ s_bTerminalLockedDown = terminal_locked_down (); ++ s_bDisplayMcItem = display_mc_item (); ++ s_bHasBeenChecked = TRUE; ++ } ++ if (s_bTerminalLockedDown) { + return NULL; + } + +@@ -523,7 +533,7 @@ + items = g_list_append (items, item); + } + +- if (display_mc_item () && ++ if (s_bDisplayMcItem && + g_find_program_in_path ("mc") && + ((terminal_file_info == FILE_INFO_DESKTOP && + (desktop_is_home_dir () || desktop_opens_home_dir ())) || +@@ -547,7 +557,13 @@ + NautilusMenuItem *item; + TerminalFileInfo terminal_file_info; + +- if (terminal_locked_down ()) { ++ if (! s_bHasBeenChecked) ++ { ++ s_bTerminalLockedDown = terminal_locked_down (); ++ s_bDisplayMcItem = display_mc_item (); ++ s_bHasBeenChecked = TRUE; ++ } ++ if (s_bTerminalLockedDown) { + return NULL; + } + +@@ -579,7 +595,7 @@ + items = g_list_append (items, item); + } + +- if (display_mc_item () && ++ if (s_bDisplayMcItem && + g_find_program_in_path ("mc") && + uri_has_local_path (uri)) { + item = open_terminal_menu_item_new (files->data, terminal_file_info, gtk_widget_get_screen (window), "mc", TRUE, FALSE); diff -Nru nautilus-open-terminal-0.19/debian/patches/series nautilus-open-terminal-0.19/debian/patches/series --- nautilus-open-terminal-0.19/debian/patches/series 2011-03-26 14:38:27.000000000 +0100 +++ nautilus-open-terminal-0.19/debian/patches/series 2011-10-14 16:47:42.000000000 +0200 @@ -1 +1,2 @@ 01_as-needed.diff +02_fixed-gconf-bug.patch