import nautilus-3.28.1-12.el8

This commit is contained in:
CentOS Sources 2020-04-28 05:44:58 -04:00 committed by Andrew Lukoshko
parent 347ab56a2c
commit f1ca0efa23
6 changed files with 271 additions and 1 deletions

View File

@ -0,0 +1,62 @@
From a20229f185b494a107634c4b99b2be1ce962a277 Mon Sep 17 00:00:00 2001
From: Ondrej Holy <oholy@redhat.com>
Date: Thu, 26 Sep 2019 11:06:45 +0200
Subject: [PATCH] properties-window: Fix crashes when cancelled
Nautilus crashes on the "timed_wait_free: assertion failed:
(g_hash_table_lookup (timed_wait_hash_table, wait) != NULL)" assertion
when the creating of the properties window is cancelled. This is because
the timed wait has been already removed. Let's don't remove the wait
when cancelled in order to prevent the crashes.
---
src/nautilus-properties-window.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/src/nautilus-properties-window.c b/src/nautilus-properties-window.c
index 969e3ffea..0112aeb3c 100644
--- a/src/nautilus-properties-window.c
+++ b/src/nautilus-properties-window.c
@@ -148,6 +148,7 @@ typedef struct
NautilusPropertiesWindowCallback callback;
gpointer callback_data;
NautilusPropertiesWindow *window;
+ gboolean cancelled;
} StartupData;
/* drag and drop definitions */
@@ -5229,6 +5230,8 @@ get_existing_window (GList *file_list)
static void
properties_window_finish (StartupData *data)
{
+ gboolean cancel_timed_wait;
+
if (data->parent_widget != NULL)
{
g_signal_handlers_disconnect_by_data (data->parent_widget,
@@ -5240,14 +5243,21 @@ properties_window_finish (StartupData *data)
data);
}
- remove_pending (data, TRUE, (data->window == NULL), FALSE);
+ cancel_timed_wait = (data->window == NULL && !data->cancelled);
+ remove_pending (data, TRUE, cancel_timed_wait, FALSE);
+
startup_data_free (data);
}
static void
cancel_create_properties_window_callback (gpointer callback_data)
{
- properties_window_finish ((StartupData *) callback_data);
+ StartupData *data;
+
+ data = callback_data;
+ data->cancelled = TRUE;
+
+ properties_window_finish (data);
}
static void
--
2.23.0

View File

@ -0,0 +1,33 @@
From c4b567936ebbba8479f6641c89b3980f7963b765 Mon Sep 17 00:00:00 2001
From: Ondrej Holy <oholy@redhat.com>
Date: Thu, 26 Sep 2019 11:07:35 +0200
Subject: [PATCH] properties-window: Fix crashes when opened multiple times
Nautilus crashes with segmentation fault when closing the properties dialog
after it has been opened mutliple times for the same file. This can't be
reproduced over Nautilus as it uses modal dialogs, however, it can be simply
reproduced over the Desktop Icons extension. Let's check the pending_key
variable before used to be sure it is not NULL to fix this crashes.
---
src/nautilus-properties-window.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/nautilus-properties-window.c b/src/nautilus-properties-window.c
index 0112aeb3c..f6b2f21a6 100644
--- a/src/nautilus-properties-window.c
+++ b/src/nautilus-properties-window.c
@@ -5297,7 +5297,10 @@ remove_pending (StartupData *startup_data,
eel_timed_wait_stop
(cancel_create_properties_window_callback, startup_data);
}
- g_hash_table_remove (pending_lists, startup_data->pending_key);
+ if (startup_data->pending_key != NULL)
+ {
+ g_hash_table_remove (pending_lists, startup_data->pending_key);
+ }
}
static gboolean
--
2.23.0

View File

