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* |