Port to Tracker 3
See Initiatives#17 for background.
Photos makes heavy use of Tracker and there are several changes we'll need to make for it to work with Tracker 3. Here's what I think we need to do:
- Port to libtracker-sparql 3.x API
- Account for file & dataobjects being different resources in Tracker 3.x (modify photos-query-builder.c to query both the nmm:Photo and the nfo:FileDataObject resource)
Honour graph separation
- Modify queries to only look at the tracker:Pictures graph
- Set corresponding policy in the xdg-tracker-portal Flatpak portal
- Store albums and favourites in a private Tracker database (in 2.x they were stored in the session-wide Tracker store, which no longer exists in 3.x) -- queries will need to updated too.
Replace TrackerMinerManager usage with direct call to IndexFile
- Add a way to monitor progress of IndexFile call, so we can display a notification without trying to contact the Miner over D-Bus (which won't be possible in a sandbox)
- Update Flatpak manifest to use Tracker from GNOME SDK (we might still include tracker-miners ... i'm not sure if it's useful or not inside the sandbox)
Also, we need a way to export albums and favourites from the Tracker 2 database, and import them to the new Photos app database. My initial attempt is here: tracker!262 (merged) and https://gitlab.gnome.org/sthursfield/tracker-data-migration-tools/
Some things I would like to do as part of this porting effort, but are not required: