2017-07-06 Carlos Garnacho Release 1.99.0 libtracker-miner: Fix warnings if move ops happened during initial crawling The checks to notify about indexing having finished on TrackerIndexingTree roots were mistaking ItemMovedData* with GFile*, which lead to warnings. This should be harmless, the signal might be possibly emitted before the move op is dispatched, that's all. tracker-miner-fs: Request source item URN as expected When the code to handle SPARQL updates related to move operations moved from libtracker-miner to tracker-miner-fs, we started querying the dest file here, which would return a NULL URN as expected, since it doesn't "exist" yet. miners: Request DBus name after creating miner objects Fixes those not seeming to autostart properly through the "tracker daemon -s" CLI command, because it calls for a method in an object that's not yet created at the time the DBus name is visible. libtracker-miner: Add missing ::move-file signal Fixes handling of moved files, since the subclass vmethod wouldn't be triggered. 2017-07-03 Sam Thursfield meson: Rearrange dependencies until things compile Targets far down the dependency chain were failing due to mysteriously missing symbols. The use of -Wl,--as-needed seemed to be triggering the issue. This only occured with new versions of Meson. Previously circular dependencies would be added recursively but this was removed with . I'm not 100% sure how this fixes things, but I think that removing or at least reshuffling circular dependencies of libtracker-sparql means that libraries are passed to the linker in "correct" order. 2017-07-03 Piotr Drąg Use glib preset for i18n https://bugzilla.gnome.org/show_bug.cgi?id=783750 2017-07-03 Carlos Garnacho configure: Do not generate src/plugins/Makefile Makefile.am is not there anymore. utils: Remove gtk-sparql util It's not even ported to pygi, it could go to examples/ if refurbished, but there's aplenty on internet. utils: Remove clean-tracker-prefix script We've got make/ninja uninstall for that. Delete tracker-needle It was cool when Tracker search was barely integrated anywhere. Nowadays, it's nothing but an aging showcase app (eg. was conceived in the gtk2 days and barely ported to gtk3, and it shows everywhere). If you want a modern and capable search UI, try Nautilus. If you are outraged that tracker-needle is gone and ended up here, by all means be my guest, reset to the parent of this commit and take it out of tree. If you join #tracker I'll gladly give you advise on how could it be brought up-to-date. But our hands are full, sorry, we leave cool UIs to others. Delete tracker-preferences This is a mix of store and miner features which can't be assumed to go together. It is better to leave configuration UI up to the environment, in the GNOME case this is gnome-control-center search panel. For settings that fall in the cracks, or for environments that don't integrate Tracker search in their configuration UI, there's the rather capable dconf-editor which will provide all toggles, and will explain them better than any UI we may have. In the future the CLI tools might gain some configuration subcommand, but it will not be a graphical UI. Delete evolution/thunderbird/nautilus/firefox plugins Those are unmaintained, are broken, don't compile, or a combination of all. Sadly there hasn't been enough manpower during the last years to keep those up to par. Future seems shiny enough for nautilus, as the features are being developed in-tree. If anyone ever remembers there were such plugins and misses them enough to take over maintainership, by all means reset to the parent of this commit and take those out of tree. You will have my gratitude. Thanks too to everyone who ever contributed in those plugins, I'm not happy to let that much work go. libtracker-miner: Remove writeback API The only user that might ever care does already implement it itself. There is no need to provide this infrastructure that will be scarcely used in libtracker-miner API. tracker-miner-fs: Implement writeback atop TrackerMinerFS This implementation just pauses the miner while there's writeback items to process, and uses the filter_event vmethod to perform maintenance of writeback tasks. Functionally, is not that different from the TrackerMinerFS implementation. 2017-07-02 Carlos Garnacho libtracker-miner: Add filter_event vmethod This is not a signal because external users of a TrackerMiner have no business in modifying behavior at this level, this is reserved for subclasses that presumably know what they are doing. This vmethod is toggled for every event that gets received from the TrackerFileNotifier, before the file gets to hit any processing queue. tests: Add missing macros to meson build instructions Those were added on autotools, but were forgotten on meson... 2017-07-01 Carlos Garnacho libtracker-fts: Skip loading the FTS module if sqlite has it builtin It is unneeded, and the missing symbol will be treated as a fatal error. 2017-06-29 Carlos Garnacho libtracker-data: Fix compile errors with --disable-journal libtracker-data: Allow using older sqlite API But warn about it, as it is unsafe. Merge branch 'wip/carlosg/domain-ontologies' libtracker-common: Add a last resort envvar to load default domain ontology This can only be used if the default domain ontology file is not found, and is now used on tests that do rely on the default tracker-store instance. Also, add back the TRACKER_DB_ONTOLOGIES_DIR, under the same restrictions. libtracker-miner: Add connection property to TrackerFileNotifier So it can be specified from the miner. tracker-store: Use wal_checkpoint API from TrackerDBInterface Better than calling the pragma and involving prepared statements libtracker-data: Make Tracker.DBStatement an InitiallyUnowned in vapi It does not matter much since the getter still returns a sunk reference, but better to be consistent with the real implementation. libtracker-control: Skip miners not meant to be loaded. This will make the miners not specified in the domain ontology description file invisible from the API user perspective. tracker-store: Add all known tracker miners to default domain ontology So it still behaves as it used to do. libtracker-common: Add domain ontology key/api to get expected miners This is purely a hint, and people may still run things manually or perform updates against this domain ontology themselves. Will be useful so we don't autostart more miners than necessary through the libtracker-control API. tracker-store: Remove ontology_name argument We do already deal with ontology locations at this point, which we also print. libtracker-data: Fix compilation on DISABLE_JOURNAL Pass the TrackerDataManager down tracker_backup_save(), so we can fetch the DB file underneath. tracker-extract: If there is a domain, set watch on it And exit as soon as the name vanishes. It may safely continue its operations on the next startup. tracker-miner-apps: If there is a domain, set watch on it And exit as soon as the name vanishes. It may safely continue its operations on the next startup. tracker-miner-fs: If there is a domain, set a watch on it And exit as soon as the name vanishes. It may safely continue its operations on the next startup. tracker-miner-rss: If there is a domain, set watch on it And exit as soon as the name vanishes. It may safely continue its operations on the next startup. tracker-store: If a domain is set, set a watch on it Tracker-store will wait till there are no elements left before exiting, in order to ensure it does so cleanly. libtracker-miner: Make TrackerMinerProxy look for the right tracker-store Use the domain name to find out the right tracker-store DBus name. libtracker-data: Ensure we set user data on an existing connection tracker-miner-rss: Look up the right dbus name for GraphUpdated This should be ported to TrackerNotifier, which already does the right thing. libtracker-sparql-backend: Ensure we always load the bus connection first Otherwise the database might not be created yet when creating the direct connection. libtracker-common: Use XDG_DATA_DIRS to find domain ontology definitions libtracker-control: Add domain argument to tracker_miner_manager_new_full I personally prefer using the excuse of the major version bump than adding a tracker_miner_manager_new_fuller() variant, as this is clearly a construct_only thing. Creating a TrackerMinerManager with an specific domain will allow dealing with the miners spawned for it. libtracker-control: Remove obscure environment variables These were supposedly added for testing, but they are not used anywhere, nor it sounds ok to fundamentally change TrackerMinerManager behavior. Let's remove these. miners: Add NameSuffix field to miner .service files This will be used by TrackerMinerManager in order to find out the right dbus names according to the domain ontology. tracker-miner-fs: Drop standalone DBus name for Files.Index Because we're registering 2 interfaces and 2 dbus names, both expose the same 2 interfaces and are introspectable the same way. This makes no sense, just use the org.freedesktop.Tracker1.Miner.Files name for both interfaces. libtracker-miner: Add TrackerMiner::connection property So it is possible to use TrackerMiner facilities in-process using a dedicated TrackerSparqlConnection. Basically store and mining handled by the client app. libtracker-sparql: Make TrackerNotifier check GraphUpdated from the domain It must listen to the signal from the right tracker-store instance. rss: Add --domain-ontology switch This allows tracker-miner-rss to dump data on other domain ontologies than the default one. tracker-extract: Add --domain-ontology switch This allows tracker-extract to dump data on other domain ontologies than the default one. tracker-miner-apps: Add --domain-ontology switch This allows tracker-miner-apps to dump data on other domain ontologies than the default one. tracker-miner-fs: Add --domain-ontology switch This allows running tracker-miner-fs on other domain ontologies moderated by a tracker-store daemon. The switch does: 1) Set up the ontology domain for the default TrackerSparqlConnection 2) Make the miner use a DBus name relative to the domain In result, tracker-miner-fs can take a different DBus name and talk to other tracker-store instances than the default. libtracker-sparql: Use TrackerDomainOntology on tracker_sparql_connection_get() Add a global tracker_sparql_connection_set_domain() call that allows setting domain ontology that the client shall use. This only affects the connection obtained through tracker_sparql_connection_get(), other constructors may have different settings. libtracker-sparql-backend: Set namespace on Log object So we can include libtracker-common vapi without conflicts tracker-store: Use TrackerDomainOntology helper tracker-store: Install default domain ontology This makes Tracker behave as it ever used to. Also add some comments so it serves as a base for other domain ontologies. libtracker-common: Add TrackerDomainOntology helper This just wraps the information that can be extracted from a domain ontology rule file. tracker-store: Make DBus unique name purely dependent on the domain i.e. just remove the ontology name from there. We do add the ".Tracker1" suffix though, just so Tracker gets its own namespace dependent on it, eg: org.gnome.Photos.Tracker1 org.gnome.Photos.Tracker1.Miner.Files org.gnome.Photos.Tracker1.Miner.Extract tracker-store: Remove fine-grained domain ontologies CLI switches Only allow --domain-ontology/-d to specify the rule name. There is too much room for failure making it possible to provide all switches manually (eg. missing ones, or pointing to the wrong location). The ontology rules are installed at /usr/share, so presumably the author(s) know what they are doing. tracker-store: Remove dbus_path domain ontologies setting tracker-store: Register all objects with default DBus paths Let's make the DBus name customizable, but making the DBus paths customizable too seems a bit overkill. It is fine to have multiple services implementing /org/freedesktop/Tracker1/* objects libtracker-miner: Add TrackerMinerProxy object And shift all miner dbus handling from TrackerMiner. This object takes a TrackerMiner and implements the org.freedesktop.Tracker1.Miner interface for it on DBus. One notable difference in handling here is that libtracker-miner does not try to own DBus names anymore, that is left up to the caller. The registered object will be available on whatever dbus name the caller does register. For compatibility, all TrackerMiner implementations around have been made to request their usual name. libtracker-miner: Fix TrackerMiner::progress signal arguments The signal marshaller has an extra argument, that was not available in the class method. libtracker-miner: Merge tracker_miner_fs_check_file[with_priority] Only check_file() remains, with an extra priority argument. The default G_PRIORITY_HIGH in the older check_file() was unintuitive, and is now explicitly specified in the org.freedesktop.Tracker1.Miner.Files.Index interface calls. libtracker-miner: Remove tracker_miner_fs_check_directory*() More unused API that is a thin wrapper to TrackerIndexingTree, just remove it. libtracker-miner: Remove TrackerMinerFS API to add/remove directories The whole set of tracker_miner_fs_add_directory_without_parent(), tracker_miner_fs_directory_add(), directory_remove() and directory_remove_full() are all covered by TrackerIndexingTree and basically unused, except for code in examples/. libtracker-miner: Remove tracker_miner_fs_[sg]et_initial_crawling() It did nothing at the libtracker-miner level, and can be safely removed. tracker-miner-fs: Implement initial crawling fully here It seems this setting was just ignored at on libtracker-miner since the introduction of TrackerFileNotifier. And it does not make a lot of sense either, crawling is done for 2 purposes: checking mtimes and setting up monitors. So we have individual toggles for each of those, but if neither happens we could just not start the miner as well, which is most similar to the tracker-miner-fs behavior when this setting was introduced. libtracker-miner: Remove tracker_miner_fs_set_mtime_checking() This is just used to set the TRACKER_DIRECTORY_FLAG_CHECK_MTIME flag on the TrackerIndexingTree for all files. Given libtracker-miner has this fine grained switch and all use of it happens in src/miners/fs, just move the global toggle there and remove it from libtracker-miner API. The only usage of this flag inside libtracker-miner happened inside tracker_miner_fs_directory_add(), which was superseded by TrackerIndexingTree too and is scheduled for removal. tracker-miner-fs: Adopt TrackerThumbnailer from libtracker-miner It makes no sense to have that at the library level, just move thumbnail handling to TrackerMinerFiles. Coincidentally, this removes further queries that required knowledge about the ontology in TrackerMinerFS. libtracker-miner: Remove tracker_miner_fs_force_recheck() It's unused and unneeded, just set the TRACKER_DIRECTORY_FLAG_CHECK_MTIME flag on the TrackerIndexingTree. libtracker-miner: Remove tracker_miner_fs_force_recheck() It's been a no-op for years. libtracker-miner: Remove tracker_miner_fs_get_parent_urn() It is cached once to be used once. Besides, the parent GFile is obviously guaranteed to be a folder, and folders are (not so obviously) guaranteed to be cached. Thus looking up the URN should be fast enough. libtracker-miner: Add TrackerMinerFS::move-file vmethod We delegate the SPARQL generation to this vmethod, in order to keep TrackerMinerFS as agnostic of the ontology as possible. libtracker-miner: Split ::remove-file into two signals The only_children argument is a bit awkward as we emit ::remove-file on a file that is not removed at all. The TrackerSparqlBuilder argument has been also removed (the signals just have a gchar* return value containing the SPARQL for the delete op) so it's up to the caller to decide how to compose the SPARQL. This allows removing some more knowledge about specific ontologies from TrackerMinerFS, the ontology-dependent upper layers will know better how to delete the corresponding entities. libtracker-miner: Change API of ::process-file[-attributes] There's a few changes here: - The 2 vmethods are now given a GTask, its cancellable is to be used if the handling goes async. - tracker_miner_fs_file_notify() has changed into a more generic tracker_miner_fs_notify_finish() method, that takes such GTask and completes it. - The vmethods are no longer given a TrackerSparqlBuilder, instead they are expected to create the SPARQL through whatever mean is most fit. The sparql is given in the tracker_miner_fs_notify_finish() func. This opens the door to TrackerMinerFS implementations using TrackerResource. The intent is 1) Pass something to these vmethods that the user can't forge or mess with, as matching on GFile relies that it's the same pointer that it was given in the vmethods. And 2) Make the finish() function more generic to be fit to other methods going async. Remove ignore_next_update() API It's been deprecated for a long time, it stands in the middle of detaching TrackerMiner from DBus, and it's one less piece of ontology-dependent libtracker-miner code. Enough reasons to finally remove this. Remove libmediaart code entirely The libmediaart dependency was disabled in commit 6a05068624bfa, it doesn't make sense to drag this code around. docs: Ensure to create the output dir in ttl2sgml docs: Remove duplicated code Move these functions to ttl_model instead of keeping several copies around. docs: Remove "see also" section from ontology class documentation The link is also included (from the description file, not guessed) in the main ontology overview page. That seems sufficient. docs: Do not add copyright by default on the ontology doc tool Even less that one. The doc tool is not in the position to decide the ontology copyright at all. docs: Generate documentation for internal ontology in libtracker-sparql docs: Unify ontology documentation tools Now we have a single tool for the general ontology documentation and the per-class/property one. docs: Remove dead code This is basically unused, we use prefixes from ontology files themselves. docs: Use xi:include to optionally load ontology explanations Less toggles on the doc generation tool, more seamless documentation blending. Sounds like win-win. docs: Add documentation around creating and maintaining ontologies If we now expose that detail to users, it's better to have it documented properly. libtracker-data: Remove static variable Just keep the current journal filename number in the TrackerDBJournal. libtracker-fts: Avoid static variables Just keep a per-interface table of FTS properties in order to calculate weights. libtracker-data: Make TrackerDataManager a non singleton There can now be multiple instances looking into separate database and journal locations. TrackerDataManager has been made an initable too, and busy handling has been lifted to a signal, in order to reduce the arguments at new() a bit. libtracker-data: Remove TrackerDBInterface busy functions We can't report progress from updates anyway, it doesn't make sense to spam the same state over and over. Just call the busy handler directly in the only place it's being used, at the beginning of the integrity check. libtracker-fts: Remove tracker_fts_init/shutdown functions Instead, load the FTS extension in every TrackerDBInterface manually. libtracker-fts: Pass TrackerDBInterface through FTS machinery It will be useful in order to retrieve the data manager, and the TrackerOntologies. libtracker-data: Add API to attach user data to TrackerDBInterfaces This will be used to attach the data manager. libtracker-data: Drop unused function libtracker-data: Make tracker-data-update.c a non singleton In order to avoid messing much with API, just call it TrackerData for consistency, although it's not the best name... The data manager will keep one of these around to perform updates on the database. libtracker-data: Make TrackerDBManager a non-singleton It's turned into a singleton pointer in tracker-data-manager.c atm, but now multiple DB managers pointing to different locations are possible. tracker-miner-fs: Adopt DBManager API to manipulate stamp files Those just matter for indexing purposes, so move all management here. tracker-extract has just been made to equate SCHED_IDLE_FIRST_INDEX to SCHED_ALWAYS. libtracker-data: Use flags for ro/use_mutex in TrackerDBInterface Caller is now responsible of setting the USE_MUTEX flag, instead of having the interface poke the DB manager. libtracker-data: Turn tracker ontologies into an object And make it a singleton in tracker-data-manager.c at the moment. libtracker-common: Make locale readonly There's no reasonable situation why we should change this from a library. Initialization (and shutdown) was also mostly useless as it would just set the same settings that it just retrieved. It's been turned into a sanity check for the relevant places. libtracker-data: Make journal writers non-singletons We keep two separate writers, one for the ontology and another one for regular data. The ontology one is just used during database initialization and is not expected to survive past tracker_data_manager_init(). The second writer will remain in place in order to dump user updates. libtracker-data: Move journal deletion code to tracker-db-journal.c And call it directly from the "tracker reset" subcommand, which seems about the only place where this is needed. In the future, we should just consider cache/journal directory ours, delete those altogether, and avoid these horrible layering breaks. libtracker-data: Use data location directly to tracker_data_backup_*() Instead of figuring it out from the journal filename. libtracker-data: Remove another filename argument in TrackerDBJournal Which also makes it use the right data location for it. libtracker-data: Make journal reader a non singleton We initialize and shutdown it quite selectively, it can be safely made a temporary object which is later freed. libtracker-data: Demote g_message()s to g_info() g_message() is not filtered out by the default glib log handler, and it doesn't make sense that we differ in behavior here. Since this is a library and many new portions are now exposed to clients, just use g_info() for all this logging, which leave stdout clear unless users set G_MESSAGES_DEBUG. libtracker-common: Remove libmediaart log handler libmediaart was split from tracker ages ago. libtracker-sparql: Do not modify messages verbosity This is a library, G_MESSAGES_DEBUG is just not ours. The TRACKER_VERBOSITY envvar still affects all tracker executables, but users will need to manually set G_MESSAGES_DEBUG if they want to catch tracker debugging from an app linking to it. libtracker-bus: Move tracker-store ping call here We just need this if we have a bus-based connection at all. libtracker-fts: Remove TRACKER_FTS_STOP_WORDS envvar If we have to keep one for tests, let it be TRACKER_LANGUAGE_STOP_WORDS_DIR, and point to a dummy location in the fts tests. libtracker-data: Remove TRACKER_PRAGMAS_FILE envvar Now that we are exposing databases to apps, it doesn't make sense to offer an environment variable that can entirely mangle how tracker behaves for these (Nor IMHO made sense back in the days, either). Let's just remove this envvar and pretend it never existed. tracker-store: Move handling of TRACKER_DB_ONTOLOGIES_DIR envvar here It does not make sense at the libtracker-data level, still might make some here. libtracker-data: Remove filename argument from journal init funcs We already pass a GFile with the location, just use the predefined basename for these. libtracker-data: Use filename based on cachedir for ontologies.gvdb Otherwise other database prefixes mess up with the canonical location. libtracker-data: Build all journal file locations from the given GFiles This is necessary to make the journals ubiquitous, as otherwise we mangle the canonical database when opening other ones. ontologies: Move nepomuk files into separate directory libtracker-data: Require location directories in all internals cache/journal/ontology dirs are now mandatory in tracker_data_manager_init(), all the upper layers must know what database and ontology they are using. libtracker-data: Handle backups where journal/cache dirs are the same Otherwise the tmp dir would be already created, causing warnings. libtracker-sparql: Add tracker_sparql_connection_local_new(_async) methods These calls make private sparql databases available to applications. libtracker-direct: Allow creating readwrite databases through direct connection This will allow creating sparql databases that are private to applications. They will be able to get multiple readonly handles, and updates will be handled by a single private thread. Pretty much like tracker-store (and the refactor took heavy inspiration from it), just sans dbus. So far, only the current direct connections (i.e. readonly, pointing to ~/.cache/tracker) have been replaced. libtracker-data: Pass TrackerDBInterface to wal hook So there's at least some context to pull the DBManager from, Otherwise we're down to DBManager singleton lookups, which might not hold true forever. libtracker-data: Use GFile for cache/journal arguments Deal with those from tracker_data_manager_init() on as GFiles, those are still required to be local though. This is more for consistency. tests: Remove duplicate ontologies in libtracker-data tests Now TrackerDataManager can lookup ontologies in a directory, as opposed to tests_schemas which could point to specific files. Luckily the ontology files were repeated over and over for each test, so it was easy enough to compress the ontologies into one per set of tests. 2017-06-28 Carlos Garnacho libtracker-data: Remove test_schemas argument from TrackerDataManager This is superfluous now that we can load ontologies from custom places. libtracker-data: Take a GFile for ontology location in the data manager The other tracker_data_manager_init() arguments taking file paths will follow. This fully exposes the ability to load ontologies from resource:// locations. ontologies: Build dc/xsd/rdf/nrl/nao as GResource Those ontology files are the tracker core, as the database files' structure is modeled around those classes and properties. Include those as a GResource so they're guaranteed to be there, all other ontology files are optional and must be provided on TrackerDataManager initialization. The NAO ontology has been split between the official bits (included in the GResource) and the non-official bits (just used by the evolution miner, and moved to 90-tracker) libtracker-data: Use GFile throughout the TrackerDataManager ontology bits Use a GFileEnumerator and GFile to load the ontology files. This makes it possible to use other than local paths for these. libtracker-data: Make TrackerTurtleReader take GFiles Instead of file paths. This is so we can load ontology files from resource:// uris. All callers have been changed accordingly. 2017-06-28 Philip Van Hoof Domain-ontologies: allow more flexibility on locations. Example: /opt/tracker/share# cat tracker/domain-ontologies/test.rule [DomainOntology] DataLocation=%HOME%/.cache/test/data CacheLocation=%HOME%/.cache/test/cache OntologyLocation=%SHAREDIR%/tracker/ontologies Domain=test DBusPath=/test OntologyName=test Add cache location to db manager and data manager Some unique shortcut names Allow loading domain ontology from .rule file Allow loading domain ontology from .desktop file Allow loading domain ontology from .desktop file tracker-store: Allow running multiple D-Bus services for domain ontologies libtracker-data, tracker-store: domain specific ontologies Whitespace fixes libtracker-data: tracker-store: Initial infrastructure to support domain specific ontologies 2017-06-28 Carlos Garnacho configure: Bump API version autotools: Don't set -Wl,--enable-new-dtags globally Just set it in library LDFLAGS, otherwise introspection may find the installed libraries before the ones being built, which is not the right thing if there are new symbols/types to be looked up. libtracker-miner: Look up for the gir in the right place on g-ir-compile I now wonder how it ever succeeded locally... autotools: Fix srcdir!=builddir issues The gir should be generated in builddir for real. autotools: Build and merge C/Vala girs in libtracker-sparql Following the meson changes, build 2 separate static libs, generate introspection stuff for those, and put them together in src/libtracker-sparql-backend. https://bugzilla.gnome.org/show_bug.cgi?id=782091 libtracker-sparql: Drop needless typedef We don't need defining TrackerSparqlBuilder here, and it causes it to get picked up twice in C and Vala girs. https://bugzilla.gnome.org/show_bug.cgi?id=782091 2017-06-28 Sam Thursfield Fix missing introspection data for libtracker-sparql (when using Meson) Up til now only the Tracker.SparqlConnection and Tracker.SparqlBuilder resources were introspectable. This is because we only used the introspection output from `valac`, but other bits of libtracker-sparql have since been added that are written in C. There seems to be no way to generate a single .gir for a combined C and Vala codebase, so instead I have written a simple `g-ir-merge` script which can combine two different namespaces into a single .gir. This is currently tested and working with the Meson build instructions. It would be possible to implement this for the Autotools build instructions as well. https://bugzilla.gnome.org/show_bug.cgi?id=782091 2017-06-24 Sam Thursfield Fixes to Meson build system First, instead of using add_global_arguments() we now use a variable to set global compiler args. It turns out that add_global_arguments() is broken if you ever want to include your project as a subproject of something else. Second, dependencies weren't being specified correctly. These are hopefully now fixed to avoid any more random build failures. 2017-06-23 Carlos Garnacho libtracker-data: Protect sqlite3_bind*() with interface lock There may be multiple cursors/db_statements from the same db interface being accessed from multiple threads. This must be under the TrackerDBInterface lock in order to prevent threading issues. https://bugzilla.redhat.com/show_bug.cgi?id=1404285 2017-06-18 Jordi Mas Fix to Catalan translation Update Catalan translation 2017-06-08 Sam Thursfield Remove Maemo/Meego leftovers This removes various code paths that we believe to be unused. * The userguides miner has been removed altogether. * The application miner no longer parses MeeGo-style .desktop files * The TRACKER_DISABLE_MEEGOTOUCH_LOCALE environment flag is gone (it already did nothing) * Character set detection with libmeegotouch is removed, only enca or libicu are supported * Meego-specific flags are gone from .desktop files * Functional tests have lost their vestigal Scratchbox and Aegis support There are 5 ontologies referencing Maemo, 4 of which are largely unused. These have been kept around in case anyone is using them outside Tracker. https://bugzilla.gnome.org/show_bug.cgi?id=783555 Remove IDE files that were accidentally committed This was my fault, just over a year ago in commit b6c1b5cb638051155 ... sorry! Remove obsolete references to the --disable-miner commandline flag 2017-06-06 Carlos Garnacho tracker-extract: Fix typo in last commit The decoder is bcmdec, not bmcdec. I managed to mistype it all over the place. 2017-06-04 Carlos Garnacho tracker-extract: Blacklist vaapi/bmcdec gstreamer elements Remove these from the registry after initialization, the vaapi one could just cause undesired output/warnings after seccomp forbid it to do something. The bmcdec element is dumber and would just crash after shmget() despite trying to refuse it politely with an appropriate errno. Fixes SIGSYS on shmget() from gstreamer1-plugin-crystalhd if it happens to be installed and a video file is indexed. The blacklisting code has been lifted from totem-video-thumbnailer. 2017-05-28 Марко Костић Update Serbian translation (cherry picked from commit bdba71e0313b91ca7d5eea275bd1d559527302c8)