1. When
- Date: Saturday 3rd September 2020
- When: 15.00 UTC
2. Agenda
- Planning for Tracker 3.1 and GNOME 3.40
- Finishing GNOME Photos port to Tracker 3
- Extending portal API to support on-demand indexing (removable devices) and indexing-in-progress notifications
- ...
- ...
3. Present
4. Notes
- GNOME Photos port - still to do
- 'Indexing in progress' notifications don't work inside Flatpak sandbox
- This relies on calling Miner.Status function, which the portal API doesn't include
- Our plan is:
Add an IndexLocation method to the portal, proxying the existing org.freedesktop.Tracker3.Miner.Files.Index method
- Photos calls this function on startup for the locations it displays (~/Photos, etc.), and passes the WAIT flag
- Proxy keeps the method call in progress until the locations are indexed
PhotosTrackerIndexingNotification is shown while the method call is in progress
This approach can be useful for the future goal of Indexing custom locations from content apps too - IndexLocation could be extended to update the host index-recursive-directories setting (with user consent)
- 'Import from removable device' is untested and probably broken
It's a complex procedure -- first Photos calls IndexLocation for the mount point, then displays contents and offers to import photos to ~/Photos, finally it copies the files and calls IndexLocation on the new files
- Our plan is:
Add support for CREATE TEMPORARY GRAPH in Tracker SPARQL -- this would create a temporary in-memory SQLite DB
- Modify tracker-miner-fs-3 internals to optionally store indexed data in a temporary graph, instead of on disk
Allow apps to request, via IndexLocation, indexing of a location into temporary DB
- Important that this operation is cancellable, as the removable device may have enourmous amounts of data
- Changing titles of photos doesn't seem to work
- Previously Photos would update nie:title in the tracker-store -- for 3.0 it would need to override it in the local Photos DB
- Could we use Writeback for this instead?
- 'Indexing in progress' notifications don't work inside Flatpak sandbox
- Portal bug
https://github.com/flathub/org.gnome.Music/pull/24 reports a D-Bus error from the portal
- This may be a race condition on portal startup -- Carlos will investigate
- Other plans for 3.1 -- low priority
Add serialization of TrackerSparqlCursor to XML, Turtle, JSON
This will allow TrackerRemoteConnection and SERVICE <https://...> queries to work TrackerEndpoint to serve data over HTTP
Existing Turtle parser needs some polish -- https://gitlab.gnome.org/GNOME/tracker/-/issues/260
Investigate performance of TrackerFileSystem
- It's meant to speed up indexing by allowing pointer comparison of GFile, but profiling shows it may do the opposite as we have to canonicalize every GFile, and we don't actually compare them often
An LRU cache for GFile->URN would still be needed so we can find IDs for folder parents
- Indexing of external harddrives
- We disable removable-device indexing by default, which is correct for desktop use cases
- Many laptop users have an external HD full of content, how should this be configured for indexing?
- If treated like a folder, unmounting it will create a volley of DELETED events
- Investigate having an allowlist for removable devices -- adding device ID to allowlist would override the global index-removable-devices setting
- This could be exposed in 'Search settings' panel of control centre, although needs design input
5. Next meeting
No next meeting scheduled. A video-chat to review https://gitlab.gnome.org/GNOME/gnome-photos/-/merge_requests/135 could still be useful