@ -0,0 +1,32 @@
From 97ec09e79d0a92f57ef6bb6b7e042921f5c3c3c8 Mon Sep 17 00:00:00 2001
From: Ondrej Holy <oholy@redhat.com>
Date: Tue, 24 Sep 2019 17:06:15 +0200
Subject: [PATCH] properties-window: Fix criticals when closing
The "eel_timed_wait_stop: assertion 'wait != NULL' failed" critical
is printed when closing the properties window since commit c8c2fab2.
This is because the timed wait has been already removed. Let's remove
the wait when closing only if it has not been yet removed in order to
prevent this criticals.
Fixes: https://gitlab.gnome.org/GNOME/nautilus/issues/1075
---
src/nautilus-properties-window.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/nautilus-properties-window.c b/src/nautilus-properties-window.c
index 9d9bd1c54..969e3ffea 100644
--- a/src/nautilus-properties-window.c
+++ b/src/nautilus-properties-window.c
@@ -5240,7 +5240,7 @@ properties_window_finish (StartupData *data)
data);
}
- remove_pending (data, TRUE, TRUE, FALSE);
+ remove_pending (data, TRUE, (data->window == NULL), FALSE);
startup_data_free (data);
}
--
2.23.0

View File

@ -0,0 +1,90 @@
diff --git a/src/nautilus-search-engine-tracker.c b/src/nautilus-search-engine-tracker.c
index 66494cae8..32b6039a9 100644
--- a/src/nautilus-search-engine-tracker.c
+++ b/src/nautilus-search-engine-tracker.c
@@ -286,6 +286,12 @@ search_finished_idle (gpointer user_data)
return FALSE;
}
+/* This is used to compensate rank if fts:rank is not set (resp. fts:match is
+ * not used). The value was determined experimentally. I am conviced that
+ * fts:rank is currently always set to 5.0 in case of filename match.
+ */
+#define FILENAME_RANK 5.0
+
static void
nautilus_search_engine_tracker_start (NautilusSearchProvider *provider)
{
@@ -327,7 +333,11 @@ nautilus_search_engine_tracker_start (NautilusSearchProvider *provider)
mimetypes = nautilus_query_get_mime_types (tracker->query);
mime_count = g_list_length (mimetypes);
- sparql = g_string_new ("SELECT DISTINCT nie:url(?urn) fts:rank(?urn) nfo:fileLastModified(?urn) nfo:fileLastAccessed(?urn)");
+ sparql = g_string_new ("SELECT DISTINCT"
+ " nie:url(?urn)"
+ " xsd:double(COALESCE(?rank2, ?rank1)) AS ?rank"
+ " nfo:fileLastModified(?urn)"
+ " nfo:fileLastAccessed(?urn)");
if (tracker->fts_enabled)
{
@@ -342,16 +352,31 @@ nautilus_search_engine_tracker_start (NautilusSearchProvider *provider)
" tracker:available true;"
" nie:url ?url");
- if (*search_text)
+ if (mime_count > 0)
{
- g_string_append_printf (sparql, "; fts:match '\"%s\"*'", search_text);
+ g_string_append (sparql, "; nie:mimeType ?mime");
}
- if (mime_count > 0)
+ if (tracker->fts_enabled)
{
- g_string_append (sparql, "; nie:mimeType ?mime");
+ /* Use fts:match only for content search to not lose some filename results due to stop words. */
+ g_string_append_printf (sparql,
+ " {"
+ " ?urn fts:match '\"nie:plainTextContent\" : \"%s\"*' ."
+ " BIND(fts:rank(?urn) AS ?rank1) ."
+ " } UNION",
+ search_text);
}
+ g_string_append_printf (sparql,
+ " {"
+ " ?urn nfo:fileName ?filename ."
+ " FILTER(fn:contains(fn:lower-case(?filename), '%s')) ."
+ " BIND(%f AS ?rank2) ."
+ " }",
+ search_text,
+ FILENAME_RANK);
+
g_string_append_printf (sparql, " . FILTER( ");
if (!tracker->recursive)
@@ -363,11 +388,6 @@ nautilus_search_engine_tracker_start (NautilusSearchProvider *provider)
g_string_append_printf (sparql, "tracker:uri-is-descendant('%s', ?url)", location_uri);
}
- if (!tracker->fts_enabled)
- {
- g_string_append_printf (sparql, " && fn:contains(fn:lower-case(nfo:fileName(?urn)), '%s')", search_text);
- }
-
date_range = nautilus_query_get_date_range (tracker->query);
if (date_range)
{
@@ -424,7 +444,7 @@ nautilus_search_engine_tracker_start (NautilusSearchProvider *provider)
g_string_append (sparql, ")\n");
}
- g_string_append (sparql, ")} ORDER BY DESC (fts:rank(?urn))");
+ g_string_append (sparql, ")} ORDER BY DESC (?rank)");
tracker->cancellable = g_cancellable_new ();
tracker_sparql_connection_query_async (tracker->connection,
--
2.23.0

View File

@ -0,0 +1,35 @@
From 668e0673a7ea3fe4cb6c99bc7b56bc52597e2061 Mon Sep 17 00:00:00 2001
From: Ondrej Holy <oholy@redhat.com>
Date: Wed, 25 Sep 2019 09:16:44 +0200
Subject: [PATCH] window: Fix criticals when moving file to trash
The "gtk_revealer_get_transition_type: assertion 'GTK_IS_REVEALER (revealer)'
failed" critical is printed when moving file to trash after closing a window.
This is because the "undo-changed" signal handler is not disconnected when
the window is destroyed. Let's use g_signal_connect_object() to ensure
disconnection and prevent those criticals.
Fixes: https://gitlab.gnome.org/GNOME/nautilus/issues/1076
---
src/nautilus-window.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/nautilus-window.c b/src/nautilus-window.c
index 285a6a6ce..056c75c7a 100644
--- a/src/nautilus-window.c
+++ b/src/nautilus-window.c
@@ -2239,8 +2239,9 @@ nautilus_window_constructed (GObject *self)
nautilus_window_set_up_sidebar (window);
- g_signal_connect_after (nautilus_file_undo_manager_get (), "undo-changed",
- G_CALLBACK (nautilus_window_on_undo_changed), self);
+ g_signal_connect_object (nautilus_file_undo_manager_get (), "undo-changed",
+ G_CALLBACK (nautilus_window_on_undo_changed), self,
+ G_CONNECT_AFTER);
/* Is required that the UI is constructed before initializating the actions, since
* some actions trigger UI widgets to show/hide. */
--
2.23.0

View File

@ -8,7 +8,7 @@
Name: nautilus
Version: 3.28.1
Release: 10%{?dist}
Release: 12%{?dist}
Summary: File manager for GNOME
License: GPLv3+
@ -39,6 +39,17 @@ Patch20: window-Add-website-link-to-About-dialog.patch
Patch21: appdata-Use-Files-instead-of-Nautilus.patch
Patch22: docs-Add-nautilus-autorun-software-man-page.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1721133
Patch23: window-Fix-criticals-when-moving-file-to-trash.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1721124
Patch24: properties-window-Fix-criticals-when-closing.patch
Patch25: properties-window-Fix-crashes-when-cancelled.patch
Patch26: properties-window-Fix-crashes-when-opened-multiple-t.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1646352
Patch27: search-engine-tracker-Do-not-lose-filename-results-d.patch
BuildRequires: gtk-doc
BuildRequires: meson
BuildRequires: gcc
@ -151,6 +162,13 @@ desktop-file-validate $RPM_BUILD_ROOT%{_datadir}/applications/*.desktop
%{_datadir}/gir-1.0/*.gir
%changelog
* Mon Dec 9 2019 Ondrej Holy <oholy@redhat.com> - 3.28.1-12
- Do not lose filename results due to stop words (rhbz#1646352)
* Thu Sep 26 2019 Ondrej Holy <oholy@redhat.com> - 3.28.1-11
- Fix criticals when moving file to trash (rhbz#1721133)
- Fix criticals when closing properties window (rhbz#1721124)
* Thu Jul 4 2019 Ondrej Holy <oholy@redhat.com> - 3.28.1-10
- Add screenshots for GNOME Software in Appdata file (rhbz#1725107)
- Add website link to About dialog (rhbz#1725101)