• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

data/H09-Mar-2020-198110

docs/H09-Mar-2020-5,6914,516

examples/H09-Mar-2020-1,5571,075

po/H09-Mar-2020-156,176122,348

src/H09-Mar-2020-118,67285,850

tests/H09-Mar-2020-24,11117,395

utils/H09-Mar-2020-5,8104,252

AUTHORSH A D09-Mar-20201.6 KiB4241

COPYINGH A D09-Mar-2020236 103

COPYING.GPLH A D09-Mar-202017.6 KiB341281

COPYING.LGPLH A D09-Mar-202025.9 KiB511422

ChangeLog.pre-0-6-93H A D09-Mar-2020604.4 KiB17,25712,562

MAINTAINERSH A D09-Mar-2020433 3121

NEWSH A D09-Mar-2020287.5 KiB6,9395,497

README.mdH A D09-Mar-20204.8 KiB13286

config.h.meson.inH A D09-Mar-20203.1 KiB12584

gitlog-to-changelogH A D09-Mar-20204.9 KiB176106

meson.buildH A D09-Mar-202016.4 KiB405336

meson_integration_commands.shH A D09-Mar-2020323 166

tracker.doapH A D09-Mar-20203.1 KiB9078

README.md

1# Tracker
2
3Tracker is an efficient search engine and
4[triplestore](https://en.wikipedia.org/wiki/Triplestore) for desktop, embedded
5and mobile.
6
7The Tracker project is divided into two main repositories:
8
9  * [Tracker core](https://gitlab.gnome.org/GNOME/tracker) contains the database
10    (*tracker-store*), the database ontologies, the commandline user
11    interface (`tracker`), and several support libraries.
12
13  * [Tracker Miners](https://gitlab.gnome.org/GNOME/tracker-miners) contains
14    the indexer daemon (*tracker-miner-fs*) and tools to extract metadata
15    from many different filetypes.
16
17More information on Tracker can be found at:
18
19  * <https://wiki.gnome.org/Projects/Tracker>
20
21Source code and issue tracking:
22
23  * <https://gitlab.gnome.org/GNOME/tracker>
24
25All discussion related to Tracker happens on:
26
27  * <https://mail.gnome.org/mailman/listinfo/tracker-list>
28
29IRC channel #tracker on:
30
31  * [irc.gimp.net](irc://irc.gimp.net)
32
33Related projects:
34
35  * [GNOME Online Miners](https://gitlab.gnome.org/GNOME/gnome-online-miners/)
36    extends Tracker to allow searching and indexing some kinds of online
37    content.
38
39# Developing Tracker
40
41If you want to help develop and improve Tracker, great! Remember that Tracker
42is a middleware component, designed to be integrated into larger codebases. To
43fully test a change you may need to build and test Tracker as part of another
44project.
45
46For the GNOME desktop, consider using the documented [Building a System
47Component](https://wiki.gnome.org/Newcomers/BuildSystemComponent) workflow.
48
49It's also possible to build Tracker on its own and install it inside your home
50directory for testing purposes.  Read on for instructions on how to do this.
51
52## Compilation
53
54Tracker uses the [Meson build system](http://mesonbuild.com), which you must
55have installed in order to build Tracker.
56
57We recommend that you build tracker core as a subproject of tracker-miners.
58You can do this by cloning both repos, then creating a symlink in the
59`subprojects/` directory of tracker-miners.git to the tracker.git checkout.
60
61    git clone https://gitlab.gnome.org/GNOME/tracker.git
62    git clone https://gitlab.gnome.org/GNOME/tracker-miners.git
63
64    mkdir tracker-miners/subprojects
65    ln -s ../../tracker tracker-miners/subprojects/
66
67Now you can run the commands below to build Tracker and install it in a
68new, isolated prefix named `opt/tracker` inside your home folder.
69
70> NOTE: If you see 'dependency not found' errors from Meson, that means there
71> is a package missing on your computer that you need to install so you can
72> compile Tracker. On Ubuntu/Debian, you can run `apt build-dep tracker-miners`
73> and on Fedora `dnf build-dep tracker-miners` to install all the necessary
74> packages.
75
76    cd tracker-miners
77    meson ./build --prefix=$HOME/opt/tracker -Dtracker_core=subproject
78    cd build
79    ninja install
80
81## Running the testsuite
82
83At this point you can run the Tracker test suite from the `build` directory:
84
85    meson test --print-errorlogs
86
87## Developing with tracker-sandbox
88
89Tracker normally runs automatically, indexing content in the background so that
90search results are available quickly when needed.
91
92When developing and testing Tracker you will normally want it to run in the
93foreground instead. The `tracker-sandbox` tool exists to help with this.
94
95You can run the tool directly from the tracker.git source tree. Ensure you are
96in the top of the tracker source tree and type this to see the --help output:
97
98    ./utils/sandbox/tracker-sandbox.py --help
99
100You should always pass the `--prefix` option, which should be the same as the
101--prefix argument you passed to Meson. You also need to use `--index` which
102controls where internal state files like the database are kept. You may also
103want to pass `--debug` to see detailed log output.
104
105Now you can index some files using `--update` mode. Here's how to index files
106in `~/Documents` for example:
107
108    ./utils/sandbox/tracker-sandbox.py  --prefix ~/opt/tracker --index ~/tracker-content \
109        --update --content ~/Documents
110
111You can then list the files that have been indexed...
112
113    ./utils/sandbox/tracker-sandbox.py  --prefix ~/opt/tracker --index ~/tracker-content \
114        --list-files
115
116... run a full-text search ...
117
118    ./utils/sandbox/tracker-sandbox.py  --prefix ~/opt/tracker --index ~/tracker-content \
119        --search "bananas"
120
121... or run a SPARQL query on the content:
122
123    ./utils/sandbox/tracker-sandbox.py  --prefix ~/opt/tracker --index ~/tracker-content \
124        --sparql "SELECT ?url { ?resource a nfo:FileDataObject ; nie:url ?url . }"
125
126You can also open a shell inside the sandbox environment. From here you can run
127the `tracker` commandline tool, and you can run the Tracker daemons manually
128under a debugger such as GDB.
129
130For more information about developing Tracker, look at
131https://wiki.gnome.org/Projects/Tracker.
132