Port to Tracker 3
See Initiatives#17 (closed) 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:
- #59 (closed) (use TrackerNotifier instead of monitoring GraphUpdated signal)
- #83 (make online miners private to gnome-photos and include them in the Flatpak bundle)
- improve testing
- the dogtail test is currently broken
- there's no test for any Tracker related codepaths