Gentoo Archives: gentoo-commits

From: Mart Raudsepp <leio@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: gnome-base/nautilus/files/, gnome-base/nautilus/
Date: Tue, 11 Dec 2018 18:17:55
Message-Id: 1544551743.0d63624f08af0799d2634447f5198dc5f27fc016.leio@gentoo
1 commit: 0d63624f08af0799d2634447f5198dc5f27fc016
2 Author: Mart Raudsepp <leio <AT> gentoo <DOT> org>
3 AuthorDate: Tue Dec 11 18:05:12 2018 +0000
4 Commit: Mart Raudsepp <leio <AT> gentoo <DOT> org>
5 CommitDate: Tue Dec 11 18:09:03 2018 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0d63624f
7
8 gnome-base/nautilus: bump to 3.26.4
9
10 Revision r2 to show up as an upgrade to gnome overlay users,
11 as this one includes a crash fix patch from upstream branch.
12
13 Re-enabled tests - they seem to work with meson now.
14
15 Signed-off-by: Mart Raudsepp <leio <AT> gentoo.org>
16 Package-Manager: Portage-2.3.52, Repoman-2.3.11
17
18 gnome-base/nautilus/Manifest | 1 +
19 .../files/3.26.4-file-view-crash-fix.patch | 81 +++++++
20 .../files/3.26.4-optional-introspection.patch | 49 ++++
21 .../nautilus/files/3.26.4-optional-tracker.patch | 264 +++++++++++++++++++++
22 gnome-base/nautilus/nautilus-3.26.4-r2.ebuild | 109 +++++++++
23 5 files changed, 504 insertions(+)
24
25 diff --git a/gnome-base/nautilus/Manifest b/gnome-base/nautilus/Manifest
26 index da9b1018890..14a2ae53b9e 100644
27 --- a/gnome-base/nautilus/Manifest
28 +++ b/gnome-base/nautilus/Manifest
29 @@ -1 +1,2 @@
30 DIST nautilus-3.24.2.1.tar.xz 5143440 BLAKE2B 731046b6bdd0817b770cf3e2f0667187bfde613cf1a15611e6ec06e74bc3c2432ca66894119f224023fe46b01fd777d3dde2d2ac7bba0a9eb0fd71d38e1756ff SHA512 f6868600bcdc82071b3a63f4e4a0f7decf0d72e021eb3d0c26e914413c858163ee4403c4f3ef7689556a0fc91394f30cff9a3db14da030b277b50972c7b80a07
31 +DIST nautilus-3.26.4.tar.xz 3267652 BLAKE2B 56986b8d87afc0ea7ce6f1f56ae06c7cfb05d060414aad428145a6c2cb631b9d4ebbeaefabb0f0ceeb5f930ae94737f8dfcabb300554a59c2b7d5a53d1ee3cd1 SHA512 2a50a2a9ae6ffbe4b706d46fb47e5f54f42e645189b3548d1904c3ddf882ef4a94819740c6821fe50c662a9013ab43bb9b7b3dbdfc779ecc82f16170b4867973
32
33 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
34 new file mode 100644
35 index 00000000000..72077f4a9fa
36 --- /dev/null
37 +++ b/gnome-base/nautilus/files/3.26.4-file-view-crash-fix.patch
38 @@ -0,0 +1,81 @@
39 +From 834c4e7fe39f7053efdb126f9e1835e6b8e529f4 Mon Sep 17 00:00:00 2001
40 +From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= <mail@×××××.net>
41 +Date: Thu, 26 Jul 2018 02:55:19 +0000
42 +Subject: [PATCH 1/3] file-view: Always unset pending_selection after freeing
43 + it
44 +
45 +When a file view was loaded with a pending selection, and not all the files were
46 +seen yet, the private pending_selection list was properly free'd, but the pointer
47 +was not cleared, causing a crash when `nautilus_files_view_set_selection` was
48 +called again, as it was trying to deeply copy a list pointed by this invalid
49 +reference.
50 +
51 +So, removing the unneeded `pending_selection` temporary pointer from the main
52 +function scope, as it only confuses, while use it (with an autolist) when we
53 +need to pass the previous `priv->pending_selection` (stealing its ownership)
54 +to set_selection again.
55 +
56 +Eventually use a g_clear_pointer to free the list and nullify its priv reference
57 +
58 +Fixes #295
59 +
60 +(cherry picked from commit ae3382a281b018337a8032ef13663ec2d9c7fd6c)
61 +---
62 + src/nautilus-files-view.c | 16 +++++++---------
63 + 1 file changed, 7 insertions(+), 9 deletions(-)
64 +
65 +diff --git a/src/nautilus-files-view.c b/src/nautilus-files-view.c
66 +index 8784f63f8..36d791f80 100644
67 +--- a/src/nautilus-files-view.c
68 ++++ b/src/nautilus-files-view.c
69 +@@ -3556,7 +3556,6 @@ done_loading (NautilusFilesView *view,
70 + gboolean all_files_seen)
71 + {
72 + NautilusFilesViewPrivate *priv;
73 +- GList *pending_selection;
74 + GList *selection;
75 + gboolean do_reveal = FALSE;
76 +
77 +@@ -3577,21 +3576,23 @@ done_loading (NautilusFilesView *view,
78 + nautilus_files_view_update_toolbar_menus (view);
79 + reset_update_interval (view);
80 +
81 +- pending_selection = priv->pending_selection;
82 + selection = nautilus_view_get_selection (NAUTILUS_VIEW (view));
83 +
84 + if (nautilus_view_is_searching (NAUTILUS_VIEW (view)) &&
85 +- all_files_seen && !selection && !pending_selection)
86 ++ all_files_seen && selection == NULL && priv->pending_selection == NULL)
87 + {
88 + nautilus_files_view_select_first (view);
89 + do_reveal = TRUE;
90 + }
91 +- else if (pending_selection != NULL && all_files_seen)
92 ++ else if (priv->pending_selection != NULL && all_files_seen)
93 + {
94 +- priv->pending_selection = NULL;
95 ++ GList *pending_selection;
96 ++ pending_selection = g_steal_pointer (&priv->pending_selection);
97 +
98 + nautilus_files_view_call_set_selection (view, pending_selection);
99 + do_reveal = TRUE;
100 ++
101 ++ nautilus_file_list_free (pending_selection);
102 + }
103 +
104 + if (selection)
105 +@@ -3599,10 +3600,7 @@ done_loading (NautilusFilesView *view,
106 + g_list_free_full (selection, g_object_unref);
107 + }
108 +
109 +- if (pending_selection)
110 +- {
111 +- g_list_free_full (pending_selection, g_object_unref);
112 +- }
113 ++ g_clear_pointer (&priv->pending_selection, nautilus_file_list_free);
114 +
115 + if (do_reveal)
116 + {
117 +--
118 +2.17.0
119 +
120
121 diff --git a/gnome-base/nautilus/files/3.26.4-optional-introspection.patch b/gnome-base/nautilus/files/3.26.4-optional-introspection.patch
122 new file mode 100644
123 index 00000000000..54bf5ac95fe
124 --- /dev/null
125 +++ b/gnome-base/nautilus/files/3.26.4-optional-introspection.patch
126 @@ -0,0 +1,49 @@
127 +From 5058b09996181fbd398c799eeba6a1d83b083186 Mon Sep 17 00:00:00 2001
128 +From: Mart Raudsepp <leio@g.o>
129 +Date: Tue, 11 Dec 2018 16:14:11 +0200
130 +Subject: [PATCH 3/3] Make introspection support optional
131 +
132 +Upstream has it optional again with commit 200a5869b5c1dc8 as well,
133 +but that's included only since nautilus-3.29.90
134 +---
135 + libnautilus-extension/meson.build | 2 ++
136 + meson_options.txt | 4 ++++
137 + 2 files changed, 6 insertions(+)
138 +
139 +diff --git a/libnautilus-extension/meson.build b/libnautilus-extension/meson.build
140 +index 067ad2414..4702964a9 100644
141 +--- a/libnautilus-extension/meson.build
142 ++++ b/libnautilus-extension/meson.build
143 +@@ -41,12 +41,14 @@ libnautilus_extension = shared_library ('nautilus-extension',
144 + version: nautilus_extension_version,
145 + install: true)
146 +
147 ++if get_option('introspection')
148 + gnome.generate_gir (libnautilus_extension,
149 + sources: libnautilus_extension_headers + libnautilus_extension_sources,
150 + nsversion: '3.0',
151 + namespace: 'Nautilus',
152 + includes: ['Gtk-3.0', 'Gio-2.0', 'GLib-2.0'],
153 + install: true)
154 ++endif
155 +
156 + nautilus_extension = declare_dependency (link_with: libnautilus_extension,
157 + dependencies: libnautilus_extension_deps,
158 +diff --git a/meson_options.txt b/meson_options.txt
159 +index 0c23c7921..6ad3a72de 100644
160 +--- a/meson_options.txt
161 ++++ b/meson_options.txt
162 +@@ -1,6 +1,10 @@
163 + option ('enable-profiling',
164 + type: 'boolean',
165 + value: false)
166 ++option ('introspection',
167 ++ type: 'boolean',
168 ++ value: true,
169 ++ description: 'Build GObject introspection data for extension library')
170 + option ('enable-nst-extension',
171 + type: 'boolean',
172 + value: true)
173 +--
174 +2.17.0
175 +
176
177 diff --git a/gnome-base/nautilus/files/3.26.4-optional-tracker.patch b/gnome-base/nautilus/files/3.26.4-optional-tracker.patch
178 new file mode 100644
179 index 00000000000..03791996770
180 --- /dev/null
181 +++ b/gnome-base/nautilus/files/3.26.4-optional-tracker.patch
182 @@ -0,0 +1,264 @@
183 +From 74a7d02eb342416194dcc3c676199d8f5266a481 Mon Sep 17 00:00:00 2001
184 +From: Gilles Dartiguelongue <eva@g.o>
185 +Date: Sun, 27 May 2018 13:54:38 +0200
186 +Subject: [PATCH 2/3] Make tracker support optional
187 +
188 +---
189 + config.h.meson | 1 +
190 + meson.build | 9 ++++++---
191 + meson_options.txt | 4 ++++
192 + src/meson.build | 19 ++++++++++++-------
193 + src/nautilus-file-undo-operations.c | 4 ++++
194 + src/nautilus-file.c | 2 ++
195 + src/nautilus-files-view.c | 4 ++++
196 + src/nautilus-search-engine.c | 14 ++++++++++++++
197 + 8 files changed, 47 insertions(+), 10 deletions(-)
198 +
199 +diff --git a/config.h.meson b/config.h.meson
200 +index 4f5cb5848..58d71e96f 100644
201 +--- a/config.h.meson
202 ++++ b/config.h.meson
203 +@@ -4,6 +4,7 @@
204 + #mesondefine HAVE_EXEMPI
205 + #mesondefine HAVE_EXIF
206 + #mesondefine HAVE_SELINUX
207 ++#mesondefine HAVE_TRACKER
208 + #mesondefine ENABLE_DESKTOP
209 + #mesondefine ENABLE_PACKAGEKIT
210 + #mesondefine LOCALEDIR
211 +diff --git a/meson.build b/meson.build
212 +index 0b8a6f1b0..559c3dbfd 100644
213 +--- a/meson.build
214 ++++ b/meson.build
215 +@@ -81,9 +81,12 @@ if get_option ('enable-selinux')
216 + conf.set10 ('HAVE_SELINUX', true)
217 + endif
218 +
219 +-tracker_sparql = dependency ('tracker-sparql-2.0', required: false)
220 +-if not tracker_sparql.found()
221 +- tracker_sparql = dependency ('tracker-sparql-1.0')
222 ++if get_option ('tracker')
223 ++ tracker_sparql = dependency ('tracker-sparql-2.0', required: false)
224 ++ if not tracker_sparql.found()
225 ++ tracker_sparql = dependency ('tracker-sparql-1.0')
226 ++ endif
227 ++ conf.set10 ('HAVE_TRACKER', true)
228 + endif
229 +
230 + if get_option ('enable-xmp')
231 +diff --git a/meson_options.txt b/meson_options.txt
232 +index c934dd8b1..0c23c7921 100644
233 +--- a/meson_options.txt
234 ++++ b/meson_options.txt
235 +@@ -8,6 +8,10 @@ option ('enable-exif',
236 + type: 'boolean',
237 + value: false,
238 + description: 'enable EXIF support')
239 ++option ('tracker',
240 ++ type: 'boolean',
241 ++ value: true,
242 ++ description: 'enable bulk renames and search using Tracker')
243 + option ('enable-xmp',
244 + type: 'boolean',
245 + value: false,
246 +diff --git a/src/meson.build b/src/meson.build
247 +index cc08345d8..8ea10b16b 100644
248 +--- a/src/meson.build
249 ++++ b/src/meson.build
250 +@@ -254,12 +254,6 @@ libnautilus_sources = [
251 + 'nautilus-file-undo-operations.h',
252 + 'nautilus-file-undo-manager.c',
253 + 'nautilus-file-undo-manager.h',
254 +- 'nautilus-batch-rename-dialog.c',
255 +- 'nautilus-batch-rename-dialog.h',
256 +- 'nautilus-batch-rename-utilities.c',
257 +- 'nautilus-batch-rename-utilities.h',
258 +- 'nautilus-search-engine-tracker.c',
259 +- 'nautilus-search-engine-tracker.h'
260 + ]
261 +
262 + nautilus_deps = [glib,
263 +@@ -274,7 +268,6 @@ nautilus_deps = [glib,
264 + nautilus_extension,
265 + x11,
266 + gmodule_no_export,
267 +- tracker_sparql,
268 + gio_unix]
269 +
270 + if get_option ('enable-exif')
271 +@@ -289,6 +282,18 @@ if get_option ('enable-xmp')
272 + nautilus_deps += exempi
273 + endif
274 +
275 ++if get_option ('tracker')
276 ++ libnautilus_sources += [
277 ++ 'nautilus-batch-rename-dialog.c',
278 ++ 'nautilus-batch-rename-dialog.h',
279 ++ 'nautilus-batch-rename-utilities.c',
280 ++ 'nautilus-batch-rename-utilities.h',
281 ++ 'nautilus-search-engine-tracker.c',
282 ++ 'nautilus-search-engine-tracker.h'
283 ++ ]
284 ++ nautilus_deps += tracker_sparql
285 ++endif
286 ++
287 + libnautilus = static_library ('nautilus',
288 + libnautilus_sources,
289 + dependencies: nautilus_deps,
290 +diff --git a/src/nautilus-file-undo-operations.c b/src/nautilus-file-undo-operations.c
291 +index e833d0578..d6e407ca5 100644
292 +--- a/src/nautilus-file-undo-operations.c
293 ++++ b/src/nautilus-file-undo-operations.c
294 +@@ -31,8 +31,10 @@
295 + #include "nautilus-file-operations.h"
296 + #include "nautilus-file.h"
297 + #include "nautilus-file-undo-manager.h"
298 ++#ifdef HAVE_TRACKER
299 + #include "nautilus-batch-rename-dialog.h"
300 + #include "nautilus-batch-rename-utilities.h"
301 ++#endif
302 +
303 +
304 + /* Since we use g_get_current_time for setting "orig_trash_time" in the undo
305 +@@ -1087,6 +1089,7 @@ nautilus_file_undo_info_rename_set_data_post (NautilusFileUndoInfoRename *self,
306 + }
307 +
308 + /* batch rename */
309 ++#ifdef HAVE_TRACKER
310 + G_DEFINE_TYPE (NautilusFileUndoInfoBatchRename, nautilus_file_undo_info_batch_rename, NAUTILUS_TYPE_FILE_UNDO_INFO);
311 +
312 + struct _NautilusFileUndoInfoBatchRenameDetails
313 +@@ -1303,6 +1306,7 @@ nautilus_file_undo_info_batch_rename_set_data_post (NautilusFileUndoInfoBatchRen
314 +
315 + self->priv->new_display_names = g_list_reverse (self->priv->new_display_names);
316 + }
317 ++#endif
318 +
319 + /* trash */
320 + G_DEFINE_TYPE (NautilusFileUndoInfoTrash, nautilus_file_undo_info_trash, NAUTILUS_TYPE_FILE_UNDO_INFO)
321 +diff --git a/src/nautilus-file.c b/src/nautilus-file.c
322 +index 0ac53984b..549e1eb39 100644
323 +--- a/src/nautilus-file.c
324 ++++ b/src/nautilus-file.c
325 +@@ -2407,6 +2407,7 @@ real_batch_rename (GList *files,
326 + }
327 + }
328 +
329 ++#ifdef HAVE_TRACKER
330 + /* Tell the undo manager a batch rename is taking place if at least
331 + * a file has been renamed*/
332 + if (!nautilus_file_undo_manager_is_operating () && op->skipped_files != g_list_length (files))
333 +@@ -2421,6 +2422,7 @@ real_batch_rename (GList *files,
334 +
335 + nautilus_file_undo_manager_set_action (op->undo_info);
336 + }
337 ++#endif
338 +
339 + if (op->skipped_files == g_list_length (files))
340 + {
341 +diff --git a/src/nautilus-files-view.c b/src/nautilus-files-view.c
342 +index 36d791f80..691d5606d 100644
343 +--- a/src/nautilus-files-view.c
344 ++++ b/src/nautilus-files-view.c
345 +@@ -28,8 +28,10 @@
346 + #include "nautilus-files-view.h"
347 +
348 + #include "nautilus-application.h"
349 ++#ifdef HAVE_TRACKER
350 + #include "nautilus-batch-rename-dialog.h"
351 + #include "nautilus-batch-rename-utilities.h"
352 ++#endif
353 + #include "nautilus-error-reporting.h"
354 + #include "nautilus-file-undo-manager.h"
355 + #include "nautilus-floating-bar.h"
356 +@@ -6264,6 +6266,7 @@ real_action_rename (NautilusFilesView *view)
357 + {
358 + invoke_external_bulk_rename_utility (view, selection);
359 + }
360 ++#ifdef HAVE_TRACKER
361 + else
362 + {
363 + GdkCursor *cursor;
364 +@@ -6281,6 +6284,7 @@ real_action_rename (NautilusFilesView *view)
365 +
366 + gtk_widget_show (GTK_WIDGET (dialog));
367 + }
368 ++#endif
369 + }
370 + else
371 + {
372 +diff --git a/src/nautilus-search-engine.c b/src/nautilus-search-engine.c
373 +index 209bd4f80..436cd7471 100644
374 +--- a/src/nautilus-search-engine.c
375 ++++ b/src/nautilus-search-engine.c
376 +@@ -28,11 +28,15 @@
377 + #include "nautilus-search-engine-model.h"
378 + #define DEBUG_FLAG NAUTILUS_DEBUG_SEARCH
379 + #include "nautilus-debug.h"
380 ++#ifdef HAVE_TRACKER
381 + #include "nautilus-search-engine-tracker.h"
382 ++#endif
383 +
384 + typedef struct
385 + {
386 ++#ifdef HAVE_TRACKER
387 + NautilusSearchEngineTracker *tracker;
388 ++#endif
389 + NautilusSearchEngineSimple *simple;
390 + NautilusSearchEngineModel *model;
391 +
392 +@@ -73,7 +77,9 @@ nautilus_search_engine_set_query (NautilusSearchProvider *provider,
393 + engine = NAUTILUS_SEARCH_ENGINE (provider);
394 + priv = nautilus_search_engine_get_instance_private (engine);
395 +
396 ++#ifdef HAVE_TRACKER
397 + nautilus_search_provider_set_query (NAUTILUS_SEARCH_PROVIDER (priv->tracker), query);
398 ++#endif
399 + nautilus_search_provider_set_query (NAUTILUS_SEARCH_PROVIDER (priv->model), query);
400 + nautilus_search_provider_set_query (NAUTILUS_SEARCH_PROVIDER (priv->simple), query);
401 + }
402 +@@ -95,8 +101,10 @@ search_engine_start_real (NautilusSearchEngine *engine)
403 +
404 + g_object_ref (engine);
405 +
406 ++#ifdef HAVE_TRACKER
407 + nautilus_search_provider_start (NAUTILUS_SEARCH_PROVIDER (priv->tracker));
408 + priv->providers_running++;
409 ++#endif
410 +
411 + if (nautilus_search_engine_model_get_model (priv->model))
412 + {
413 +@@ -158,7 +166,9 @@ nautilus_search_engine_stop (NautilusSearchProvider *provider)
414 +
415 + DEBUG ("Search engine stop");
416 +
417 ++#ifdef HAVE_TRACKER
418 + nautilus_search_provider_stop (NAUTILUS_SEARCH_PROVIDER (priv->tracker));
419 ++#endif
420 + nautilus_search_provider_stop (NAUTILUS_SEARCH_PROVIDER (priv->model));
421 + nautilus_search_provider_stop (NAUTILUS_SEARCH_PROVIDER (priv->simple));
422 +
423 +@@ -333,7 +343,9 @@ nautilus_search_engine_finalize (GObject *object)
424 +
425 + g_hash_table_destroy (priv->uris);
426 +
427 ++#ifdef HAVE_TRACKER
428 + g_clear_object (&priv->tracker);
429 ++#endif
430 + g_clear_object (&priv->model);
431 + g_clear_object (&priv->simple);
432 +
433 +@@ -387,8 +399,10 @@ nautilus_search_engine_init (NautilusSearchEngine *engine)
434 + priv = nautilus_search_engine_get_instance_private (engine);
435 + priv->uris = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
436 +
437 ++#ifdef HAVE_TRACKER
438 + priv->tracker = nautilus_search_engine_tracker_new ();
439 + connect_provider_signals (engine, NAUTILUS_SEARCH_PROVIDER (priv->tracker));
440 ++#endif
441 +
442 + priv->model = nautilus_search_engine_model_new ();
443 + connect_provider_signals (engine, NAUTILUS_SEARCH_PROVIDER (priv->model));
444 +--
445 +2.17.0
446 +
447
448 diff --git a/gnome-base/nautilus/nautilus-3.26.4-r2.ebuild b/gnome-base/nautilus/nautilus-3.26.4-r2.ebuild
449 new file mode 100644
450 index 00000000000..aef38545ec0
451 --- /dev/null
452 +++ b/gnome-base/nautilus/nautilus-3.26.4-r2.ebuild
453 @@ -0,0 +1,109 @@
454 +# Copyright 1999-2018 Gentoo Authors
455 +# Distributed under the terms of the GNU General Public License v2
456 +
457 +EAPI=6
458 +
459 +inherit gnome.org gnome2-utils meson readme.gentoo-r1 virtualx xdg
460 +
461 +DESCRIPTION="A file manager for the GNOME desktop"
462 +HOMEPAGE="https://wiki.gnome.org/Apps/Nautilus"
463 +
464 +LICENSE="GPL-3+ LGPL-2.1+"
465 +SLOT="0"
466 +IUSE="exif gnome gtk-doc +introspection packagekit +previewer selinux sendto tracker xmp"
467 +
468 +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux"
469 +
470 +COMMON_DEPEND="
471 + >=dev-libs/glib-2.51.2:2
472 + >=gnome-base/gnome-desktop-3.0.0:3=
473 + >=x11-libs/pango-1.28.3
474 + >=x11-libs/gtk+-3.22.6:3[X,introspection?]
475 + >=dev-libs/libxml2-2.7.8:2
476 + exif? ( >=media-libs/libexif-0.6.20 )
477 + xmp? ( >=media-libs/exempi-2.1.0:2 )
478 + >=gnome-base/gsettings-desktop-schemas-3.8.0
479 + >=app-arch/gnome-autoar-0.2.1
480 + selinux? ( >=sys-libs/libselinux-2.0 )
481 + x11-libs/libX11
482 + tracker? ( >=app-misc/tracker-1:= )
483 + introspection? ( >=dev-libs/gobject-introspection-0.6.4:= )
484 +"
485 +DEPEND="${COMMON_DEPEND}
486 + >=dev-util/gdbus-codegen-2.51.2
487 + dev-util/glib-utils
488 + gtk-doc? ( >=dev-util/gtk-doc-1.10 )
489 + >=sys-devel/gettext-0.19.8
490 + virtual/pkgconfig
491 + x11-base/xorg-proto
492 +"
493 +RDEPEND="${COMMON_DEPEND}
494 + packagekit? ( app-admin/packagekit-base )
495 + sendto? ( !<gnome-extra/nautilus-sendto-3.0.1 )
496 +"
497 +
498 +PDEPEND="
499 + gnome? ( x11-themes/adwaita-icon-theme )
500 + previewer? ( >=gnome-extra/sushi-0.1.9 )
501 + sendto? ( >=gnome-extra/nautilus-sendto-3.0.1 )
502 + >=gnome-base/gvfs-1.14[gtk(+)]
503 +"
504 +# Need gvfs[gtk] for recent:/// support; always built (without USE=gtk) since gvfs-1.34
505 +
506 +PATCHES=(
507 + "${FILESDIR}"/${PV}-file-view-crash-fix.patch
508 + "${FILESDIR}"/${PV}-optional-tracker.patch
509 + "${FILESDIR}"/${PV}-optional-introspection.patch
510 +)
511 +
512 +src_prepare() {
513 + if use previewer; then
514 + DOC_CONTENTS="nautilus uses gnome-extra/sushi to preview media files.
515 + To activate the previewer, select a file and press space; to
516 + close the previewer, press space again."
517 + fi
518 + xdg_src_prepare
519 +}
520 +
521 +src_configure() {
522 + local emesonargs=(
523 + -Denable-profiling=false
524 + $(meson_use introspection)
525 + $(meson_use sendto enable-nst-extension)
526 + $(meson_use exif enable-exif)
527 + $(meson_use tracker)
528 + $(meson_use xmp enable-xmp)
529 + $(meson_use selinux enable-selinux)
530 + -Denable-desktop=true
531 + $(meson_use packagekit enable-packagekit)
532 + $(meson_use gtk-doc enable-gtk-doc)
533 + )
534 + meson_src_configure
535 +}
536 +
537 +src_install() {
538 + use previewer && readme.gentoo_create_doc
539 + meson_src_install
540 +}
541 +
542 +src_test() {
543 + virtx meson_src_test
544 +}
545 +
546 +pkg_postinst() {
547 + xdg_pkg_postinst
548 + gnome2_icon_cache_update
549 + gnome2_schemas_update
550 +
551 + if use previewer; then
552 + readme.gentoo_print_elog
553 + else
554 + elog "To preview media files, emerge nautilus with USE=previewer"
555 + fi
556 +}
557 +
558 +pkg_postrm() {
559 + xdg_pkg_postrm
560 + gnome2_icon_cache_update
561 + gnome2_schemas_update
562 +}