2016-12-08 Carlos Garnacho Release 1.11.2 tracker-miner-fs: Watch after tracker-extract process Ensure it's restarted after going away (eg. due to unintended crashes), the extractor will eventually skip over the file and keep going. configure: Make seccomp support mandatory This is something we can do on master, older stable releases will have to stick to optional support. tracker-extract: Sandbox extractor threads through seccomp Those deal with plugins and potentially malicious content, make it sure that any potential exploit is deprived of all tools that could make it harmful. https://bugzilla.gnome.org/show_bug.cgi?id=764786 libtracker-common: Implement sandboxing through libseccomp The threads calling the new tracker_seccomp_init() function, and all threads/processes spawned from these, will enter a restricted mode where only a few sensible syscalls are allowed, and more specifically, filesystem/socket access are restricted to being respectively readonly and local only. https://bugzilla.gnome.org/show_bug.cgi?id=764786 libtracker-extract: Ditch ThreadAwareness module configuration toggle It's basically unused, just use a private thread per-module so they're easier to isolate. https://bugzilla.gnome.org/show_bug.cgi?id=764786 tracker-miner-fs: Remove G_ADD_PRIVATE update leftover We still tried to add the same private struct through the old means on tracker_writeback_listener_class_init(), which would raise a warning. libtracker-sparql: Remove comment It doesn't really apply. The DELETE DATA { pattern } query requires the exact given triples, and won't work on variables. As it's not nice or possible to query the current values just to perform a better looking DELETE DATA {} query, just stick to the DELETE {} WHERE {} one, and don't insinuate that we have a better option. tracker-extract: Fix possible runtime warnings in GStreamer extractor We don't NULL-check the GST_TAG_DATE_TIME tag content. tracker-extract: Initialize variable in EPUB extractor Warning introduced when trying to fix mem leaks. libtracker-miner: Process writeback events one by one The idle function could result in an unrestricted number of writeback events performing queries simultaneously, which may result in more CPU spent than desirable. So serialize the whole thing, split the GVariant into multiple events that get queued and processed one by one, only when one event has been fully processed the next will be processed. This reopens the question of what to do with writeback events at finalize time though. Those now will be freed instead of silently ignored after we break the main loop. 2016-11-28 Carlos Garnacho libtracker-miner: Use G_ADD_PRIVATE in TrackerWritebackListener libtracker-sparql: Add some braces around statement Multiline statements get braces around. tracker-extract: Plug leaks in MP3 extractor The album artist TrackerResource has been somewhat shuffled so it's just declared where needed. tracker-extract: Plug leaks in GStreamer extractor Some generated URIs being leaked. tracker-extract: Plug leak in GIF extractor In case of error the frame data would be leaked. tracker-extract: Plug leaks in EPUB extractor Introduced during the TrackerResource work. libtracker-sparql: Plug TrackerResource leaks The context is reused, so the list must be freed again after the second use. libtracker-sparql: Plug TrackerNotifier leak The GString used to build the query is being leaked. libtracker-miner: Plug leak This is a char**, we must free the array and the strings. libtracker-miner: Plug leak If the cursor returns no items, it would be leaked. libtracker-extract: Plug leak The TrackerResource was being leaked. libtracker-data: Preserve resulting TrackerDBInterface on initialization This interface is currently leaked if the data manager if the TRACKER_DB_MANAGER_READONLY flag is not present. Since we use per-thread interfaces, keep the interface for this running thread. libtracker-data: Keep interface ref during close() The cursor may tear down the last interface instance, which leads to invalid writes when poking its memory during unlock. 2016-11-27 Carlos Garnacho libtracker-data: Add missing unlock call If the sqlite3_stmt fails to be compiled, we would return without releasing the TrackerDBInterface mutex, not good. 2016-11-23 Balázs Meskó Update Hungarian translation 2016-11-21 Sam Thursfield tests: Fix tracker-encoding-test when libicu charset detection is used I'm not sure this test is actually useful for anything, maybe we should just delete it... functional-tests: The test runner exits with correct error codes now tests: Remove some unused code and compile flags tests: Fix invalid call to tracker_getline in libtracker-extract test The test passes when used with glibc's getline(), but the fallback implementation we ship will return EINVAL if the size pointer is not set to zero before the call. The man page suggests that this is valid behaviour for a getline() implementation, so let's fix the test. examples: Update example FS miner to current API The code didn't work at all due to API changes in libtracker-miner.