2010-06-24 Martyn Russell Release 0.9.10 Small update to NEWS Updated NEWS 2010-06-24 Adrien Bustany Flicr miner: fix vala package dependency This commit changes the name of the librest package from rest to rest-0.6, as this changed in recent vala versions. 2010-06-24 Aleksander Morgado tracker-miner-fs: if no mount point change needed, initialize stale removal tracker-miner-fs: minor refactor Fixes GB#621070: Re-enable volume cleanup * By default, all resources from volumes (removable or optical) which were NOT mounted in the last 3 days will be removed from the store when doing the stale volume check. * Stale volume check is done when tracker-miner-fs starts, and then scheduled to be done once a day. tracker-miner-fs: remove old volume cleanup libtracker-data: Support disabling FTS libtracker-db: Support disabling FTS libtracker-db: only link to libtracker-fts when FTS enabled libtracker-common: if FTS disabled, don't compile language support FTS: if disabled, don't compile libtracker-fts or libstemmer tracker-search: When FTS disabled, don't use fts:match and don't check for stopwords tracker-store: Don't explicitly link to libstemmer FTS tests: only run if FTS enabled tracker-db-journal tests: don't need libtracker-fts FTS: New --enable-tracker-fts configure option 2010-06-24 Carlos Garnacho Bug 620828 - returns no e-mail results Make tracker-search-tool search e-mails as well, the information provided is a bit basic at the moment. 2010-06-24 Aleksander Morgado libtracker-client: pass proper callback user data libtracker-client: remove trailing whitespaces 2010-06-24 Jürg Billeter libtracker-data: Add test for triple block following simple optional SPARQL: Fix generated SQL for triple block following simple optional 2010-06-24 Vincent Untz Fixes GB#621987, Correctly handle applications in results Improves Application category support in tracker-search-tool 2010-06-24 Tshepang Lekhonkhobe fixes GB#620354 make TST history persistent 2010-06-24 Martyn Russell Fixes GB#620362, mp3 extraction crashes if year string is NULL before using atoi() with libenca enabled This was first reported to Red Hat's Bugzilla (#596764) 2010-06-23 Carlos Garnacho Fix typo. Wrong user_data was being passed, making things crash in the async response. 2010-06-23 Aleksander Morgado libtracker-miner: minor style changes Fixes NB#175723: Avoid duplicates if several monitor events arrive together and store is slow * If a given file is being currently processed (in the processing_pool), a new event on the same file must not be launched. Instead, the event is put back to the original queue and QUEUE_WAIT returned. 2010-06-23 Martyn Russell Merge branch 'dbus-fd-experiment' 2010-06-23 Carlos Garnacho TrackerMinerFiles: Force recheck on IgnoredFiles changes. This was working before commit 063355f410 because recheck was issued inconditionally. TrackerMinerFS: Plug a leak. 2010-06-23 Jürg Billeter Update .gitignore tracker-store: Fix verbosity and contents of debug message tracker-store: Fix update stream leak This also drops unnecessary double buffering. 2010-06-23 Carlos Garnacho Indentation fixes. doh! Bug 619868 - don't recheck all monitored directories needlessly All string (not dir) lists in the config would call tracker_keyfile_object_load_string_list() with NULL return_instead, so g_object_set()/g_object_notify() were inconditionally called. Check for list equality before notifying the property change. 2010-06-23 Jürg Billeter tracker-steroids: Fix memory leaks in tests libtracker-client: Restore API compatibility for updates In libtracker-client the callbacks are responsible for freeing the results. This is unusual, however, we have to keep it that way to not break API compatibility. libtracker-client: Fix DBusPendingCall leak when canceling call tracker-store: Fix update query leak 2010-06-23 Carlos Garnacho Bug 620486 - Ignored files can still be found after changing tracker-miner-fs.cfg Put items in deleted queue if they're in the store and check-[file|directory] returns FALSE. Bug 621547 - inconsistent messages on hard-reset Now all file removal messages have the same format. 2010-06-23 Martyn Russell libtracker-client: Fixed warning for for tracker_result_iterator_next() Was using g_return_if_fail() with no return value where one is expected libtracker-client: Fixed test case failures Fixed a number of issues doing this: - Created a _new() and _free() function for FastAsyncData to clearly see what gets allocated and freed and do it consistently. There were areas which were not being freed correctly in error conditions. - Don't use g_assert(), we shouldn't be doing this in a library. - Don't free returned memory in test case, keeps consistency with dbus-glib-1 APIs - Grouped code in functions more logically (like setting all iterator members together) 2010-06-22 Martyn Russell libtracker-client/tracker-store: Use same endian'ness Fixes a crash only seen in some cases libtracker-client: Don't check for NULL before calling g_free() 2010-06-22 Jürg Billeter libtracker-client: Drop tracker_result_iterator_has_next Merged into tracker_result_iterator_next to simplify API. 2010-06-22 Martyn Russell tracker-store: Fixed call to tracker_db_cursor_get_string() which has changed libtracker-client: Re-organise fast_async_callback_iterator() - Set up iterator members all together - Handle memory clean up in one place at the end of the func - Rename this function for consistency with other callback funcs libtracker-client: Minor documentation fixes libtracker-client: Added FIXMEs for areas that need improving - Some places don't make sense so I added FIXMEs there to ask Adrien when he is next available - Cleaned up duplicate statement - Call g_slice_new() directly on struct member instead of assigning to an otherwise unused parameter tracker-store: Improved logging for incorrect d-bus message signatures Include the *expected* signature tracker-store: Improve logging for query/update with steroids - Don't create ClientInfo memory until we have all the details to do so and are sure there are no errors with the incoming d-bus message. - Log all failure conditions in query/update tracker-store: Fixed warning about TrackerSteroidsPrivate Removed unused private and finalize code tracker-store: Make sure ALL requests increment the request_id Don't filter erroneous requests, it is important to log and know about broken incoming requests so they can be fixed tracker-store: Cleaned up steroids tracker-store: Use DBUS_ERROR_UNKNOWN_METHOD not our own version - We redefined this as another symbol - We shouldn't be using DBUS_ namespace for any of our symbols 2010-06-22 Adrien Bustany libtracker-client: Unspaghetize tracker_cancel_call Fix compilation in tracker.c Steroids client: Do not leak in fast_async_callback_iterator 2010-06-22 Martyn Russell libtracker-client: Fixed more whitespace issues caused by my broken emacs config libtracker-client: Fixed some memory leaks and DBUS service definitions libtracker-client: Code cleanup - phase 2 - Added g_return_*() for main APIs - Removed duplicate g_return*() in both #ifdef cases - Fixed whitespace issues - Merged _compat functions into main functions for clarity libtracker-client: Reworked PendingData to split it properly between fast/slow 2010-06-22 Adrien Bustany Add steroids constants in libtracker-client Add tests for async steroids functions Steroids client: remove the query field from FastAsyncData this field could be replaced by a parameter to sparql_query_fast_update, improving readability. 2010-06-22 Martyn Russell Steroids-client: Code cleanup, phase 1 - examples/ and libtracker-client/ 2010-06-22 Adrien Bustany Steroids client: keep a ref on client while in async Steroids client: Do not unref dbus call twice when cancelling Steroids client: Use gboolean instead char for bools This commit changes the "fast" member of PendingCallData and FastPendingCall data to be of type gboolean, which is more "semantically" correct for the way we use it. Steroids client: don't run callback if call was cancelled Properly handle call cancelling with FD passing Steroids: drop RC codes and rely on pipe closing 2010-06-22 Philip Van Hoof squash libtracker-client, tracker-store: Handling D-Bus errors right 2010-06-22 Jürg Billeter libtracker-client: Avoid duplicate code for D-Bus calls libtracker-client: Also use buffered output stream for async calls libtracker-client: Do not expose fast versions as separate API This currently breaks the update benchmark as the client cannot disable FD passing anymore. tracker-store: Remove unused TRACKER_STEROIDS_RC_LARGEROW libtracker-client: Remove unused TRACKER_STEROIDS_RC_LARGEROW tracker-store: Remove unused TRACKER_STEROIDS_EOP libtracker-client: s/marshall/marshal/ tracker-store: s/unmarshall/unmarshal/ 2010-06-22 Adrien Bustany Steroids server: Add missing loop_error check libtracker-client: Add steroids fallbacks for DBus 1.2 Steroids server: Fix leak in query_inthread The GUnixOutputStream created in query_inthread would be leaked. Remove useless field "clients" from TrackerSteroidsPrivate configure: Don't fail if DBus 1.3 is not available Steroids server: Remove useless fields in ClientInfo Steroids server: Remove extra close calls This commit removes some useless close calls, that would trigger warnings in tracker-store's log. FD are automatically closed when GIO's UNIX streams are finalized. Port libtracker-miner and FS miner to steroids Add tests for Tracker Steroids This commit adds test for all the functions introduced in tracker-store and libtracker-client to handle the new Steroids interface. Coverage has been verified using gcov. Add Steroids example client This commit adds a steroids-sparql program. This program shows how to use the tracker_resources_sparql_query_iterate function to do a query and fetch the results. It does exactly the same thing as tracker-sparql -q. libtracker-client: Add Steroids support This commit add several function in libtracker-client to exploit the new Steroids interface. The main function is tracker_resources_sparql_query_iterate, which will return a TrackerResultIterator. This iterator can then be used to iterate over the results using the tracker_result_iterator_* functions. Note that iteration is not done on DB side, all results are first fetch into a buffer on client side. This is because keeping an iterator on server side would block access to other clients, SQLite not being MVCC. Add Tracker Steroids interface The Steroids interface uses a local pipe to transfer query results, instead of sending them over DBus. To do so, it uses a new feature in DBus 1.3 which allows passing UNIX file descriptors in messages. This commit introduces a new DBus object exported on the store at path /org/freedesktop/Tracker1/Steroids. Methods are in the interface org.freedesktop.Tracker1.Steroids. The DBus interface is composed of two methods: PrepareQuery <- SPARQL query -> UNIX file descriptors where results will be written -> Query identifier The PrepareQuery call initiates a query in Tracker. The query is not really prepared, in the sense that a PrepareQuery with an erroneous query will succeed. It's the Fetch call which will fail in that case. The returned query identifier can be used to initiate the Fetch. Fetch <- Query identifier The Fetch call executes the query with the given identifier, and returns the results over the pipe returned by PrepareQuery. Note that while results are being fetched, a DB cursor is left open, blocking other concurrent INSERTs. It is therefore important to fetch the results and free the iterator as fast as possible. 2010-06-22 Aleksander Morgado Fixes GB#622351: Wrong initial detection of mounted state of the root partition Fixes NB#170915: tracker-search for snippet is resulting in errors 2010-06-21 Aleksander Morgado Fixes NB#175957: Properly setup non-removable mounts at startup 2010-06-21 Carlos Garnacho Bug NB#175712 - tracker is listing the files under Ignore directories. Make ignored-directories property also go through path expansion, since directories there could be $HOME prefixed. This is also bug #621568. 2010-06-18 Philip Van Hoof tests/libtracker-data: Added unit test for a regression that we had NFO: After careful measuring we noticed that this index isn't faster The index for nfo:belongsToContainer was not faster while testing with the Linux source code directory. We did several runs to avoid hot vs. cold cache measurement differences. We also tried removing the index on nfo:fileLastModified but this didn't result in a significant difference (so we're leaving that index for now). 2010-06-18 Jürg Billeter Revert "libtracker-data: Fixes NB#174591, Throw error on undefined variable in expressions" This reverts commit ff52af3dc6b72350f08f034d6e4245a6c54221b2. This broke queries that used SELECT variables in ORDERY BY clauses. 2010-06-18 Adrien Bustany Remote stale file tracker-miner-0.7.deps 2010-06-17 Carlos Garnacho tracker-status-icon: show missing menu items. There was a show_all() call that got removed, some widgets relied on it...