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-miners/, app-misc/tracker-miners/files/, profiles/, ...
Date: Fri, 15 Feb 2019 12:30:23
Message-Id: 1550233775.21513d07e86f32a113457aee5987625a7c6e1745.leio@gentoo
1 commit: 21513d07e86f32a113457aee5987625a7c6e1745
2 Author: Mart Raudsepp <leio <AT> gentoo <DOT> org>
3 AuthorDate: Fri Feb 15 10:35:17 2019 +0000
4 Commit: Mart Raudsepp <leio <AT> gentoo <DOT> org>
5 CommitDate: Fri Feb 15 12:29:35 2019 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=21513d07
7
8 app-misc/tracker-miners: add upstream split tracker miners package
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-miners/Manifest | 1 +
15 .../tracker-miners/files/2.1.5-meson-fixes.patch | 322 +++++++++++++++++++++
16 app-misc/tracker-miners/files/2.1.5-test-fix.patch | 50 ++++
17 app-misc/tracker-miners/metadata.xml | 17 ++
18 .../tracker-miners/tracker-miners-2.1.5.ebuild | 139 +++++++++
19 profiles/base/package.use.force | 1 +
20 profiles/package.mask | 1 +
21 7 files changed, 531 insertions(+)
22
23 diff --git a/app-misc/tracker-miners/Manifest b/app-misc/tracker-miners/Manifest
24 new file mode 100644
25 index 00000000000..30724f741a2
26 --- /dev/null
27 +++ b/app-misc/tracker-miners/Manifest
28 @@ -0,0 +1 @@
29 +DIST tracker-miners-2.1.5.tar.xz 3455264 BLAKE2B 1e9149ae0767166fc8e936922e4e02d4391f7af3faf59525e32098fb10cb6c5f6970f13bdb35f675efc9f131672b3feb84cbdcd8d0f01c86d05880919fba463a SHA512 37bf6d44635843037613cfe681cd536a8b33ba34c092183d9d66289713deaaff5322d09028b447484e6bf72a01199c041fb295d6431d2f7cff3498ef8983f605
30
31 diff --git a/app-misc/tracker-miners/files/2.1.5-meson-fixes.patch b/app-misc/tracker-miners/files/2.1.5-meson-fixes.patch
32 new file mode 100644
33 index 00000000000..c8a3e6358df
34 --- /dev/null
35 +++ b/app-misc/tracker-miners/files/2.1.5-meson-fixes.patch
36 @@ -0,0 +1,322 @@
37 +From 5bb0709044fabe496601277ab5ba11a03500babe Mon Sep 17 00:00:00 2001
38 +From: Mart Raudsepp <leio@g.o>
39 +Date: Fri, 15 Feb 2019 00:15:08 +0200
40 +Subject: [PATCH 1/5] build: Add feature options for all external deps
41 +
42 +Automagic dependencies are bad for distributions. Add feature options
43 +for all of them that didn't have it before. If no options are specified,
44 +the behavior matches with before, but now it's possible to specify
45 +exactly what is linked to and what isn't.
46 +
47 +Fixes: #39
48 +---
49 + meson.build | 40 +++++++++++++++++++++-------------------
50 + meson_options.txt | 37 +++++++++++++++++++++++++++++++++++++
51 + 2 files changed, 58 insertions(+), 19 deletions(-)
52 +
53 +diff --git a/meson.build b/meson.build
54 +index fd536f2e6..4f0e9a968 100644
55 +--- a/meson.build
56 ++++ b/meson.build
57 +@@ -1,4 +1,6 @@
58 +-project('tracker-miners', 'c', 'vala', version: '2.1.5')
59 ++project('tracker-miners', 'c', 'vala',
60 ++ version: '2.1.5',
61 ++ meson_version: '>=0.47')
62 +
63 + gnome = import('gnome')
64 + i18n = import('i18n')
65 +@@ -57,9 +59,9 @@ avcodec = dependency('libavcodec', version: '>= 0.8.4', required: false)
66 + avformat = dependency('libavformat', version: '>= 0.8.4', required: false)
67 + avutil = dependency('libavutil', version: '>= 0.8.4', required: false)
68 + dbus = dependency('dbus-1', version: '> 1.3.1')
69 +-exempi = dependency('exempi-2.0', version: '> 2.1.0', required: false)
70 +-flac = dependency('flac', version: '> 1.2.1', required: false)
71 +-gexiv2 = dependency('gexiv2', required: false)
72 ++exempi = dependency('exempi-2.0', version: '> 2.1.0', required: get_option('xmp'))
73 ++flac = dependency('flac', version: '> 1.2.1', required: get_option('flac'))
74 ++gexiv2 = dependency('gexiv2', required: get_option('raw'))
75 + gio = dependency('gio-2.0', version: '>' + glib_required)
76 + gio_unix = dependency('gio-unix-2.0', version: '>' + glib_required)
77 + glib = dependency('glib-2.0', version: '>' + glib_required)
78 +@@ -72,25 +74,25 @@ gupnp_dlna = dependency('gupnp-dlna-2.0', version: '> 0.9.4', required: false)
79 + gupnp_dlna_gst = dependency('gupnp-dlna-gst-2.0', version: '> 0.9.4', required: false)
80 + icu_i18n = dependency('icu-i18n', version: '> 4.8.1.1', required: false)
81 + icu_uc = dependency('icu-uc', version: '> 4.8.1.1', required: false)
82 +-libcue = dependency('libcue', required: false)
83 +-libexif = dependency('libexif', version: '> 0.6', required: false)
84 +-libgsf = dependency('libgsf-1', version: '> 1.14.24', required: false)
85 +-libgxps = dependency('libgxps', required: false)
86 +-libiptcdata = dependency('libiptcdata', required: false)
87 +-libjpeg = dependency('libjpeg', required: false)
88 +-libosinfo = dependency('libosinfo-1.0', version: '> 0.2.9', required: false)
89 +-libpng = dependency('libpng', version: '> 0.89', required: false)
90 ++libcue = dependency('libcue', required: get_option('cue'))
91 ++libexif = dependency('libexif', version: '> 0.6', required: get_option('exif'))
92 ++libgsf = dependency('libgsf-1', version: '> 1.14.24', required: get_option('gsf'))
93 ++libgxps = dependency('libgxps', required: get_option('xps'))
94 ++libiptcdata = dependency('libiptcdata', required: get_option('iptc'))
95 ++libjpeg = dependency('libjpeg', required: get_option('jpeg'))
96 ++libosinfo = dependency('libosinfo-1.0', version: '> 0.2.9', required: get_option('iso'))
97 ++libpng = dependency('libpng', version: '> 0.89', required: get_option('png'))
98 + libseccomp = dependency('libseccomp', version: '>= 2.0', required: false)
99 +-libtiff = dependency('libtiff-4', required: false)
100 +-libxml2 = dependency('libxml-2.0', version: '> 2.6')
101 +-libvorbis = dependency('vorbisfile', version: '> 0.22')
102 +-poppler = dependency('poppler-glib', version: '> 0.16.0', required: false)
103 +-taglib = dependency('taglib_c', version: '> 1.6', required: false)
104 +-totem_plparser = dependency('totem-plparser', required: false)
105 ++libtiff = dependency('libtiff-4', required: get_option('tiff'))
106 ++libxml2 = dependency('libxml-2.0', version: '> 2.6', required: get_option('xml'))
107 ++libvorbis = dependency('vorbisfile', version: '> 0.22', required: get_option('vorbis'))
108 ++poppler = dependency('poppler-glib', version: '> 0.16.0', required: get_option('pdf'))
109 ++taglib = dependency('taglib_c', version: '> 1.6', required: get_option('taglib'))
110 ++totem_plparser = dependency('totem-plparser', required: get_option('playlist'))
111 + upower = dependency('upower-glib', version: '> 0.9.0', required: false)
112 + zlib = dependency('zlib')
113 +
114 +-libgif = cc.find_library('gif', required: false)
115 ++libgif = cc.find_library('gif', required: get_option('gif'))
116 + libmath = cc.find_library('m', required: false)
117 +
118 + # FIXME: here we work around a quirk todo with Meson and Vala: the 'uuid'
119 +diff --git a/meson_options.txt b/meson_options.txt
120 +index a91ac6c0f..5fce7a529 100644
121 +--- a/meson_options.txt
122 ++++ b/meson_options.txt
123 +@@ -35,6 +35,43 @@ option('text', type: 'boolean', value: 'true',
124 + option('unzip_ps_gz_files', type: 'boolean', value: 'true',
125 + description: 'Enable extractor for PS.GZ metadata')
126 +
127 ++option('cue', type: 'feature', value: 'auto',
128 ++ description: 'Support cue sheet parsing')
129 ++option('exif', type: 'feature', value: 'auto',
130 ++ description: 'Support EXIF metadata')
131 ++option('flac', type: 'feature', value: 'auto',
132 ++ description: 'Support extracting metadata from Flac audio')
133 ++option('gif', type: 'feature', value: 'auto',
134 ++ description: 'Support extracting metadata from GIF images')
135 ++option('gsf', type: 'feature', value: 'auto',
136 ++ description: 'Support extracting metadata from MS & Open Office documents')
137 ++option('iptc', type: 'feature', value: 'auto',
138 ++ description: 'Support IPTC photo metadata')
139 ++option('iso', type: 'feature', value: 'auto',
140 ++ description: 'Support ISO image parsing')
141 ++option('jpeg', type: 'feature', value: 'auto',
142 ++ description: 'Support extracting metadata from JPEG images')
143 ++option('pdf', type: 'feature', value: 'auto',
144 ++ description: 'Support extracting metadata from PDF documents')
145 ++option('playlist', type: 'feature', value: 'auto',
146 ++ description: 'Support extracting metadata from playlists (w/ Totem)')
147 ++option('png', type: 'feature', value: 'auto',
148 ++ description: 'Support extracting metadata from PNG images')
149 ++option('raw', type: 'feature', value: 'auto',
150 ++ description: 'Support extracting metadata from RAW photos')
151 ++option('taglib', type: 'feature', value: 'auto',
152 ++ description: 'Support writeback for audio files using Taglib')
153 ++option('tiff', type: 'feature', value: 'auto',
154 ++ description: 'Support extracting metadata from TIFF images')
155 ++option('vorbis', type: 'feature', value: 'auto',
156 ++ description: 'Support extracting metadata from Vorbis (ogg/etc) files')
157 ++option('xml', type: 'feature', value: 'auto',
158 ++ description: 'Support extracting metadata from XML and HTML documents')
159 ++option('xmp', type: 'feature', value: 'auto',
160 ++ description: 'Support XMP metadata')
161 ++option('xps', type: 'feature', value: 'auto',
162 ++ description: 'Support extracting metadata from XPS documents')
163 ++
164 + option('battery_detection', type: 'combo', choices: ['auto', 'hal', 'upower', 'none'], value: 'auto',
165 + description: 'Enable upower or HAL for battery/mains power detection')
166 + option('charset_detection', type: 'combo', choices: ['auto', 'enca', 'icu', 'none'], value: 'auto',
167 +--
168 +2.17.0
169 +
170 +
171 +From b8c1768696c13275f5896374907fa192140ec922 Mon Sep 17 00:00:00 2001
172 +From: Mart Raudsepp <leio@g.o>
173 +Date: Fri, 15 Feb 2019 00:18:09 +0200
174 +Subject: [PATCH 2/5] build: Fix minimum dep checks to allow the specified
175 + version too
176 +
177 +Many of the minimum deps were expressed as "> x.y", but were meant to
178 +allow x.y itself as well. Change all to ">= x.y". This seems to be
179 +what was intended and was the case with autotools.
180 +---
181 + meson.build | 44 ++++++++++++++++++++++----------------------
182 + 1 file changed, 22 insertions(+), 22 deletions(-)
183 +
184 +diff --git a/meson.build b/meson.build
185 +index 4f0e9a968..4263faf95 100644
186 +--- a/meson.build
187 ++++ b/meson.build
188 +@@ -58,38 +58,38 @@ endif
189 + avcodec = dependency('libavcodec', version: '>= 0.8.4', required: false)
190 + avformat = dependency('libavformat', version: '>= 0.8.4', required: false)
191 + avutil = dependency('libavutil', version: '>= 0.8.4', required: false)
192 +-dbus = dependency('dbus-1', version: '> 1.3.1')
193 +-exempi = dependency('exempi-2.0', version: '> 2.1.0', required: get_option('xmp'))
194 +-flac = dependency('flac', version: '> 1.2.1', required: get_option('flac'))
195 ++dbus = dependency('dbus-1', version: '>= 1.3.1')
196 ++exempi = dependency('exempi-2.0', version: '>= 2.1.0', required: get_option('xmp'))
197 ++flac = dependency('flac', version: '>= 1.2.1', required: get_option('flac'))
198 + gexiv2 = dependency('gexiv2', required: get_option('raw'))
199 +-gio = dependency('gio-2.0', version: '>' + glib_required)
200 +-gio_unix = dependency('gio-unix-2.0', version: '>' + glib_required)
201 +-glib = dependency('glib-2.0', version: '>' + glib_required)
202 +-gmodule = dependency('gmodule-2.0', version: '>' + glib_required)
203 +-gobject = dependency('gobject-2.0', version: '>' + glib_required)
204 ++gio = dependency('gio-2.0', version: '>=' + glib_required)
205 ++gio_unix = dependency('gio-unix-2.0', version: '>=' + glib_required)
206 ++glib = dependency('glib-2.0', version: '>=' + glib_required)
207 ++gmodule = dependency('gmodule-2.0', version: '>=' + glib_required)
208 ++gobject = dependency('gobject-2.0', version: '>=' + glib_required)
209 + gstreamer = dependency('gstreamer-1.0', required: false)
210 + gstreamer_pbutils = dependency('gstreamer-pbutils-1.0', required: false)
211 + gstreamer_tag = dependency('gstreamer-tag-1.0', required: false)
212 +-gupnp_dlna = dependency('gupnp-dlna-2.0', version: '> 0.9.4', required: false)
213 +-gupnp_dlna_gst = dependency('gupnp-dlna-gst-2.0', version: '> 0.9.4', required: false)
214 +-icu_i18n = dependency('icu-i18n', version: '> 4.8.1.1', required: false)
215 +-icu_uc = dependency('icu-uc', version: '> 4.8.1.1', required: false)
216 ++gupnp_dlna = dependency('gupnp-dlna-2.0', version: '>= 0.9.4', required: false)
217 ++gupnp_dlna_gst = dependency('gupnp-dlna-gst-2.0', version: '>= 0.9.4', required: false)
218 ++icu_i18n = dependency('icu-i18n', version: '>= 4.8.1.1', required: false)
219 ++icu_uc = dependency('icu-uc', version: '>= 4.8.1.1', required: false)
220 + libcue = dependency('libcue', required: get_option('cue'))
221 +-libexif = dependency('libexif', version: '> 0.6', required: get_option('exif'))
222 +-libgsf = dependency('libgsf-1', version: '> 1.14.24', required: get_option('gsf'))
223 ++libexif = dependency('libexif', version: '>= 0.6', required: get_option('exif'))
224 ++libgsf = dependency('libgsf-1', version: '>= 1.14.24', required: get_option('gsf'))
225 + libgxps = dependency('libgxps', required: get_option('xps'))
226 + libiptcdata = dependency('libiptcdata', required: get_option('iptc'))
227 + libjpeg = dependency('libjpeg', required: get_option('jpeg'))
228 +-libosinfo = dependency('libosinfo-1.0', version: '> 0.2.9', required: get_option('iso'))
229 +-libpng = dependency('libpng', version: '> 0.89', required: get_option('png'))
230 ++libosinfo = dependency('libosinfo-1.0', version: '>= 0.2.9', required: get_option('iso'))
231 ++libpng = dependency('libpng', version: '>= 0.89', required: get_option('png'))
232 + libseccomp = dependency('libseccomp', version: '>= 2.0', required: false)
233 + libtiff = dependency('libtiff-4', required: get_option('tiff'))
234 +-libxml2 = dependency('libxml-2.0', version: '> 2.6', required: get_option('xml'))
235 +-libvorbis = dependency('vorbisfile', version: '> 0.22', required: get_option('vorbis'))
236 +-poppler = dependency('poppler-glib', version: '> 0.16.0', required: get_option('pdf'))
237 +-taglib = dependency('taglib_c', version: '> 1.6', required: get_option('taglib'))
238 ++libxml2 = dependency('libxml-2.0', version: '>= 2.6', required: get_option('xml'))
239 ++libvorbis = dependency('vorbisfile', version: '>= 0.22', required: get_option('vorbis'))
240 ++poppler = dependency('poppler-glib', version: '>= 0.16.0', required: get_option('pdf'))
241 ++taglib = dependency('taglib_c', version: '>= 1.6', required: get_option('taglib'))
242 + totem_plparser = dependency('totem-plparser', required: get_option('playlist'))
243 +-upower = dependency('upower-glib', version: '> 0.9.0', required: false)
244 ++upower = dependency('upower-glib', version: '>= 0.9.0', required: false)
245 + zlib = dependency('zlib')
246 +
247 + libgif = cc.find_library('gif', required: get_option('gif'))
248 +@@ -143,7 +143,7 @@ elif get_option('battery_detection') == 'upower'
249 + endif
250 +
251 + if battery_detection_library_name == ''
252 +- hal = dependency('hal', version: '> 0.5', required: false)
253 ++ hal = dependency('hal', version: '>= 0.5', required: false)
254 +
255 + if hal.found()
256 + battery_detection_library = hal
257 +--
258 +2.17.0
259 +
260 +
261 +From 6a215b9088abb9df4a837c1b74f281454f286ddf Mon Sep 17 00:00:00 2001
262 +From: Mart Raudsepp <leio@g.o>
263 +Date: Fri, 15 Feb 2019 01:11:23 +0200
264 +Subject: [PATCH 3/5] build: Remove unnecessary vala language dependency
265 +
266 +tracker-miners doesn't use any vala, but due to vala declared as
267 +a used language it does error out if valac isn't found. Remove the
268 +language and unused vapi helper variable.
269 +---
270 + meson.build | 3 +--
271 + 1 file changed, 1 insertion(+), 2 deletions(-)
272 +
273 +diff --git a/meson.build b/meson.build
274 +index 4263faf95..bfd2d624b 100644
275 +--- a/meson.build
276 ++++ b/meson.build
277 +@@ -1,4 +1,4 @@
278 +-project('tracker-miners', 'c', 'vala',
279 ++project('tracker-miners', 'c',
280 + version: '2.1.5',
281 + meson_version: '>=0.47')
282 +
283 +@@ -385,7 +385,6 @@ tracker_writeback_modules_dir = join_paths(get_option('prefix'), get_option('lib
284 + tracker_uninstalled_extract_rules_dir = join_paths(meson.current_build_dir(), 'src', 'tracker-extract')
285 +
286 + gsettings_schema_dir = join_paths(get_option('prefix'), get_option('datadir'), 'glib-2.0', 'schemas')
287 +-vapi_dir = join_paths(get_option('prefix'), get_option('datadir'), 'vala', 'vapi')
288 +
289 + glib_mkenums = find_program('glib-mkenums')
290 +
291 +--
292 +2.17.0
293 +
294 +
295 +From a163936b590184291c6ac6b8365eb5f7e9bf3474 Mon Sep 17 00:00:00 2001
296 +From: Mart Raudsepp <leio@g.o>
297 +Date: Fri, 15 Feb 2019 01:12:25 +0200
298 +Subject: [PATCH 4/5] build: Remove unnecessary uuid util-linux hard dependency
299 +
300 +tracker core might use uuid, but nothing in tracker-miners needs it
301 +---
302 + meson.build | 8 --------
303 + 1 file changed, 8 deletions(-)
304 +
305 +diff --git a/meson.build b/meson.build
306 +index bfd2d624b..8d23a1157 100644
307 +--- a/meson.build
308 ++++ b/meson.build
309 +@@ -95,14 +95,6 @@ zlib = dependency('zlib')
310 + libgif = cc.find_library('gif', required: get_option('gif'))
311 + libmath = cc.find_library('m', required: false)
312 +
313 +-# FIXME: here we work around a quirk todo with Meson and Vala: the 'uuid'
314 +-# pkg-config component corresponds to 'libuuid.vapi', but Meson assumes that
315 +-# .vapi name always matches pkg-config name, and will add `--pkg uuid` to the
316 +-# Vala commandline. By finding 'uuid' using find_library() instead, we get
317 +-# a dependency object back that won't cause any `--pkg` arguments to be added
318 +-# to the Vala commandline, but still works as expected for C code.
319 +-uuid = cc.find_library('uuid')
320 +-
321 + have_tracker_extract = get_option('extract')
322 + have_tracker_miner_apps = get_option('miner_apps')
323 + have_tracker_miner_fs = get_option('miner_fs')
324 +--
325 +2.17.0
326 +
327 +
328 +From cc87c22592868e700333f31f333bf850c89f0135 Mon Sep 17 00:00:00 2001
329 +From: Sam Thursfield <sam@×××××××××.uk>
330 +Date: Sun, 7 Oct 2018 23:42:28 +0200
331 +Subject: [PATCH 5/5] build: Fix breakage when libcue isn't found
332 +
333 +Commit 6e281037a5f0abc introduced a regression on systems where libcue
334 +is not available.
335 +
336 +Fixes https://gitlab.gnome.org/GNOME/tracker-miners/issues/33
337 +
338 +(cherry picked from commit fd0eb3cd98f279591cbe8635eadf42027dd5ddae)
339 +---
340 + meson.build | 2 +-
341 + 1 file changed, 1 insertion(+), 1 deletion(-)
342 +
343 +diff --git a/meson.build b/meson.build
344 +index 8d23a1157..d69588435 100644
345 +--- a/meson.build
346 ++++ b/meson.build
347 +@@ -303,7 +303,7 @@ conf.set('GSTREAMER_BACKEND_DISCOVERER', gstreamer_backend_name == 'Discoverer')
348 + conf.set('GSTREAMER_BACKEND_GUPNP_DLNA', gstreamer_backend_name == 'GUPnP-DLNA')
349 + conf.set('HAVE_HAL', battery_detection_library_name == 'hal')
350 + conf.set('HAVE_LIBCUE', libcue.found())
351 +-conf.set('HAVE_LIBCUE2', libcue.version() >= '2.0.0')
352 ++conf.set('HAVE_LIBCUE2', libcue.found() and libcue.version().version_compare('>= 2.0.0'))
353 + conf.set('HAVE_LIBICU_CHARSET_DETECTION', charset_library_name == 'icu')
354 + conf.set('HAVE_LIBEXIF', libexif.found())
355 + conf.set('HAVE_LIBIPTCDATA', libiptcdata.found())
356 +--
357 +2.17.0
358 +
359
360 diff --git a/app-misc/tracker-miners/files/2.1.5-test-fix.patch b/app-misc/tracker-miners/files/2.1.5-test-fix.patch
361 new file mode 100644
362 index 00000000000..be979e6af05
363 --- /dev/null
364 +++ b/app-misc/tracker-miners/files/2.1.5-test-fix.patch
365 @@ -0,0 +1,50 @@
366 +From 02a54749117d609d75bad80331024661c2e598ce Mon Sep 17 00:00:00 2001
367 +From: Mart Raudsepp <leio@g.o>
368 +Date: Fri, 15 Feb 2019 12:20:39 +0200
369 +Subject: [PATCH] libtracker-miners-common: improve path_evaluate_name
370 + environment handling
371 +
372 +Under some environments $PWD might not point where we expect, so simply
373 +use g_get_current_dir() instead.
374 +g_getenv() is documented to return a pointer that may get overwritten
375 +by subsequent calls to g_getenv, g_setenv of g_unsetenv. As even after
376 +removing the second g_getenv, there's still g_setenv calls, take a copy.
377 +---
378 + .../libtracker-miners-common/tracker-file-utils-test.c | 10 ++++++----
379 + 1 file changed, 6 insertions(+), 4 deletions(-)
380 +
381 +diff --git a/tests/libtracker-miners-common/tracker-file-utils-test.c b/tests/libtracker-miners-common/tracker-file-utils-test.c
382 +index 93b94472c..3f86a0cdc 100644
383 +--- a/tests/libtracker-miners-common/tracker-file-utils-test.c
384 ++++ b/tests/libtracker-miners-common/tracker-file-utils-test.c
385 +@@ -134,14 +134,14 @@ test_path_list_filter_duplicates_with_exceptions ()
386 + static void
387 + test_path_evaluate_name (void)
388 + {
389 +- gchar *result, *expected;
390 +-
391 +- const gchar *home = g_getenv ("HOME");
392 +- const gchar *pwd = g_getenv ("PWD");
393 ++ gchar *result, *expected, *home, *pwd;
394 +
395 + const gchar *test = "/one/two";
396 + gchar *parent_dir;
397 +
398 ++ home = g_strdup (g_getenv ("HOME"));
399 ++ pwd = g_get_current_dir ();
400 ++
401 + g_setenv ("TEST_TRACKER_DIR", test, TRUE);
402 +
403 +
404 +@@ -219,6 +219,8 @@ test_path_evaluate_name (void)
405 + result = tracker_path_evaluate_name (tracker_test_helpers_get_nonutf8 ());
406 + g_assert_cmpstr (result, ==, tracker_test_helpers_get_nonutf8 ());
407 +
408 ++ g_free (home);
409 ++ g_free (pwd);
410 + g_unsetenv ("TEST_TRACKER_DIR");
411 + }
412 +
413 +--
414 +2.17.0
415 +
416
417 diff --git a/app-misc/tracker-miners/metadata.xml b/app-misc/tracker-miners/metadata.xml
418 new file mode 100644
419 index 00000000000..82957eafdf0
420 --- /dev/null
421 +++ b/app-misc/tracker-miners/metadata.xml
422 @@ -0,0 +1,17 @@
423 +<?xml version="1.0" encoding="UTF-8"?>
424 +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
425 +<pkgmetadata>
426 + <maintainer type="project">
427 + <email>gnome@g.o</email>
428 + <name>Gentoo GNOME Desktop</name>
429 + </maintainer>
430 + <use>
431 + <flag name="cue">Enable cue sheet parsing</flag>
432 + <flag name="gsf">Enable <pkg>gnome-extra/libgsf</pkg> based data extractor and
433 + for ODT.</flag>
434 + <flag name="iptc">Enable extraction of IPTC data from pictures</flag>
435 + <flag name="iso">Enable extraction of metadata from ISO disk images</flag>
436 + <flag name="playlist">Add support for playlists</flag>
437 + <flag name="xps">Add support for XPS file format through <pkg>app-text/libgxps</pkg>.</flag>
438 + </use>
439 +</pkgmetadata>
440
441 diff --git a/app-misc/tracker-miners/tracker-miners-2.1.5.ebuild b/app-misc/tracker-miners/tracker-miners-2.1.5.ebuild
442 new file mode 100644
443 index 00000000000..3759fc10e2a
444 --- /dev/null
445 +++ b/app-misc/tracker-miners/tracker-miners-2.1.5.ebuild
446 @@ -0,0 +1,139 @@
447 +# Copyright 1999-2019 Gentoo Authors
448 +# Distributed under the terms of the GNU General Public License v2
449 +
450 +EAPI=6
451 +PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6,3_7} )
452 +
453 +inherit gnome.org gnome2-utils meson python-any-r1 systemd xdg
454 +
455 +DESCRIPTION="A tagging metadata database, search tool and indexer"
456 +HOMEPAGE="https://wiki.gnome.org/Projects/Tracker"
457 +
458 +LICENSE="GPL-2+ LGPL-2.1+"
459 +SLOT="0"
460 +IUSE="cue exif ffmpeg flac gif gsf +gstreamer iptc +iso +jpeg libav +pdf +playlist raw +rss seccomp test +taglib +tiff upower +vorbis +xml xmp xps"
461 +
462 +REQUIRED_USE="cue? ( gstreamer )" # cue is currently only supported via gstreamer, not ffmpeg/libav
463 +
464 +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sparc ~x86"
465 +
466 +# tracker-2.1.7 currently always depends on ICU (theoretically could be libunistring instead); so choose ICU over enca always here for the time being (ICU is preferred)
467 +RDEPEND="
468 + >=dev-libs/glib-2.46:2
469 + >=app-misc/tracker-2.1.0:=
470 + gstreamer? (
471 + media-libs/gstreamer:1.0
472 + media-libs/gst-plugins-base:1.0 )
473 + !gstreamer? (
474 + ffmpeg? (
475 + libav? ( media-video/libav:0= )
476 + !libav? ( media-video/ffmpeg:0= ) ) )
477 +
478 + >=sys-apps/dbus-1.3.1
479 + xmp? ( >=media-libs/exempi-2.1.0:= )
480 + flac? ( >=media-libs/flac-1.2.1 )
481 + raw? ( media-libs/gexiv2 )
482 + >=dev-libs/icu-4.8.1.2:=
483 + cue? ( media-libs/libcue )
484 + exif? ( >=media-libs/libexif-0.6 )
485 + gsf? ( >=gnome-extra/libgsf-1.14.24:= )
486 + xps? ( app-text/libgxps )
487 + iptc? ( media-libs/libiptcdata )
488 + jpeg? ( virtual/jpeg:0 )
489 + iso? ( >=sys-libs/libosinfo-0.2.10 )
490 + >=media-libs/libpng-1.2:0=
491 + seccomp? ( >=sys-libs/libseccomp-2.0 )
492 + tiff? ( media-libs/tiff:0 )
493 + xml? ( >=dev-libs/libxml2-2.6 )
494 + vorbis? ( >=media-libs/libvorbis-0.22 )
495 + pdf? ( >=app-text/poppler-0.16.0[cairo] )
496 + taglib? ( >=media-libs/taglib-1.6 )
497 + playlist? ( >=dev-libs/totem-pl-parser-3:= )
498 + upower? ( >=sys-power/upower-0.9.0 )
499 + sys-libs/zlib:0
500 + gif? ( media-libs/giflib:= )
501 +
502 + rss? ( >=net-libs/libgrss-0.7:0 )
503 + app-arch/gzip
504 +"
505 +DEPEND="${RDEPEND}
506 + dev-util/glib-utils
507 +
508 + >=dev-util/intltool-0.40.0
509 + >=sys-devel/gettext-0.19.8
510 + virtual/pkgconfig
511 + test? ( ${PYTHON_DEPS} )
512 +"
513 +# intltool-merge manually called in meson.build in 2.1.5; might be properly gone by 2.2.0 (MR !29)
514 +
515 +PATCHES=(
516 + "${FILESDIR}"/${PV}-meson-fixes.patch # https://gitlab.gnome.org/GNOME/tracker-miners/merge_requests/49
517 + "${FILESDIR}"/${PV}-test-fix.patch # https://gitlab.gnome.org/GNOME/tracker-miners/merge_requests/50
518 +)
519 +
520 +pkg_setup() {
521 + use test && python-any-r1_pkg_setup
522 +}
523 +
524 +src_prepare() {
525 + xdg_src_prepare
526 + gnome2_environment_reset # sets gstreamer safety variables
527 +}
528 +
529 +src_configure() {
530 + local media_extractor="none"
531 + if use gstreamer ; then
532 + media_extractor="gstreamer"
533 + elif use ffmpeg ; then
534 + media_extractor="libav"
535 + fi
536 +
537 + local emesonargs=(
538 + -Dtracker_core=system
539 +
540 + -Ddocs=true
541 + -Dextract=true
542 + $(meson_use test functional_tests)
543 + -Dminer_apps=true
544 + -Dminer_fs=true
545 + $(meson_use rss miner_rss)
546 + -Dwriteback=true
547 + -Dabiword=true
548 + -Ddvi=true
549 + -Dicon=true
550 + -Dmp3=true
551 + -Dps=true
552 + -Dtext=true
553 + -Dunzip_ps_gz_files=true # spawns gunzip
554 +
555 + -Dcue=$(usex cue enabled disabled)
556 + -Dexif=$(usex exif enabled disabled)
557 + -Dflac=$(usex flac enabled disabled)
558 + -Dgif=$(usex gif enabled disabled)
559 + -Dgsf=$(usex gsf enabled disabled)
560 + -Diptc=$(usex iptc enabled disabled)
561 + -Diso=$(usex iso enabled disabled)
562 + -Djpeg=$(usex jpeg enabled disabled)
563 + -Dpdf=$(usex pdf enabled disabled)
564 + -Dplaylist=$(usex playlist enabled disabled)
565 + -Dpng=enabled
566 + -Draw=$(usex raw enabled disabled)
567 + -Dtaglib=$(usex taglib enabled disabled)
568 + -Dtiff=$(usex tiff enabled disabled)
569 + -Dvorbis=$(usex vorbis enabled disabled)
570 + -Dxml=$(usex xml enabled disabled)
571 + -Dxmp=$(usex xmp enabled disabled)
572 + -Dxps=$(usex xps enabled disabled)
573 +
574 + -Dbattery_detection=$(usex upower upower none)
575 + -Dcharset_detection=icu # enca is a possibility, but right now we have tracker core always dep on icu and icu is preferred over enca
576 + -Dgeneric_media_extractor=${media_extractor}
577 + # gupnp gstreamer_backend is in bad state, upstream suggests to use discoverer, which is the default
578 + -Dsystemd_user_services="$(systemd_get_userunitdir)"
579 + )
580 + meson_src_configure
581 +}
582 +
583 +src_test() {
584 + dbus-run-session meson test -C "${BUILD_DIR}" || die 'tests failed'
585 +}
586
587 diff --git a/profiles/base/package.use.force b/profiles/base/package.use.force
588 index de377b60ee9..ba93feb56ae 100644
589 --- a/profiles/base/package.use.force
590 +++ b/profiles/base/package.use.force
591 @@ -4,6 +4,7 @@
592 # Mart Raudsepp <leio@g.o> (14 Dec 2018)
593 # Security is not optional if available for the architecture/kernel.
594 gnome-base/gnome-desktop seccomp
595 +app-misc/tracker-miners seccomp
596
597 # Andreas K. Hüttel <dilfridge@g.o> (11 Sep 2018)
598 # All glibc versions that include RPC code are masked now.
599
600 diff --git a/profiles/package.mask b/profiles/package.mask
601 index 9423222fff4..89483f2cf6e 100644
602 --- a/profiles/package.mask
603 +++ b/profiles/package.mask
604 @@ -42,6 +42,7 @@
605 # Mart Raudsepp <leio@g.o> (13 Feb 2019)
606 # Ongoing preparations for clean tracker-2 bumps
607 >=app-misc/tracker-2.1.7
608 +>=app-misc/tracker-miners-2.1.5
609
610 # Michał Górny <mgorny@g.o> (13 Feb 2019)
611 # Release candidate, masked for testing.