2016-02-16  Carlos Garnacho  <carlosg@gnome.org>

	Release 1.7.3

	libtracker-miner: Fix invalid return value warning

2016-02-15  Carlos Garnacho  <carlosg@gnome.org>

	libtracker-miner: Add envvar toggle to force directory updated checks
	The bugs covered by the last patches might leave leftovers in the DB if
	tracker-miner-fs updated a directory after it changed between runs, but
	wouldn't delete contents that were removed from the filesystem.

	Add this toggle envvar to point people to a solution, if you've seen errors
	like "UNIQUE constraint failed: nie:DataObject.nie:url" in journald, you're
	affected by these bugs, and should run tracker-miner-fs once with
	TRACKER_MINER_FORCE_CHECK_UPDATED set in the environment. Running just
	once will be enough, enabling this always will incur in startup performance
	penalties.

	libtracker-miner: Simplify deleted contents querying in TrackerFileNotifier
	Now that we perform per-directory crawling+querying, we can just check
	whether the currently crawled dir was updated, and remove all filtering
	features from sparql_contents_query_start().

	We actually were interpreting the filter incorrectly, because the
	directories would be added to the updated_dirs array sooner than they
	would be crawled, so the check for deleted contents was simply
	forgotten. This simplification fixes such situation.

2016-02-15  Haithem BEN GHORBAL  <haithem.benghorbal@gmail.com>

	libtracker-data: Fix uninitialized variable usage
	object_id is not initialized in this branch of code, use the object
	URI instead.

2016-02-15  Carlos Garnacho  <carlosg@gnome.org>

	libtracker-miner: Detect file type on files coming from store
	When adding files from the store to the TrackerFileSystem, we must at least
	detect whether they are folders. Returning "unknown" here meant that
	TrackerMinerFS wouldn't enable the TRACKER_BULK_MATCH_CHILDREN mask on
	delete operations for directories, which could leave lingering child
	nfo:FileDataObjects.

	This situation could happen if a folder is deleted between runs of
	tracker-miner-fs, all information we can get comes from the store, as
	it's no longer there at the time of crawling.

	libtracker-miner: Use Sparql1.1 in TrackerSparqlBuffer tasks
	We can use STRSTARTS better than fn:starts-with here.

2016-02-15  Haithem BEN GHORBAL  <haithem.benghorbal@gmail.com>

	libtracker-miner: Separate currently crawled dir from pending directories
	The GQueue is passed as a filter to sparql_contents_compose_query(), but
	it relies on the current file being outside the filter, otherwise it
	will produce an empty IN() filter.

	libtracker-miner: Reset of reentry counter is not needed anymore
	Moreover, an infinite loop may occurs if process-file signal always fails.

	libtracker-miner: Invalidate files iri recursively in case of file removal
	Directories must get all children invalidated, because already queued tasks
	might contain new instances of those same files, in which case they would
	still find the previous URN.

	libtracker-miner: Allow to invalidate files iri recursively
	This will be useful for delete operations.

2016-02-15  Carlos Garnacho  <carlosg@gnome.org>

	libtracker-miner: Proceed into querying if tracker_crawler_start() fails
	tracker_crawler_start() may return FALSE if the directory doesn't exist
	or its ::check-directory handlers return FALSE. We must continue in these
	circumstances into querying the directory as usual, so it's contrasted
	and eventually deleted by file_notifier_traverse_tree_foreach().

2016-02-15  Haithem BEN GHORBAL  <haithem.benghorbal@gmail.com>

	libtracker-miner: Fix some memory leaks of TrackerTask
	These leaks had huge impact as each TrackerTask had a reference
	to a GFile, which prevent them to be removed from TrackerFileSystem
	when calling tracker_file_system_forget_files(). Due to this behavior,
	adding/removing/re-adding folders resulted in some folders/files not
	being indexed.

	libtracker-miner: Add extra reference around file deletion
	TrackerFileNotifier::file-deleted might have removed the last reference
	to the given file, make sure it lives a bit longer for the remaining
	operations to finish.

	libtracker-miner: Use the interned GFile with tracker_file_system_forget_files()
	This allow the correponding node to be retrieved from g_object_get_qdata()
	instead of traversing all the tree, which might imply a performance hit.

	libtracker-miner: Fix generated Sparql query in sparql_contents_compose_query()
	If the first element is filtered out it'd append a comma anyway in
	the query filter.

	libtracker-miner: Fix "return makes integer from pointer without a cast" warnings

	libtracker-fts: Fix invalid blob length calculation
	The blob lenght is defined to be in bytes.

	Tracker: fix possible dereference of null pointer

	libtracker-data: remove unnecessary call to tracker_db_manager_get_db_interface()
	It was done at the end of the function.

	libtracker-data: Rework ontology_get_fts_properties()
	All callers require both hashtables, so remove NULL handling for those.
	Fixes a possible memory leak if fts_properties is NULL.

2016-02-14  Haithem BEN GHORBAL  <haithem.benghorbal@gmail.com>

	libtracker-miner: Fix variable set but not used warning

	docs: Fix less-than-zero comparison of an unsigned value

	libtracker-data: Fix g_warning() missing argument

2016-02-06  RÅ«dolfs Mazurs  <rudolfsm@src.gnome.org>

	Update Latvian translation

2016-01-28  Carlos Garnacho  <carlosg@gnome.org>

	libtracker-miner: Do not insert partial/empty sparql on error
	The check for these errors was done specifically so we could still
	insert (even if incomplete) data on tracker-extract failures, when
	we used to communicate with it directly from tracker-miner-fs.

	Nowadays, tracker-extract is a TrackerDecorator, and tracker-miner-fs
	should most likely receive only errors here on ENOENT and other errors
	that affect the file and its info as a whole. In these situations
	we end up with a task with a completely empty sparql string, which
	doesn't help much here.

	libtracker-miner: Pass a builder in UPDATE state to ::remove-file
	A stateless TrackerSparqlBuilder is not that useful, because there's
	no API to push the desired state. A TrackerSparqlBuilder created
	through tracker_sparql_builder_new_update() will allow us to
	open delete and insert statements, which is what we want here.

	libtracker-miner: Remove children recursively from queues on directory deleted
	We use to emit ::file-deleted on topmost directories only when deleting a
	directory tree. This means we have to remove children recursively too, because
	we'll otherwise leave stale items that are not direct children of the directory
	we notified upon.

2016-01-25  Richard Hughes  <richard@hughsie.com>

	Update the AppData to spec version 0.7+

2016-01-21  Carlos Garnacho  <carlosg@gnome.org>

	libtracker-common: Use guint64 for free space calculations
	We need the whole range after the multiplication with st.f_bsize, gsize
	may overflow here. Also, make the cast to double explicit rather than
	implicit in get_remaining_space_percentage()