Gentoo Archives: gentoo-commits

From: Mart Raudsepp <leio@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: app-misc/tracker/, profiles/, app-misc/tracker/files/
Date: Wed, 13 Feb 2019 22:56:29
Message-Id: 1550098397.0cb92221c6927133ae1bde831ea27d6617d2a7eb.leio@gentoo
1 commit: 0cb92221c6927133ae1bde831ea27d6617d2a7eb
2 Author: Mart Raudsepp <leio <AT> gentoo <DOT> org>
3 AuthorDate: Wed Feb 13 16:21:58 2019 +0000
4 Commit: Mart Raudsepp <leio <AT> gentoo <DOT> org>
5 CommitDate: Wed Feb 13 22:53:17 2019 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0cb92221
7
8 app-misc/tracker: bump to 2.1.7
9
10 Bug: https://bugs.gentoo.org/672308
11 Package-Manager: Portage-2.3.52, Repoman-2.3.12
12 Signed-off-by: Mart Raudsepp <leio <AT> gentoo.org>
13
14 app-misc/tracker/Manifest | 1 +
15 app-misc/tracker/files/2.1.7-doc-options.patch | 66 ++++++++
16 .../tracker/files/2.1.7-fix-library-symlinks.patch | 71 +++++++++
17 .../tracker/files/2.1.7-glib-2.60-compat.patch | 169 +++++++++++++++++++++
18 .../files/2.1.7-prevent-stack-smashing.patch | 39 +++++
19 app-misc/tracker/files/2.1.7-test-fix.patch | 49 ++++++
20 app-misc/tracker/tracker-2.1.7.ebuild | 94 ++++++++++++
21 profiles/package.mask | 4 +
22 8 files changed, 493 insertions(+)
23
24 diff --git a/app-misc/tracker/Manifest b/app-misc/tracker/Manifest
25 index c19d1c5b7f5..228b9799606 100644
26 --- a/app-misc/tracker/Manifest
27 +++ b/app-misc/tracker/Manifest
28 @@ -1 +1,2 @@
29 DIST tracker-1.12.4.tar.xz 5051884 BLAKE2B 99cc85fc4d49691eb0a73e4f1776d9971b5cbe5844478825e473137b4d7b13e2578065be497da57285abc2d3cf4c6d1ed1b077a01cd68dc093e18ddd7674c1f1 SHA512 e81af22733c7d80535c79e23a4b3edbbcf888eede1dff071d466518054e90d4c207af76bcb4d8c73dc20729ae2eab60444ca91ee7ae09e96c0da2fdab97752c1
30 +DIST tracker-2.1.7.tar.xz 2572740 BLAKE2B 0db8379502a37d0fc0c4b905a55a8642011c76368a94609b71afa5b6d59fa8a9220c302588a8217ea8626faccedd6b62e8fc96b19d4fb2cbaf1b550fbc55cf0d SHA512 75203af91ec43641caf2a3870100b8c5affb613e442e5a271edafe68ac7c6551256f288e435ce4fc8cb6f9ee0ea54871ebba90e085d0baeba4914815d3be15a0
31
32 diff --git a/app-misc/tracker/files/2.1.7-doc-options.patch b/app-misc/tracker/files/2.1.7-doc-options.patch
33 new file mode 100644
34 index 00000000000..9b25349f659
35 --- /dev/null
36 +++ b/app-misc/tracker/files/2.1.7-doc-options.patch
37 @@ -0,0 +1,66 @@
38 +From cff7f988fd2ed7894c3d16144e799d994637d3cf Mon Sep 17 00:00:00 2001
39 +From: Mart Raudsepp <leio@g.o>
40 +Date: Wed, 13 Feb 2019 12:28:53 +0200
41 +Subject: [PATCH 1/5] build: Separate options for manpages install and gtk-doc
42 + generation
43 +---
44 + docs/meson.build | 10 +++++++---
45 + meson.build | 6 +-----
46 + meson_options.txt | 6 ++++--
47 + 3 files changed, 12 insertions(+), 10 deletions(-)
48 +
49 +diff --git a/docs/meson.build b/docs/meson.build
50 +index 76e59797e..5e1d541bd 100644
51 +--- a/docs/meson.build
52 ++++ b/docs/meson.build
53 +@@ -1,3 +1,7 @@
54 +-subdir('tools')
55 +-subdir('manpages')
56 +-subdir('reference')
57 ++if get_option('man')
58 ++ subdir('manpages')
59 ++endif
60 ++if get_option('gtk-doc')
61 ++ subdir('tools')
62 ++ subdir('reference')
63 ++endif
64 +diff --git a/meson.build b/meson.build
65 +index 7d61fe1a7..0fda24151 100644
66 +--- a/meson.build
67 ++++ b/meson.build
68 +@@ -320,11 +320,7 @@ typelib_dir = gobject_introspection.get_pkgconfig_variable('typelibdir',
69 + define_variable: [ 'libdir', libdir ])
70 +
71 + subdir('src')
72 +-
73 +-if get_option('docs')
74 +- subdir('docs')
75 +-endif
76 +-
77 ++subdir('docs')
78 + subdir('examples')
79 + subdir('utils')
80 +
81 +diff --git a/meson_options.txt b/meson_options.txt
82 +index b36ba1d1e..0eb48aac4 100644
83 +--- a/meson_options.txt
84 ++++ b/meson_options.txt
85 +@@ -1,11 +1,13 @@
86 +-option('docs', type: 'boolean', value: true,
87 +- description: 'Enable the documentation')
88 + option('fts', type: 'boolean', value: true,
89 + description: 'Enable the Tracker full-text search feature')
90 + option('functional_tests', type: 'boolean', value: true,
91 + description: 'Enable the Tracker functional test suite')
92 ++option('gtk-doc', type: 'boolean', value: true,
93 ++ description: 'Generate API documentation with gtk-doc')
94 + option('journal', type: 'boolean', value: true,
95 + description: 'Enable database journal backup mechanism')
96 ++option('man', type: 'boolean', value: true,
97 ++ description: 'Install man pages')
98 +
99 + option('network_manager', type: 'combo', choices: ['auto', 'no', 'yes'], value: 'auto',
100 + description: 'Enable connection detection through NetworkManager')
101 +--
102 +2.17.0
103 +
104
105 diff --git a/app-misc/tracker/files/2.1.7-fix-library-symlinks.patch b/app-misc/tracker/files/2.1.7-fix-library-symlinks.patch
106 new file mode 100644
107 index 00000000000..85ddb6baa22
108 --- /dev/null
109 +++ b/app-misc/tracker/files/2.1.7-fix-library-symlinks.patch
110 @@ -0,0 +1,71 @@
111 +From d52a7bed9fdeef77bdcafd66c748adce14fde42d Mon Sep 17 00:00:00 2001
112 +From: "Jan Alexander Steffens (heftig)" <jan.steffens@×××××.com>
113 +Date: Tue, 6 Nov 2018 07:11:37 +0000
114 +Subject: [PATCH 5/5] build: Restore right soversion to libraries
115 +
116 +The previous change did not leave the expected .0 symlinks.
117 +
118 +'soversion' is the actual version linked against. To match the scheme
119 +used by libtool, we need to give the libraries a 'version' as well.
120 +
121 +(cherry picked from commit 282cd5aa85852cc7f9e603dae435f6b528c4712a)
122 +---
123 + meson.build | 3 ++-
124 + src/libtracker-control/meson.build | 1 +
125 + src/libtracker-miner/meson.build | 1 +
126 + src/libtracker-sparql-backend/meson.build | 1 +
127 + 4 files changed, 5 insertions(+), 1 deletion(-)
128 +
129 +diff --git a/meson.build b/meson.build
130 +index 0fda24151..593b9db44 100644
131 +--- a/meson.build
132 ++++ b/meson.build
133 +@@ -15,7 +15,8 @@ tracker_interface_age = 0
134 + tracker_binary_age = 100 * tracker_minor_version + tracker_micro_version - tracker_interface_age
135 +
136 + # This the .Z used in libtracker-sparql-2.0.so.Z
137 +-soversion = '0.@0@.@1@'.format(tracker_binary_age - tracker_interface_age, tracker_interface_age)
138 ++soversion = '0'
139 ++libversion = '@0@.@1@.@2@'.format(soversion, tracker_binary_age - tracker_interface_age, tracker_interface_age)
140 +
141 + libdir = join_paths(get_option('prefix'), get_option('libdir'))
142 + datadir = join_paths(get_option('prefix'), get_option('datadir'))
143 +diff --git a/src/libtracker-control/meson.build b/src/libtracker-control/meson.build
144 +index 81578e306..533ac538e 100644
145 +--- a/src/libtracker-control/meson.build
146 ++++ b/src/libtracker-control/meson.build
147 +@@ -10,6 +10,7 @@ libtracker_control = library('tracker-control-' + tracker_api_version,
148 + tracker_common_enum_header,
149 + c_args: tracker_c_args,
150 + soversion: soversion,
151 ++ version: libversion,
152 + install: true,
153 + install_rpath: tracker_internal_libs_dir,
154 + # This doesn't depend on tracker_common_dep because of
155 +diff --git a/src/libtracker-miner/meson.build b/src/libtracker-miner/meson.build
156 +index e53b21cf9..49c879057 100644
157 +--- a/src/libtracker-miner/meson.build
158 ++++ b/src/libtracker-miner/meson.build
159 +@@ -60,6 +60,7 @@ libtracker_miner = library(
160 + miner_enums[0], miner_enums[1], miner_sources,
161 + c_args: tracker_c_args,
162 + soversion: soversion,
163 ++ version: libversion,
164 + install: true,
165 + install_rpath: tracker_internal_libs_dir,
166 + # This doesn't depend on tracker_common_dep because of
167 +diff --git a/src/libtracker-sparql-backend/meson.build b/src/libtracker-sparql-backend/meson.build
168 +index c8415efb8..e54333bec 100644
169 +--- a/src/libtracker-sparql-backend/meson.build
170 ++++ b/src/libtracker-sparql-backend/meson.build
171 +@@ -8,6 +8,7 @@ libtracker_sparql = library('tracker-sparql-' + tracker_api_version,
172 + 'tracker-backend.vala',
173 +
174 + soversion: soversion,
175 ++ version: libversion,
176 +
177 + install: true,
178 + install_rpath: tracker_internal_libs_dir,
179 +--
180 +2.17.0
181 +
182
183 diff --git a/app-misc/tracker/files/2.1.7-glib-2.60-compat.patch b/app-misc/tracker/files/2.1.7-glib-2.60-compat.patch
184 new file mode 100644
185 index 00000000000..93737f79857
186 --- /dev/null
187 +++ b/app-misc/tracker/files/2.1.7-glib-2.60-compat.patch
188 @@ -0,0 +1,169 @@
189 +From 43b10233d4cce38230c357d885662291d2e5e978 Mon Sep 17 00:00:00 2001
190 +From: Iain Lane <iainl@×××××.org>
191 +Date: Mon, 11 Feb 2019 15:42:14 +0000
192 +Subject: [PATCH 4/5] libtracker-data: Don't rely on hash table iteration order
193 + being stable
194 +
195 +This is the same problem that was fixed by
196 +c58f7aa419e2c3a69fa7fe583a1fd5e0b9bd0839 on master. Instead of relying
197 +on hash table iteration being stable, pass the GVariantBuilder down and
198 +add directly to it in the right order.
199 +
200 +Forwarded: https://gitlab.gnome.org/GNOME/tracker/merge_requests/55
201 +---
202 + .../tracker-sparql-pattern.vala | 4 +--
203 + src/libtracker-data/tracker-sparql-query.vala | 31 ++++++++++++-------
204 + 2 files changed, 21 insertions(+), 14 deletions(-)
205 +
206 +diff --git a/src/libtracker-data/tracker-sparql-pattern.vala b/src/libtracker-data/tracker-sparql-pattern.vala
207 +index e03ed6f16..033b138a5 100644
208 +--- a/src/libtracker-data/tracker-sparql-pattern.vala
209 ++++ b/src/libtracker-data/tracker-sparql-pattern.vala
210 +@@ -542,7 +542,7 @@ class Tracker.Sparql.Pattern : Object {
211 + } else if (accept (SparqlTokenType.BLANK_NODE)) {
212 + // _:foo
213 + expect (SparqlTokenType.COLON);
214 +- result = query.generate_bnodeid (get_last_string ().substring (1));
215 ++ result = query.generate_bnodeid (get_last_string ().substring (1), null);
216 + } else if (current () == SparqlTokenType.STRING_LITERAL1) {
217 + result = expression.parse_string_literal ();
218 + } else if (current () == SparqlTokenType.STRING_LITERAL2) {
219 +@@ -569,7 +569,7 @@ class Tracker.Sparql.Pattern : Object {
220 + } else if (current () == SparqlTokenType.OPEN_BRACKET) {
221 + next ();
222 +
223 +- result = query.generate_bnodeid (null);
224 ++ result = query.generate_bnodeid (null, null);
225 +
226 + string old_subject = current_subject;
227 + bool old_subject_is_var = current_subject_is_var;
228 +diff --git a/src/libtracker-data/tracker-sparql-query.vala b/src/libtracker-data/tracker-sparql-query.vala
229 +index 7944e78e5..69a7e9eba 100644
230 +--- a/src/libtracker-data/tracker-sparql-query.vala
231 ++++ b/src/libtracker-data/tracker-sparql-query.vala
232 +@@ -284,7 +284,7 @@ public class Tracker.Sparql.Query : Object {
233 + sha1, sha1.substring (8), sha1.substring (12), sha1.substring (16), sha1.substring (20));
234 + }
235 +
236 +- internal string generate_bnodeid (string? user_bnodeid) {
237 ++ internal string generate_bnodeid (string? user_bnodeid, GLib.VariantBuilder? builder) {
238 + // user_bnodeid is NULL for anonymous nodes
239 + if (user_bnodeid == null) {
240 + return ":%d".printf (++bnodeid);
241 +@@ -310,6 +310,9 @@ public class Tracker.Sparql.Query : Object {
242 + }
243 +
244 + blank_nodes.insert (user_bnodeid, uri);
245 ++
246 ++ if (builder != null)
247 ++ builder.add ("{ss}", user_bnodeid, uri);
248 + }
249 +
250 + return uri;
251 +@@ -774,7 +777,7 @@ public class Tracker.Sparql.Query : Object {
252 + for (int i = 0; i < n_solutions; i++) {
253 + solution.solution_index = i;
254 + set_location (delete_location);
255 +- parse_construct_triples_block (solution, UpdateType.DELETE);
256 ++ parse_construct_triples_block (solution, UpdateType.DELETE, null);
257 + data_update.update_buffer_might_flush ();
258 + }
259 +
260 +@@ -790,16 +793,20 @@ public class Tracker.Sparql.Query : Object {
261 + for (int i = 0; i < n_solutions; i++) {
262 + uuid_generate (base_uuid);
263 + blank_nodes = new HashTable<string,string>.full (str_hash, str_equal, g_free, g_free);
264 ++ if (update_blank_nodes != null)
265 ++ update_blank_nodes.open (new GLib.VariantType("a{ss}"));
266 ++
267 + solution.solution_index = i;
268 +
269 + set_location (insert_location);
270 + parse_construct_triples_block (solution,
271 + insert_is_update ?
272 + UpdateType.UPDATE :
273 +- UpdateType.INSERT);
274 ++ UpdateType.INSERT,
275 ++ update_blank_nodes);
276 +
277 + if (blank && update_blank_nodes != null) {
278 +- update_blank_nodes.add_value (blank_nodes);
279 ++ update_blank_nodes.close ();
280 + }
281 +
282 + data_update.update_buffer_might_flush ();
283 +@@ -870,7 +877,7 @@ public class Tracker.Sparql.Query : Object {
284 + }
285 + }
286 +
287 +- private void parse_construct_triples_block (Solution var_value_map, UpdateType type) throws Sparql.Error, DateError {
288 ++ private void parse_construct_triples_block (Solution var_value_map, UpdateType type, GLib.VariantBuilder? builder) throws Sparql.Error, DateError {
289 + expect (SparqlTokenType.OPEN_BRACE);
290 +
291 + while (current () != SparqlTokenType.CLOSE_BRACE) {
292 +@@ -878,7 +885,7 @@ public class Tracker.Sparql.Query : Object {
293 +
294 + if (accept (SparqlTokenType.GRAPH)) {
295 + var old_graph = current_graph;
296 +- current_graph = parse_construct_var_or_term (var_value_map, type, out is_null);
297 ++ current_graph = parse_construct_var_or_term (var_value_map, type, out is_null, builder);
298 +
299 + if (is_null) {
300 + throw get_error ("'null' not supported for graph");
301 +@@ -887,7 +894,7 @@ public class Tracker.Sparql.Query : Object {
302 + expect (SparqlTokenType.OPEN_BRACE);
303 +
304 + while (current () != SparqlTokenType.CLOSE_BRACE) {
305 +- current_subject = parse_construct_var_or_term (var_value_map, type, out is_null);
306 ++ current_subject = parse_construct_var_or_term (var_value_map, type, out is_null, builder);
307 +
308 + if (is_null) {
309 + throw get_error ("'null' not supported for subject");
310 +@@ -906,7 +913,7 @@ public class Tracker.Sparql.Query : Object {
311 +
312 + optional (SparqlTokenType.DOT);
313 + } else {
314 +- current_subject = parse_construct_var_or_term (var_value_map, type, out is_null);
315 ++ current_subject = parse_construct_var_or_term (var_value_map, type, out is_null, builder);
316 +
317 + if (is_null) {
318 + throw get_error ("'null' not supported for subject");
319 +@@ -925,7 +932,7 @@ public class Tracker.Sparql.Query : Object {
320 +
321 + bool anon_blank_node_open = false;
322 +
323 +- private string? parse_construct_var_or_term (Solution var_value_map, UpdateType type, out bool is_null) throws Sparql.Error, DateError {
324 ++ private string? parse_construct_var_or_term (Solution var_value_map, UpdateType type, out bool is_null, GLib.VariantBuilder? builder) throws Sparql.Error, DateError {
325 + string result = "";
326 + is_null = false;
327 + if (current () == SparqlTokenType.VAR) {
328 +@@ -947,7 +954,7 @@ public class Tracker.Sparql.Query : Object {
329 + } else if (accept (SparqlTokenType.BLANK_NODE)) {
330 + // _:foo
331 + expect (SparqlTokenType.COLON);
332 +- result = generate_bnodeid (get_last_string ().substring (1));
333 ++ result = generate_bnodeid (get_last_string ().substring (1), builder);
334 + } else if (current () == SparqlTokenType.MINUS) {
335 + next ();
336 + if (current () == SparqlTokenType.INTEGER ||
337 +@@ -994,7 +1001,7 @@ public class Tracker.Sparql.Query : Object {
338 + anon_blank_node_open = true;
339 + next ();
340 +
341 +- result = generate_bnodeid (null);
342 ++ result = generate_bnodeid (null, builder);
343 +
344 + string old_subject = current_subject;
345 + bool old_subject_is_var = current_subject_is_var;
346 +@@ -1061,7 +1068,7 @@ public class Tracker.Sparql.Query : Object {
347 +
348 + private void parse_construct_object (Solution var_value_map, UpdateType type) throws Sparql.Error, DateError {
349 + bool is_null = false;
350 +- string object = parse_construct_var_or_term (var_value_map, type, out is_null);
351 ++ string object = parse_construct_var_or_term (var_value_map, type, out is_null, null);
352 + var data = manager.get_data ();
353 + if (current_subject == null || current_predicate == null || object == null) {
354 + // the SPARQL specification says that triples containing unbound variables
355 +--
356 +2.17.0
357 +
358
359 diff --git a/app-misc/tracker/files/2.1.7-prevent-stack-smashing.patch b/app-misc/tracker/files/2.1.7-prevent-stack-smashing.patch
360 new file mode 100644
361 index 00000000000..1f25f115d41
362 --- /dev/null
363 +++ b/app-misc/tracker/files/2.1.7-prevent-stack-smashing.patch
364 @@ -0,0 +1,39 @@
365 +From 4238b0a27a3621f4181d38821a4eaee9f0ac1244 Mon Sep 17 00:00:00 2001
366 +From: Andrea Azzarone <andrea.azzarone@×××××××××.com>
367 +Date: Fri, 18 Jan 2019 16:14:57 +0000
368 +Subject: [PATCH 3/5] tracker-monitor: Prevent stack smashing
369 +
370 +Make sure to use GPOINTER_TO_UINT when using g_hash_table_lookup_extended() to
371 +prevent stack smashing. This will make sure that in the architectures where
372 +sizeof(GFileMonitorEvent) < sizeof(gpointer), g_hash_table_lookup_extended()
373 +will not write more bytes than prev_event_type can hold.
374 +
375 +Bug-Upstream: https://gitlab.gnome.org/GNOME/tracker/issues/71
376 +Origin: upstream, commit:63c0a5d4413e53cb76089fda6f56b2d623c5de15
377 +Applied-Upstream: 2.2.0
378 +---
379 + src/libtracker-miner/tracker-monitor.c | 6 ++++--
380 + 1 file changed, 4 insertions(+), 2 deletions(-)
381 +
382 +diff --git a/src/libtracker-miner/tracker-monitor.c b/src/libtracker-miner/tracker-monitor.c
383 +index 54cd3e8fb..f2431b646 100644
384 +--- a/src/libtracker-miner/tracker-monitor.c
385 ++++ b/src/libtracker-miner/tracker-monitor.c
386 +@@ -611,10 +611,12 @@ flush_cached_event (TrackerMonitor *monitor,
387 + GFile *file,
388 + gboolean is_directory)
389 + {
390 +- GFileMonitorEvent prev_event_type;
391 ++ gpointer value = NULL;
392 +
393 + if (g_hash_table_lookup_extended (monitor->priv->cached_events,
394 +- file, NULL, (gpointer*) &prev_event_type)) {
395 ++ file, NULL, &value)) {
396 ++ GFileMonitorEvent prev_event_type = GPOINTER_TO_UINT (value);
397 ++
398 + g_hash_table_remove (monitor->priv->cached_events, file);
399 + emit_signal_for_event (monitor, prev_event_type,
400 + is_directory, file, NULL);
401 +--
402 +2.17.0
403 +
404
405 diff --git a/app-misc/tracker/files/2.1.7-test-fix.patch b/app-misc/tracker/files/2.1.7-test-fix.patch
406 new file mode 100644
407 index 00000000000..b3dedaa9e6e
408 --- /dev/null
409 +++ b/app-misc/tracker/files/2.1.7-test-fix.patch
410 @@ -0,0 +1,49 @@
411 +From 77059dd4b98f422c1e474b9ee53cc05dde875cce Mon Sep 17 00:00:00 2001
412 +From: Mart Raudsepp <leio@g.o>
413 +Date: Wed, 13 Feb 2019 20:09:45 +0200
414 +Subject: [PATCH 2/5] libtracker-common: improve test_path_evaluate_name
415 + environment handling
416 +
417 +Under some environments $PWD might not point where we expect, so simply
418 +use g_get_current_dir() instead.
419 +g_getenv() is documented to return a pointer that may get overwritten
420 +by subsequent calls to g_getenv, g_setenv of g_unsetenv. As even after
421 +removing the second g_getenv, there's still g_setenv calls, take a copy.
422 +---
423 + tests/libtracker-common/tracker-file-utils-test.c | 8 +++++---
424 + 1 file changed, 5 insertions(+), 3 deletions(-)
425 +
426 +diff --git a/tests/libtracker-common/tracker-file-utils-test.c b/tests/libtracker-common/tracker-file-utils-test.c
427 +index d1ddf3004..71a82a5c8 100644
428 +--- a/tests/libtracker-common/tracker-file-utils-test.c
429 ++++ b/tests/libtracker-common/tracker-file-utils-test.c
430 +@@ -131,14 +131,14 @@ test_path_list_filter_duplicates_with_exceptions ()
431 + static void
432 + test_path_evaluate_name (void)
433 + {
434 +- gchar *result, *expected;
435 ++ gchar *result, *expected, *pwd, *home;
436 +
437 +- const gchar *home = g_getenv ("HOME");
438 +- const gchar *pwd = g_getenv ("PWD");
439 +
440 + const gchar *test = "/one/two";
441 + gchar *parent_dir;
442 +
443 ++ home = g_strdup (g_getenv ("HOME"));
444 ++ pwd = g_get_current_dir ();
445 + g_setenv ("TEST_TRACKER_DIR", test, TRUE);
446 +
447 +
448 +@@ -216,6 +216,8 @@ test_path_evaluate_name (void)
449 + result = tracker_path_evaluate_name (tracker_test_helpers_get_nonutf8 ());
450 + g_assert_cmpstr (result, ==, tracker_test_helpers_get_nonutf8 ());
451 +
452 ++ g_free (home);
453 ++ g_free (pwd);
454 + g_unsetenv ("TEST_TRACKER_DIR");
455 + }
456 +
457 +--
458 +2.17.0
459 +
460
461 diff --git a/app-misc/tracker/tracker-2.1.7.ebuild b/app-misc/tracker/tracker-2.1.7.ebuild
462 new file mode 100644
463 index 00000000000..d3a2a269ab4
464 --- /dev/null
465 +++ b/app-misc/tracker/tracker-2.1.7.ebuild
466 @@ -0,0 +1,94 @@
467 +# Copyright 1999-2019 Gentoo Authors
468 +# Distributed under the terms of the GNU General Public License v2
469 +
470 +EAPI=6
471 +PYTHON_COMPAT=( python3_{4,5,6,7} )
472 +
473 +inherit bash-completion-r1 gnome.org linux-info meson python-any-r1 systemd vala xdg
474 +
475 +DESCRIPTION="A tagging metadata database, search tool and indexer"
476 +HOMEPAGE="https://wiki.gnome.org/Projects/Tracker"
477 +
478 +LICENSE="GPL-2+ LGPL-2.1+"
479 +SLOT="0/2.0"
480 +IUSE="gtk-doc networkmanager stemmer"
481 +
482 +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sparc ~x86"
483 +
484 +# In 2.2.0 util-linux should only be necessary if glib is older than 2.52 at compile-time
485 +RDEPEND="
486 + >=dev-libs/glib-2.46:2
487 + >=sys-apps/dbus-1.3.2
488 + >=dev-libs/gobject-introspection-1.54:=
489 + >=dev-libs/icu-4.8.1.2:=
490 + >=dev-libs/json-glib-1.0
491 + >=net-libs/libsoup-2.40.1:2.4
492 + >=dev-libs/libxml2-2.7
493 + >=dev-db/sqlite-3.20.0
494 + networkmanager? ( >=net-misc/networkmanager-0.8 )
495 + stemmer? ( dev-libs/snowball-stemmer )
496 + sys-apps/util-linux
497 +"
498 +DEPEND="${RDEPEND}
499 + dev-util/glib-utils
500 + >=dev-util/intltool-0.40.0
501 + $(vala_depend)
502 + gtk-doc? ( >=dev-util/gtk-doc-1.8
503 + app-text/docbook-xml-dtd:4.1.2 )
504 + >=sys-devel/gettext-0.19.8
505 + virtual/pkgconfig
506 + ${PYTHON_DEPS}
507 +" # g-ir-merge needs py3; functional tests need py2, so disabled for now due to mixup
508 +# intltool-merge manually called in meson.build in 2.1.7; properly gone by 2.2.0
509 +
510 +PATCHES=(
511 + "${FILESDIR}"/${PV}-doc-options.patch # https://gitlab.gnome.org/GNOME/tracker/merge_requests/58
512 + "${FILESDIR}"/${PV}-test-fix.patch # https://gitlab.gnome.org/GNOME/tracker/merge_requests/59
513 + "${FILESDIR}"/${PV}-prevent-stack-smashing.patch
514 + "${FILESDIR}"/${PV}-glib-2.60-compat.patch
515 + "${FILESDIR}"/${PV}-fix-library-symlinks.patch
516 +)
517 +
518 +function inotify_enabled() {
519 + if linux_config_exists; then
520 + if ! linux_chkconfig_present INOTIFY_USER; then
521 + ewarn "You should enable the INOTIFY support in your kernel."
522 + ewarn "Check the 'Inotify support for userland' under the 'File systems'"
523 + ewarn "option. It is marked as CONFIG_INOTIFY_USER in the config"
524 + die 'missing CONFIG_INOTIFY'
525 + fi
526 + else
527 + einfo "Could not check for INOTIFY support in your kernel."
528 + fi
529 +}
530 +
531 +pkg_setup() {
532 + linux-info_pkg_setup
533 + inotify_enabled
534 +
535 + python-any-r1_pkg_setup
536 +}
537 +
538 +src_prepare() {
539 + xdg_src_prepare
540 + vala_src_prepare
541 +}
542 +
543 +src_configure() {
544 + local emesonargs=(
545 + -Dfts=true
546 + -Dfunctional_tests=false # python2, but g-ir-merge needs py3; https://gitlab.gnome.org/GNOME/tracker/merge_requests/40
547 + $(meson_use gtk-doc)
548 + -Dman=true
549 + -Dnetwork_manager=$(usex networkmanager yes no)
550 + -Dstemmer=$(usex stemmer yes no)
551 + -Dunicode_support=icu
552 + -Dbash_completion="$(get_bashcompdir)"
553 + -Dsystemd_user_services="$(systemd_get_userunitdir)"
554 + )
555 + meson_src_configure
556 +}
557 +
558 +src_test() {
559 + dbus-run-session meson test -C "${BUILD_DIR}" || die 'tests failed'
560 +}
561
562 diff --git a/profiles/package.mask b/profiles/package.mask
563 index 5fbf2892e08..5829d0da898 100644
564 --- a/profiles/package.mask
565 +++ b/profiles/package.mask
566 @@ -29,6 +29,10 @@
567
568 #--- END OF EXAMPLES ---
569
570 +# Mart Raudsepp <leio@g.o> (13 Feb 2019)
571 +# Ongoing preparations for clean tracker-2 bumps
572 +>=app-misc/tracker-2.1.7
573 +
574 # Michał Górny <mgorny@g.o> (13 Feb 2019)
575 # Release candidate, masked for testing.
576 =sys-devel/llvm-common-8.0.0_rc*