2014-02-20  Carlos Garnacho  <carlosg@gnome.org>

	Release 0.17.3

2014-02-20  Martyn Russell  <martyn@lanedo.com>

	tracker-sparql: Add new command line features for help with the ontology
	Specifically

	  --tree $CLASS (to print the tree for $CLASS, or NULL for all ontology)
	  --get-shorthand $CLASS
	  --get-longhand $CLASS

2014-02-20  Carlos Garnacho  <carlosg@gnome.org>

	libtracker-control: Add missing gio.h include

2014-02-20  Martyn Russell  <martyn@lanedo.com>

	tests: Updated gtester scripts to improve testing system
	We imported Makefile.decl from glib when it was using Subversion, a long time
	ago. The script had a few issues (like running all unit tests twice on make
	distcheck) and needed to be updated.

	I've stolen a latest version from GLib's glib.mk and also their m4 macros
	which are required to make this all work too.

	This gives us the advantage of defining installable and uninstallable test
	cases as well as test data, scripts and other useful stuff.

	The debug output also looks quite good.
	And distcheck passes :)

2014-02-20  Carlos Garnacho  <carlosg@gnome.org>

	libtracker-control: remove generated vapi/deps files on distclean

	po: Add tracker-miner-online.c
	Messages were marked as translatable there, so it needs to be in
	POTFILES.in

	libtracker-extract: Fix distcheck
	A few headers were missing in SOURCES, and noinst_HEADERS was mistakenly
	empty, which broke build if builddir!=srcdir

2014-02-20  Martyn Russell  <martyn@lanedo.com>

	libtracker-miner: Fixed all documentation warnings

	docs: Make sure we fix cross referenced library symbols
	Fixes the warnings about GError and other symbols which are unknown when
	generating the documentation for libtracker-{sparql|miner|control}

2014-02-20  Carlos Garnacho  <carlosg@gnome.org>

	Merge branch 'api-cleanup'

2014-02-20  Martyn Russell  <martyn@lanedo.com>

	libtracker-miner: Make sure we compile if we don't HAVE_NETWORK_MANAGER

2014-02-20  Carlos Garnacho  <carlosg@gnome.org>

	tests: Fix build in libtracker-miner

	libtracker-miner: Add padding pointers to *Class structs
	Will be useful for long term ABI compat.

	docs: Add missing TrackerDecorator type to .types

	libtracker-miner: remove private namespace symbols from being exported

	libtracker-miner: Remove TrackerMinerWeb and helper objects
	TrackerMinerWeb vmethods are very focused on the management of
	credentials and capabilities, this is something that's been taken
	over by gnome-online-accounts since this API was added, and the
	lack of TrackerMinerWeb implementations in the wild seems to
	hint it's not been as useful as when it was initially devised,
	so farewell.

	rss: Implement TrackerMinerOnline
	This is more suitable than implementing TrackerMiner directly

	libtracker-miner: Add TrackerMinerOnline
	This TrackerMiner is a simpler replacement for TrackerMinerWeb that
	doesn't get into credentials handling. It handles network state,
	emitting ::connected or ::disconnected on the way, and ensuring the
	miner is paused/resumed as necessary when suitable networks come and
	go, implementations of this miner can control this behavior through
	the return value in the ::connected signal.

	libtracker-control: New separate library, just contains TrackerMinerManager
	TrackerMinerManager has been moved from libtracker-miner, so it remains a library
	to implement miners. libtracker-control will be of interest to anything that
	attempts to track or control the state of running/available miners.

	tracker-writeback: Remove unneeded code using TrackerMinerManager
	TrackerMinerManager isn't used here after all, so remove all code
	using it.

	libtracker-miner: Make TrackerCrawler private
	This object can remain entirely private, as it is wrapped in quite more
	convenient ways by TrackerMinerFS (ie. tracking of additions/removals,
	file monitoring...), so turn it fully private.

	libtracker-miner: Move TrackerStorage to libtracker-common
	This is used in a variety of places (tracker-writeback, TrackerMinerFiles,
	and TrackerDecorator), but it doesn't make sense to have that exposed in
	libtracker-miner, so move to libtracker-common, where it can be used in a
	private manner.

	libtracker-miner: Avoid use of TrackerCrawler in TrackerMinerManager
	This object just needs it to iterate over .desktop files, so use plain GIO there.

	tracker-control: Avoid usage of TrackerCrawler
	This can be easily replaced by a helper function that iterates
	over a directory.

	libtracker-miner: hide media-art header
	These calls to manipulate the media art queue are already
	performed inside TrackerMinerFS, and there are no foreseeable
	situations where a TrackerMinerFS implementation will need
	to call these directly, so just move the code and header
	to private land.

	libtracker-miner: Turn thumbnailer into an object
	TrackerMinerFS in libtracker-miner was already doing most of the
	tracker_thumbnailer_* calls necessary. The only API required on
	callers only was tracker_thumbnailer_init/shutdown(). So just
	turn this into an object so all usage is kept private to
	libtracker-miner, and we can remove these headers out of the
	public.

	libtracker-extract: Make it completely private
	This library has some rough spots, mainly around:

	1) Usefulness: The library is not specially useful outside of
	   tracker. In the source tree we already have plenty of extract
	   modules that handle most popular file formats. Future-wise, if
	   a brand new file format earns popularity, we'll want it in the
	   tracker tree, and not as an external module. So neither
	   implementing minor third party out-of-tree modules nor offering
	   the possibility to reimplement a type Tracker knows well is a
	   compelling thing to support.

	2) Maintainability: The API is highly inconsistent, hardly
	   introspectable and with little forward-compatibility thinking.

	So in short, libtracker-extract is something we want to keep under
	the rug, only available to tracker-miner-fs and tracker-extract.

