Use stable URNs for nie:InformationElement data
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.