1 Introduction

  Tracker is a powerful desktop-neutral first class object
  database, tag/metadata database, search tool and indexer.

  Tracker is also extremely fast and very memory-efficient
  when compared with some other competing frameworks and has by
  far the fastest and most memory-efficient Nautilus search and
  Deskbar backends currently available.

  It consists of a common object database that allows entities to
  have an almost infinte number of properties, metadata (both
  embedded/harvested as well as user definable), a comprehensive
  database of keywords/tags and links to other entities.

  It provides additional features for file-based objects
  including context linking and audit trails for a file object.

  It has the ability to index, store, harvest metadata, retrieve
  and search all types of files and other first class objects.

  Supported first class objects include:

  * Files, Documents, Music, Images, Videos, Applications, Emails,
    Conversations, Playlists

  Planned support:

  * Appointments, Contacts, Projects, Tasks, Bookmarks, Notes,
    Firefox Web History

  All discussion related to tracker happens on the Tracker
  mailing list

        http://mail.gnome.org/mailman/listinfo/tracker-list

  IRC channel #tracker on:

        irc.gimp.net

  Bugs should be filed at:

        http://bugzilla.gnome.org.

  More infomation on Tracker can be found at

        http://tracker-project.org.

  Repository (first is readonly, second is write access)

	git://git.gnome.org/tracker
	ssh://<user>@git.gnome.org/git/tracker

2 Use Cases

  Tracker is the most powerful open source metadata database and
  indexer framework currently available and because it is built
  around a combination indexer and sql database and not a
  dedicated indexer, it has much more powerful use cases:

  * Provide search and indexing facilities similiar to those on
  other systems (Windows Vista and Mac OS X).

  * Common database storage for all first class objects (e.g. a
  common music/photo/contacts/email/bookmarks/history database)
  complete with additional metadata and tags/keywords.

  * Comprehensive one stop solution for all applications needing
  an object database, powerful search (via RDF Query), first class
  methods, related metadata and user-definable metadata/tags.

  * Can provide a full semantic desktop with metadata everywhere.

  * Can provide powerful criteria-based searching suitable for
  creating smart file dialogs and vfolder systems.

  * Can provide a more intelligent desktop using statistical
  metadata.

3 Features

  * Desktop-neutral design (it's a freedesktop product built
  around other freedesktop technologies like D-Bus and XDGMime
  but contains no GNOME-specific dependencies besides GLib).

  * Very memory efficient. Unlike some other indexers, Tracker is
  designed and built to run well on mobile and desktop systems with
  lower memory (256MB or less).

  * Non-bloated and written in C for maximum efficiency.

  * Small size and minimal dependencies makes it easy to bundle
  into various distros, including live cds.

  * Provides option to disable indexing when running on battery.

  * Provides option to index removable devices.

  * Implements the freedesktop specification for metadata
  (http://freedesktop.org/wiki/Standards/shared-filemetadata-spec).

  * Extracts embedded File, Image, Document and Audio type
  metadata from files.

  * Supports the WC3's RDF Query syntax for querying metadata

  * Provides support for both free text search (like Beagle/Google)
  as well as structured searches using RDF Query.

  * Responds in real time to file system changes to keep its
  metadata database up to date and in sync.

  * Fully extensible with custom metadata - you can store,
  retrieve, register and search via RDF Query all your own custom
  metadata.

  * Can extract a file's contents as plain text and index them.

  * Can provide thumbnailing on the fly.

  * It auto-pauses indexing when running low on diskspace.

4 Compilation

  The git repository contains input to the GNU Autotools however a
  number of commands need to be run to initialize GNU Autotools in the
  project directory. To setup the project for compilation after
  checking it out from the git repository, use: 

        ./autogen.sh --prefix=/usr --sysconfdir=/etc --localstatedir=/var

  Or if you don't have autogen.sh (i.e. you are using the released
  tarball), you can use:

        ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var

  To start compiling the project use:

        make
        sudo make install

  If you install using any other prefix, you might have problems
  with files not being installed correctly. (You may need to copy
  and amend the dbus service file to the correct directory and/or
  might need to update ld_conf if you install into non-standard
  directories.)

4.1 Notes on Solaris

  To compile Tracker with GCC on Solaris uses the following
  commands :

        CFLAGS="-D_POSIX_PTHREAD_SEMANTICS" ./configure \
	--prefix=/usr \
	--sysconfdir=/etc \
        --localstatedir=/var \
	--with-pic

        make
        sudo make install

  To compile Tracker with SUN Studio on Solaris uses the
  following commands, because there are some problems to compile
  exiv2 using SUN C++ compiler :

        CFLAGS="-D_POSIX_PTHREAD_SEMANTICS" ./configure \
	--prefix=/usr \
	--sysconfdir=/etc \
        --localstatedir=/var \
	--with-pic \
        --disable-exiv2

        make
        sudo make install

4.2 Compile Options

  Tracker has several compiler options to enable/disable certain
  features. You can get a full listing by running

  	./configure --help

5 Running Tracker

5.1 Usage

  Tracker normally starts itself when users log in. You can indexing by running:

    $prefix/libexec/tracker-miner-fs

  You can configure how this works using:

    $prefix/bin/tracker-preferences

  You can monitor data miners using:

    $prefix/bin/tracker-status-icon

  You can do simple searching using an applet:

    $prefix/libexec/tracker-search-bar

  You can do more extensive searching using:

    $prefix/bin/tracker-search-tool

5.2 Setting Inotify Watch Limit

  When watching large numbers of folders, its possible to exceed
  the default number of inotify watches. In order to get real time
  updates when this value is exceeded it is necessary to increase
  the number of allowed watches. This can be done as follows:

  1. Add this line to /etc/sysctl.conf:
     "fs.inotify.max_user_watches = (number of folders to be
      watched; default used to be 8192 and now is 524288)"

  2. Reboot the system OR (on a Debian-like system) run
     "sudo /etc/init.d/procps restart"

6 Further Help

6.1 Man pages

  Every config file and every binary has a man page. If you start with
  tracker-store, you should be able to find out about most other
  commands the SEE ALSO section.

6.2 Utilities

  There are a range of tracker utilities that help you query for data.