2014-02-20  Xavier Claessens  <xavier.claessens@collabora.com>

	TrackerDecorator: Add writable "priority-rdf-types" property

2014-02-20  Xavier Claessens  <xavier.claessens@collabora.co.uk>

	TrackerExtractDecorator: Remove useless goto.

	TrackerExtractController: Fix coding style

	TrackerExtractController: Avoid useless string comparaison

	TrackerDecorator: Query the type of removed elements
	When "?urn nie:dataSource tracker:extractor-data-source" gets removed
	it means that we have to re-extract that file. It should not happen
	in normal usage, only for testing purpose. In that case we have
	to query its type.

	Add TrackerExtractController to pause/resume the miner
	It listen to "wait-for-miner-fs" option and check the status
	of tracker-miner-fs to pause/resume the extractor.

	https://bugzilla.gnome.org/show_bug.cgi?id=719802

	tracker-extract: add "wait-for-miner-fs" setting
	https://bugzilla.gnome.org/show_bug.cgi?id=719802

	TrackerExtractDecorator: Add ClearRdfTypes DBus method
	Also handle SetRdfTypes with empty strv the same as ClearRdfTypes.

	https://bugzilla.gnome.org/show_bug.cgi?id=719802

	TrackerDecorator: Sort elem_queue to extract important files first
	There are 2 things affecting an element position in the queue:
	prepend (typically files from an USB key the user plugged),
	and prior (the file type matches what applications needs first, e.g.
	nfo:Audio).

	The queue is sorted like that:
	1) prepend and prior files
	2) prior files
	3) prepend files
	4) the rest

	This garantees that if I open the Music app and plug an USB key, I'll
	get the MP3s from that key first, which is probably want the user
	wants.

	https://bugzilla.gnome.org/show_bug.cgi?id=719802

	Conflicts:
		src/libtracker-miner/tracker-decorator.c

	TrackerDecorator: Replace the elements GQueue with a TrackerPriorityQueue
	This will allow more fine grained priorities than the current
	append/prepend.

	TrackerDecorator: Query the rdf:type for each element in the queue
	The type will be used in upcoming commits to sort the elem_queue by
	priority.

	https://bugzilla.gnome.org/show_bug.cgi?id=719802

	TrackerExtractDecorator: Add priority dbus interface
	That dbus interface lets application tell tracker-extract which
	rdf:type must be extracted in priority. For example, when the user
	interacts with the music player, they want to give the priority to
	"nfo:Audio" files.

	This commit only introduces the DBus machinary, not the actual
	implementation.

	https://bugzilla.gnome.org/show_bug.cgi?id=719802

	TrackerExtractDecorator: Fix pause/resume
	It should not get the next file when the miner is paused/stopped,
	or if there are no items available anymore.

	This also ensure we never have more than MAX_EXTRACTING_FILES
	(currently one) extraction operation running in parallel.

	https://bugzilla.gnome.org/show_bug.cgi?id=719802

	tracker-extract: Fix TrackerConfig not handling change notification
	https://bugzilla.gnome.org/show_bug.cgi?id=719802

	TrackerPriorityQueue: Add node-based API
	This exposes the fact that it is implemented using a GList, but
	makes possible to remove a node without iterating the whole queue.
	Those new API will be used in upcoming commits.

	TrackerDecorator: remove the "(boxed)" annotation
	That annotation does not exist, g-i is smart enough to
	see by itself that TrackerDecoratorInfo is a boxed type.

2014-02-19  Martyn Russell  <martyn@lanedo.com>

	Merge branch 'prioritized-crawling'