Skip to content

Use stable URNs for nie:InformationElement data

Carlos Garnacho requested to merge wip/carlosg/stable-content-urns into master

From the main commit:

libtracker-miners-common: Add API to get stable URNs for file content

This helper function works on top of G_FILE_ATTRIBUTE_ID_FILE which
based on the filesystem ID and inode. This shares the same lifetime
expectancies we have about our own URNs:

- It is unique system-wide.
- It is persistent as long as there are no file content changes
  (e.g. persists on attribute updates).
- It is persistent across file moves/renames too.

And extends the benefits a bit:

- It is persistent across reindexes.
- It is a stat() away, no need to insert a blank node and query for its
  name.

Add this piece of API that allows to generate one of these new
stable URNs for file content. Optionally, a suffix can be added,
for the cases where there will be multiple content entities for a
file data object (e.g. flac).

This new stable URN helper is used all over the place now for nie:InformationElement data that relates to file content.

In order to ensure these changes are picked up on update, the branch commits start by making TrackerMinerFiles methods part of the tracker:extractorHash machinery, and ensure these apply to folders as well.

Merge request reports