diff options
author | Mart Raudsepp <leio@gentoo.org> | 2018-12-11 20:05:12 +0200 |
---|---|---|
committer | Mart Raudsepp <leio@gentoo.org> | 2018-12-11 20:09:03 +0200 |
commit | 0d63624f08af0799d2634447f5198dc5f27fc016 (patch) | |
tree | 4e5b4c0a232d063b87f3724e818d5a44557db794 /gnome-base/nautilus | |
parent | gnome-base/nautilus-3.24.2.1: preparation for tracker-2 (diff) | |
download | gentoo-0d63624f08af0799d2634447f5198dc5f27fc016.tar.gz gentoo-0d63624f08af0799d2634447f5198dc5f27fc016.tar.bz2 gentoo-0d63624f08af0799d2634447f5198dc5f27fc016.zip |
gnome-base/nautilus: bump to 3.26.4
Revision r2 to show up as an upgrade to gnome overlay users,
as this one includes a crash fix patch from upstream branch.
Re-enabled tests - they seem to work with meson now.
Signed-off-by: Mart Raudsepp <leio@gentoo.org>
Package-Manager: Portage-2.3.52, Repoman-2.3.11
Diffstat (limited to 'gnome-base/nautilus')
-rw-r--r-- | gnome-base/nautilus/Manifest | 1 | ||||
-rw-r--r-- | gnome-base/nautilus/files/3.26.4-file-view-crash-fix.patch | 81 | ||||
-rw-r--r-- | gnome-base/nautilus/files/3.26.4-optional-introspection.patch | 49 | ||||
-rw-r--r-- | gnome-base/nautilus/files/3.26.4-optional-tracker.patch | 264 | ||||
-rw-r--r-- | gnome-base/nautilus/nautilus-3.26.4-r2.ebuild | 109 |
5 files changed, 504 insertions, 0 deletions
diff --git a/gnome-base/nautilus/Manifest b/gnome-base/nautilus/Manifest index da9b10188909..14a2ae53b9ea 100644 --- a/gnome-base/nautilus/Manifest +++ b/gnome-base/nautilus/Manifest @@ -1 +1,2 @@ DIST nautilus-3.24.2.1.tar.xz 5143440 BLAKE2B 731046b6bdd0817b770cf3e2f0667187bfde613cf1a15611e6ec06e74bc3c2432ca66894119f224023fe46b01fd777d3dde2d2ac7bba0a9eb0fd71d38e1756ff SHA512 f6868600bcdc82071b3a63f4e4a0f7decf0d72e021eb3d0c26e914413c858163ee4403c4f3ef7689556a0fc91394f30cff9a3db14da030b277b50972c7b80a07 +DIST nautilus-3.26.4.tar.xz 3267652 BLAKE2B 56986b8d87afc0ea7ce6f1f56ae06c7cfb05d060414aad428145a6c2cb631b9d4ebbeaefabb0f0ceeb5f930ae94737f8dfcabb300554a59c2b7d5a53d1ee3cd1 SHA512 2a50a2a9ae6ffbe4b706d46fb47e5f54f42e645189b3548d1904c3ddf882ef4a94819740c6821fe50c662a9013ab43bb9b7b3dbdfc779ecc82f16170b4867973 diff --git a/gnome-base/nautilus/files/3.26.4-file-view-crash-fix.patch b/gnome-base/nautilus/files/3.26.4-file-view-crash-fix.patch new file mode 100644 index 000000000000..72077f4a9fa4 --- /dev/null +++ b/gnome-base/nautilus/files/3.26.4-file-view-crash-fix.patch @@ -0,0 +1,81 @@ +From 834c4e7fe39f7053efdb126f9e1835e6b8e529f4 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= <mail@3v1n0.net> +Date: Thu, 26 Jul 2018 02:55:19 +0000 +Subject: [PATCH 1/3] file-view: Always unset pending_selection after freeing + it + +When a file view was loaded with a pending selection, and not all the files were +seen yet, the private pending_selection list was properly free'd, but the pointer +was not cleared, causing a crash when `nautilus_files_view_set_selection` was +called again, as it was trying to deeply copy a list pointed by this invalid +reference. + +So, removing the unneeded `pending_selection` temporary pointer from the main +function scope, as it only confuses, while use it (with an autolist) when we +need to pass the previous `priv->pending_selection` (stealing its ownership) +to set_selection again. + +Eventually use a g_clear_pointer to free the list and nullify its priv reference + +Fixes #295 + +(cherry picked from commit ae3382a281b018337a8032ef13663ec2d9c7fd6c) +--- + src/nautilus-files-view.c | 16 +++++++--------- + 1 file changed, 7 insertions(+), 9 deletions(-) + +diff --git a/src/nautilus-files-view.c b/src/nautilus-files-view.c +index 8784f63f8..36d791f80 100644 +--- a/src/nautilus-files-view.c ++++ b/src/nautilus-files-view.c +@@ -3556,7 +3556,6 @@ done_loading (NautilusFilesView *view, + gboolean all_files_seen) + { + NautilusFilesViewPrivate *priv; +- GList *pending_selection; + GList *selection; + gboolean do_reveal = FALSE; + +@@ -3577,21 +3576,23 @@ done_loading (NautilusFilesView *view, + nautilus_files_view_update_toolbar_menus (view); + reset_update_interval (view); + +- pending_selection = priv->pending_selection; + selection = nautilus_view_get_selection (NAUTILUS_VIEW (view)); + + if (nautilus_view_is_searching (NAUTILUS_VIEW (view)) && +- all_files_seen && !selection && !pending_selection) ++ all_files_seen && selection == NULL && priv->pending_selection == NULL) + { + nautilus_files_view_select_first (view); + do_reveal = TRUE; + } +- else if (pending_selection != NULL && all_files_seen) ++ else if (priv->pending_selection != NULL && all_files_seen) + { +- priv->pending_selection = NULL; ++ GList *pending_selection; ++ pending_selection = g_steal_pointer (&priv->pending_selection); + + nautilus_files_view_call_set_selection (view, pending_selection); + do_reveal = TRUE; ++ ++ nautilus_file_list_free (pending_selection); + } + + if (selection) +@@ -3599,10 +3600,7 @@ done_loading (NautilusFilesView *view, + g_list_free_full (selection, g_object_unref); + } + +- if (pending_selection) +- { +- g_list_free_full (pending_selection, g_object_unref); +- } ++ g_clear_pointer (&priv->pending_selection, nautilus_file_list_free); + + if (do_reveal) + { +-- +2.17.0 + diff --git a/gnome-base/nautilus/files/3.26.4-optional-introspection.patch b/gnome-base/nautilus/files/3.26.4-optional-introspection.patch new file mode 100644 index 000000000000..54bf5ac95fe4 --- /dev/null +++ b/gnome-base/nautilus/files/3.26.4-optional-introspection.patch @@ -0,0 +1,49 @@ +From 5058b09996181fbd398c799eeba6a1d83b083186 Mon Sep 17 00:00:00 2001 +From: Mart Raudsepp <leio@gentoo.org> +Date: Tue, 11 Dec 2018 16:14:11 +0200 +Subject: [PATCH 3/3] Make introspection support optional + +Upstream has it optional again with commit 200a5869b5c1dc8 as well, +but that's included only since nautilus-3.29.90 +--- + libnautilus-extension/meson.build | 2 ++ + meson_options.txt | 4 ++++ + 2 files changed, 6 insertions(+) + +diff --git a/libnautilus-extension/meson.build b/libnautilus-extension/meson.build +index 067ad2414..4702964a9 100644 +--- a/libnautilus-extension/meson.build ++++ b/libnautilus-extension/meson.build +@@ -41,12 +41,14 @@ libnautilus_extension = shared_library ('nautilus-extension', + version: nautilus_extension_version, + install: true) + ++if get_option('introspection') + gnome.generate_gir (libnautilus_extension, + sources: libnautilus_extension_headers + libnautilus_extension_sources, + nsversion: '3.0', + namespace: 'Nautilus', + includes: ['Gtk-3.0', 'Gio-2.0', 'GLib-2.0'], + install: true) ++endif + + nautilus_extension = declare_dependency (link_with: libnautilus_extension, + dependencies: libnautilus_extension_deps, +diff --git a/meson_options.txt b/meson_options.txt +index 0c23c7921..6ad3a72de 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -1,6 +1,10 @@ + option ('enable-profiling', + type: 'boolean', + value: false) ++option ('introspection', ++ type: 'boolean', ++ value: true, ++ description: 'Build GObject introspection data for extension library') + option ('enable-nst-extension', + type: 'boolean', + value: true) +-- +2.17.0 + diff --git a/gnome-base/nautilus/files/3.26.4-optional-tracker.patch b/gnome-base/nautilus/files/3.26.4-optional-tracker.patch new file mode 100644 index 000000000000..037919967708 --- /dev/null +++ b/gnome-base/nautilus/files/3.26.4-optional-tracker.patch @@ -0,0 +1,264 @@ +From 74a7d02eb342416194dcc3c676199d8f5266a481 Mon Sep 17 00:00:00 2001 +From: Gilles Dartiguelongue <eva@gentoo.org> +Date: Sun, 27 May 2018 13:54:38 +0200 +Subject: [PATCH 2/3] Make tracker support optional + +--- + config.h.meson | 1 + + meson.build | 9 ++++++--- + meson_options.txt | 4 ++++ + src/meson.build | 19 ++++++++++++------- + src/nautilus-file-undo-operations.c | 4 ++++ + src/nautilus-file.c | 2 ++ + src/nautilus-files-view.c | 4 ++++ + src/nautilus-search-engine.c | 14 ++++++++++++++ + 8 files changed, 47 insertions(+), 10 deletions(-) + +diff --git a/config.h.meson b/config.h.meson +index 4f5cb5848..58d71e96f 100644 +--- a/config.h.meson ++++ b/config.h.meson +@@ -4,6 +4,7 @@ + #mesondefine HAVE_EXEMPI + #mesondefine HAVE_EXIF + #mesondefine HAVE_SELINUX ++#mesondefine HAVE_TRACKER + #mesondefine ENABLE_DESKTOP + #mesondefine ENABLE_PACKAGEKIT + #mesondefine LOCALEDIR +diff --git a/meson.build b/meson.build +index 0b8a6f1b0..559c3dbfd 100644 +--- a/meson.build ++++ b/meson.build +@@ -81,9 +81,12 @@ if get_option ('enable-selinux') + conf.set10 ('HAVE_SELINUX', true) + endif + +-tracker_sparql = dependency ('tracker-sparql-2.0', required: false) +-if not tracker_sparql.found() +- tracker_sparql = dependency ('tracker-sparql-1.0') ++if get_option ('tracker') ++ tracker_sparql = dependency ('tracker-sparql-2.0', required: false) ++ if not tracker_sparql.found() ++ tracker_sparql = dependency ('tracker-sparql-1.0') ++ endif ++ conf.set10 ('HAVE_TRACKER', true) + endif + + if get_option ('enable-xmp') +diff --git a/meson_options.txt b/meson_options.txt +index c934dd8b1..0c23c7921 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -8,6 +8,10 @@ option ('enable-exif', + type: 'boolean', + value: false, + description: 'enable EXIF support') ++option ('tracker', ++ type: 'boolean', ++ value: true, ++ description: 'enable bulk renames and search using Tracker') + option ('enable-xmp', + type: 'boolean', + value: false, +diff --git a/src/meson.build b/src/meson.build +index cc08345d8..8ea10b16b 100644 +--- a/src/meson.build ++++ b/src/meson.build +@@ -254,12 +254,6 @@ libnautilus_sources = [ + 'nautilus-file-undo-operations.h', + 'nautilus-file-undo-manager.c', + 'nautilus-file-undo-manager.h', +- 'nautilus-batch-rename-dialog.c', +- 'nautilus-batch-rename-dialog.h', +- 'nautilus-batch-rename-utilities.c', +- 'nautilus-batch-rename-utilities.h', +- 'nautilus-search-engine-tracker.c', +- 'nautilus-search-engine-tracker.h' + ] + + nautilus_deps = [glib, +@@ -274,7 +268,6 @@ nautilus_deps = [glib, + nautilus_extension, + x11, + gmodule_no_export, +- tracker_sparql, + gio_unix] + + if get_option ('enable-exif') +@@ -289,6 +282,18 @@ if get_option ('enable-xmp') + nautilus_deps += exempi + endif + ++if get_option ('tracker') ++ libnautilus_sources += [ ++ 'nautilus-batch-rename-dialog.c', ++ 'nautilus-batch-rename-dialog.h', ++ 'nautilus-batch-rename-utilities.c', ++ 'nautilus-batch-rename-utilities.h', ++ 'nautilus-search-engine-tracker.c', ++ 'nautilus-search-engine-tracker.h' ++ ] ++ nautilus_deps += tracker_sparql ++endif ++ + libnautilus = static_library ('nautilus', + libnautilus_sources, + dependencies: nautilus_deps, +diff --git a/src/nautilus-file-undo-operations.c b/src/nautilus-file-undo-operations.c +index e833d0578..d6e407ca5 100644 +--- a/src/nautilus-file-undo-operations.c ++++ b/src/nautilus-file-undo-operations.c +@@ -31,8 +31,10 @@ + #include "nautilus-file-operations.h" + #include "nautilus-file.h" + #include "nautilus-file-undo-manager.h" ++#ifdef HAVE_TRACKER + #include "nautilus-batch-rename-dialog.h" + #include "nautilus-batch-rename-utilities.h" ++#endif + + + /* Since we use g_get_current_time for setting "orig_trash_time" in the undo +@@ -1087,6 +1089,7 @@ nautilus_file_undo_info_rename_set_data_post (NautilusFileUndoInfoRename *self, + } + + /* batch rename */ ++#ifdef HAVE_TRACKER + G_DEFINE_TYPE (NautilusFileUndoInfoBatchRename, nautilus_file_undo_info_batch_rename, NAUTILUS_TYPE_FILE_UNDO_INFO); + + struct _NautilusFileUndoInfoBatchRenameDetails +@@ -1303,6 +1306,7 @@ nautilus_file_undo_info_batch_rename_set_data_post (NautilusFileUndoInfoBatchRen + + self->priv->new_display_names = g_list_reverse (self->priv->new_display_names); + } ++#endif + + /* trash */ + G_DEFINE_TYPE (NautilusFileUndoInfoTrash, nautilus_file_undo_info_trash, NAUTILUS_TYPE_FILE_UNDO_INFO) +diff --git a/src/nautilus-file.c b/src/nautilus-file.c +index 0ac53984b..549e1eb39 100644 +--- a/src/nautilus-file.c ++++ b/src/nautilus-file.c +@@ -2407,6 +2407,7 @@ real_batch_rename (GList *files, + } + } + ++#ifdef HAVE_TRACKER + /* Tell the undo manager a batch rename is taking place if at least + * a file has been renamed*/ + if (!nautilus_file_undo_manager_is_operating () && op->skipped_files != g_list_length (files)) +@@ -2421,6 +2422,7 @@ real_batch_rename (GList *files, + + nautilus_file_undo_manager_set_action (op->undo_info); + } ++#endif + + if (op->skipped_files == g_list_length (files)) + { +diff --git a/src/nautilus-files-view.c b/src/nautilus-files-view.c +index 36d791f80..691d5606d 100644 +--- a/src/nautilus-files-view.c ++++ b/src/nautilus-files-view.c +@@ -28,8 +28,10 @@ + #include "nautilus-files-view.h" + + #include "nautilus-application.h" ++#ifdef HAVE_TRACKER + #include "nautilus-batch-rename-dialog.h" + #include "nautilus-batch-rename-utilities.h" ++#endif + #include "nautilus-error-reporting.h" + #include "nautilus-file-undo-manager.h" + #include "nautilus-floating-bar.h" +@@ -6264,6 +6266,7 @@ real_action_rename (NautilusFilesView *view) + { + invoke_external_bulk_rename_utility (view, selection); + } ++#ifdef HAVE_TRACKER + else + { + GdkCursor *cursor; +@@ -6281,6 +6284,7 @@ real_action_rename (NautilusFilesView *view) + + gtk_widget_show (GTK_WIDGET (dialog)); + } ++#endif + } + else + { +diff --git a/src/nautilus-search-engine.c b/src/nautilus-search-engine.c +index 209bd4f80..436cd7471 100644 +--- a/src/nautilus-search-engine.c ++++ b/src/nautilus-search-engine.c +@@ -28,11 +28,15 @@ + #include "nautilus-search-engine-model.h" + #define DEBUG_FLAG NAUTILUS_DEBUG_SEARCH + #include "nautilus-debug.h" ++#ifdef HAVE_TRACKER + #include "nautilus-search-engine-tracker.h" ++#endif + + typedef struct + { ++#ifdef HAVE_TRACKER + NautilusSearchEngineTracker *tracker; ++#endif + NautilusSearchEngineSimple *simple; + NautilusSearchEngineModel *model; + +@@ -73,7 +77,9 @@ nautilus_search_engine_set_query (NautilusSearchProvider *provider, + engine = NAUTILUS_SEARCH_ENGINE (provider); + priv = nautilus_search_engine_get_instance_private (engine); + ++#ifdef HAVE_TRACKER + nautilus_search_provider_set_query (NAUTILUS_SEARCH_PROVIDER (priv->tracker), query); ++#endif + nautilus_search_provider_set_query (NAUTILUS_SEARCH_PROVIDER (priv->model), query); + nautilus_search_provider_set_query (NAUTILUS_SEARCH_PROVIDER (priv->simple), query); + } +@@ -95,8 +101,10 @@ search_engine_start_real (NautilusSearchEngine *engine) + + g_object_ref (engine); + ++#ifdef HAVE_TRACKER + nautilus_search_provider_start (NAUTILUS_SEARCH_PROVIDER (priv->tracker)); + priv->providers_running++; ++#endif + + if (nautilus_search_engine_model_get_model (priv->model)) + { +@@ -158,7 +166,9 @@ nautilus_search_engine_stop (NautilusSearchProvider *provider) + + DEBUG ("Search engine stop"); + ++#ifdef HAVE_TRACKER + nautilus_search_provider_stop (NAUTILUS_SEARCH_PROVIDER (priv->tracker)); ++#endif + nautilus_search_provider_stop (NAUTILUS_SEARCH_PROVIDER (priv->model)); + nautilus_search_provider_stop (NAUTILUS_SEARCH_PROVIDER (priv->simple)); + +@@ -333,7 +343,9 @@ nautilus_search_engine_finalize (GObject *object) + + g_hash_table_destroy (priv->uris); + ++#ifdef HAVE_TRACKER + g_clear_object (&priv->tracker); ++#endif + g_clear_object (&priv->model); + g_clear_object (&priv->simple); + +@@ -387,8 +399,10 @@ nautilus_search_engine_init (NautilusSearchEngine *engine) + priv = nautilus_search_engine_get_instance_private (engine); + priv->uris = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL); + ++#ifdef HAVE_TRACKER + priv->tracker = nautilus_search_engine_tracker_new (); + connect_provider_signals (engine, NAUTILUS_SEARCH_PROVIDER (priv->tracker)); ++#endif + + priv->model = nautilus_search_engine_model_new (); + connect_provider_signals (engine, NAUTILUS_SEARCH_PROVIDER (priv->model)); +-- +2.17.0 + diff --git a/gnome-base/nautilus/nautilus-3.26.4-r2.ebuild b/gnome-base/nautilus/nautilus-3.26.4-r2.ebuild new file mode 100644 index 000000000000..aef38545ec00 --- /dev/null +++ b/gnome-base/nautilus/nautilus-3.26.4-r2.ebuild @@ -0,0 +1,109 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit gnome.org gnome2-utils meson readme.gentoo-r1 virtualx xdg + +DESCRIPTION="A file manager for the GNOME desktop" +HOMEPAGE="https://wiki.gnome.org/Apps/Nautilus" + +LICENSE="GPL-3+ LGPL-2.1+" +SLOT="0" +IUSE="exif gnome gtk-doc +introspection packagekit +previewer selinux sendto tracker xmp" + +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux" + +COMMON_DEPEND=" + >=dev-libs/glib-2.51.2:2 + >=gnome-base/gnome-desktop-3.0.0:3= + >=x11-libs/pango-1.28.3 + >=x11-libs/gtk+-3.22.6:3[X,introspection?] + >=dev-libs/libxml2-2.7.8:2 + exif? ( >=media-libs/libexif-0.6.20 ) + xmp? ( >=media-libs/exempi-2.1.0:2 ) + >=gnome-base/gsettings-desktop-schemas-3.8.0 + >=app-arch/gnome-autoar-0.2.1 + selinux? ( >=sys-libs/libselinux-2.0 ) + x11-libs/libX11 + tracker? ( >=app-misc/tracker-1:= ) + introspection? ( >=dev-libs/gobject-introspection-0.6.4:= ) +" +DEPEND="${COMMON_DEPEND} + >=dev-util/gdbus-codegen-2.51.2 + dev-util/glib-utils + gtk-doc? ( >=dev-util/gtk-doc-1.10 ) + >=sys-devel/gettext-0.19.8 + virtual/pkgconfig + x11-base/xorg-proto +" +RDEPEND="${COMMON_DEPEND} + packagekit? ( app-admin/packagekit-base ) + sendto? ( !<gnome-extra/nautilus-sendto-3.0.1 ) +" + +PDEPEND=" + gnome? ( x11-themes/adwaita-icon-theme ) + previewer? ( >=gnome-extra/sushi-0.1.9 ) + sendto? ( >=gnome-extra/nautilus-sendto-3.0.1 ) + >=gnome-base/gvfs-1.14[gtk(+)] +" +# Need gvfs[gtk] for recent:/// support; always built (without USE=gtk) since gvfs-1.34 + +PATCHES=( + "${FILESDIR}"/${PV}-file-view-crash-fix.patch + "${FILESDIR}"/${PV}-optional-tracker.patch + "${FILESDIR}"/${PV}-optional-introspection.patch +) + +src_prepare() { + if use previewer; then + DOC_CONTENTS="nautilus uses gnome-extra/sushi to preview media files. + To activate the previewer, select a file and press space; to + close the previewer, press space again." + fi + xdg_src_prepare +} + +src_configure() { + local emesonargs=( + -Denable-profiling=false + $(meson_use introspection) + $(meson_use sendto enable-nst-extension) + $(meson_use exif enable-exif) + $(meson_use tracker) + $(meson_use xmp enable-xmp) + $(meson_use selinux enable-selinux) + -Denable-desktop=true + $(meson_use packagekit enable-packagekit) + $(meson_use gtk-doc enable-gtk-doc) + ) + meson_src_configure +} + +src_install() { + use previewer && readme.gentoo_create_doc + meson_src_install +} + +src_test() { + virtx meson_src_test +} + +pkg_postinst() { + xdg_pkg_postinst + gnome2_icon_cache_update + gnome2_schemas_update + + if use previewer; then + readme.gentoo_print_elog + else + elog "To preview media files, emerge nautilus with USE=previewer" + fi +} + +pkg_postrm() { + xdg_pkg_postrm + gnome2_icon_cache_update + gnome2_schemas_update +} |