[tracker-miners/wip/carlosg/miner-changes: 3/17] tracker-extract: Add hash to extract modules



commit 57ac756826f0d85fdfbcb80db2f3969b641c0d78
Author: Carlos Garnacho <carlosg gnome org>
Date:   Fri Jun 12 20:55:43 2020 +0200

    tracker-extract: Add hash to extract modules
    
    This hash is fed from the C files making up each extractor, so
    is expected to change with every change in those files. This will
    work as an automated way to track changes in those files, so in
    the future we can trigger re-extraction on extractor changes.

 meson.build                                         |  2 ++
 src/tracker-extract/10-abw.rule                     |  1 +
 src/tracker-extract/10-bmp.rule                     |  1 +
 src/tracker-extract/10-comics.rule                  |  1 +
 src/tracker-extract/10-desktop.rule                 |  1 +
 src/tracker-extract/10-dvi.rule                     |  1 +
 src/tracker-extract/10-ebooks.rule                  |  1 +
 src/tracker-extract/10-epub.rule                    |  1 +
 src/tracker-extract/10-flac.rule                    |  1 +
 src/tracker-extract/10-gif.rule                     |  3 ++-
 src/tracker-extract/10-html.rule                    |  1 +
 src/tracker-extract/10-ico.rule                     |  1 +
 src/tracker-extract/10-jpeg.rule                    |  1 +
 src/tracker-extract/10-mp3.rule                     |  1 +
 src/tracker-extract/10-msoffice.rule                |  1 +
 src/tracker-extract/10-oasis.rule                   |  1 +
 src/tracker-extract/10-pdf.rule                     |  1 +
 src/tracker-extract/10-png.rule                     |  1 +
 src/tracker-extract/10-ps.rule                      |  1 +
 src/tracker-extract/10-raw.rule                     |  1 +
 src/tracker-extract/10-svg.rule                     |  1 +
 src/tracker-extract/10-tiff.rule                    |  1 +
 src/tracker-extract/10-vorbis.rule                  |  1 +
 src/tracker-extract/10-xps.rule                     |  1 +
 src/tracker-extract/11-iso.rule                     |  1 +
 src/tracker-extract/11-msoffice-xml.rule            |  1 +
 src/tracker-extract/15-gstreamer-guess.rule         |  1 +
 src/tracker-extract/15-playlist.rule                |  1 +
 src/tracker-extract/15-source-code.rule             |  1 +
 src/tracker-extract/90-gstreamer-audio-generic.rule |  1 +
 src/tracker-extract/90-gstreamer-video-generic.rule |  1 +
 src/tracker-extract/90-libav-audio-generic.rule     |  1 +
 src/tracker-extract/90-libav-video-generic.rule     |  1 +
 src/tracker-extract/90-text-generic.rule            |  1 +
 src/tracker-extract/calculate-hash.sh               |  2 ++
 src/tracker-extract/meson.build                     | 10 +++++++++-
 36 files changed, 47 insertions(+), 2 deletions(-)
---
diff --git a/meson.build b/meson.build
index 57da50cc7..09e1aa537 100644
--- a/meson.build
+++ b/meson.build
@@ -110,6 +110,8 @@ if get_option('man')
   xsltproc = find_program('xsltproc')
 endif
 
+sha256sum = find_program('sha256sum')
+
 add_project_arguments('-Wformat', '-Wformat-security', language: 'c')
 
 # There are various gchar vs. unsigned char warnings that occur in extract
diff --git a/src/tracker-extract/10-abw.rule b/src/tracker-extract/10-abw.rule
index efd865eeb..f3a45878d 100644
--- a/src/tracker-extract/10-abw.rule
+++ b/src/tracker-extract/10-abw.rule
@@ -3,3 +3,4 @@ ModulePath=libextract-abw.so
 MimeTypes=application/x-abiword
 FallbackRdfTypes=nfo:Document
 Graph=tracker:Documents
+Hash=@hash@
diff --git a/src/tracker-extract/10-bmp.rule b/src/tracker-extract/10-bmp.rule
index 55950c278..85614e581 100644
--- a/src/tracker-extract/10-bmp.rule
+++ b/src/tracker-extract/10-bmp.rule
@@ -3,3 +3,4 @@ ModulePath=libextract-bmp.so
 MimeTypes=image/bmp
 FallbackRdfTypes=nfo:Image;nmm:Photo;
 Graph=tracker:Pictures
+Hash=@hash@
diff --git a/src/tracker-extract/10-comics.rule b/src/tracker-extract/10-comics.rule
index cb25399b7..69cf36dea 100644
--- a/src/tracker-extract/10-comics.rule
+++ b/src/tracker-extract/10-comics.rule
@@ -2,3 +2,4 @@
 
MimeTypes=application/x-cbr;application/x-cbz;application/x-cbt;application/x-cb7;application/vnd.comicbook+zip;
 FallbackRdfTypes=nfo:EBook;
 Graph=tracker:Documents
+Hash=@hash@
diff --git a/src/tracker-extract/10-desktop.rule b/src/tracker-extract/10-desktop.rule
index 8cf3fd436..abab11246 100644
--- a/src/tracker-extract/10-desktop.rule
+++ b/src/tracker-extract/10-desktop.rule
@@ -3,3 +3,4 @@ ModulePath=libextract-desktop.so
 MimeTypes=application/x-desktop
 FallbackRdfTypes=nfo:SoftwareApplication;
 Graph=tracker:Software
+Hash=@hash@
diff --git a/src/tracker-extract/10-dvi.rule b/src/tracker-extract/10-dvi.rule
index f2b11ac02..5b6787182 100644
--- a/src/tracker-extract/10-dvi.rule
+++ b/src/tracker-extract/10-dvi.rule
@@ -3,3 +3,4 @@ ModulePath=libextract-dvi.so
 MimeTypes=application/x-dvi
 FallbackRdfTypes=nfo:Document
 Graph=tracker:Documents
+Hash=@hash@
diff --git a/src/tracker-extract/10-ebooks.rule b/src/tracker-extract/10-ebooks.rule
index b273ac17f..967a86940 100644
--- a/src/tracker-extract/10-ebooks.rule
+++ b/src/tracker-extract/10-ebooks.rule
@@ -2,3 +2,4 @@
 
MimeTypes=application/x-zip-compressed-fb2;application/x-fictionbook+xml;application/x-mobipocket-ebook;image/vnd.djvu+multipage;
 FallbackRdfTypes=nfo:EBook;nfo:PaginatedTextDocument;
 Graph=tracker:Documents
+Hash=@hash@
diff --git a/src/tracker-extract/10-epub.rule b/src/tracker-extract/10-epub.rule
index 753f8d5a6..19188d4b4 100644
--- a/src/tracker-extract/10-epub.rule
+++ b/src/tracker-extract/10-epub.rule
@@ -3,3 +3,4 @@ ModulePath=libextract-epub.so
 MimeTypes=application/epub+zip
 FallbackRdfTypes=nfo:EBook;nfo:TextDocument;
 Graph=tracker:Documents
+Hash=@hash@
diff --git a/src/tracker-extract/10-flac.rule b/src/tracker-extract/10-flac.rule
index a0e4bacab..aea46d4ff 100644
--- a/src/tracker-extract/10-flac.rule
+++ b/src/tracker-extract/10-flac.rule
@@ -3,3 +3,4 @@ ModulePath=libextract-flac.so
 MimeTypes=audio/x-flac
 FallbackRdfTypes=nfo:Audio;
 Graph=tracker:Audio
+Hash=@hash@
diff --git a/src/tracker-extract/10-gif.rule b/src/tracker-extract/10-gif.rule
index 05efe4e5c..9bef1a41b 100644
--- a/src/tracker-extract/10-gif.rule
+++ b/src/tracker-extract/10-gif.rule
@@ -2,4 +2,5 @@
 ModulePath=libextract-gif.so
 MimeTypes=image/gif
 FallbackRdfTypes=nfo:Image;nmm:Photo;
-Graph=tracker:Pictures
\ No newline at end of file
+Graph=tracker:Pictures
+Hash=@hash@
diff --git a/src/tracker-extract/10-html.rule b/src/tracker-extract/10-html.rule
index ca14c8786..5cfdff9d3 100644
--- a/src/tracker-extract/10-html.rule
+++ b/src/tracker-extract/10-html.rule
@@ -3,3 +3,4 @@ ModulePath=libextract-html.so
 MimeTypes=text/html;application/xhtml+xml;
 FallbackRdfTypes=nfo:HtmlDocument
 Graph=tracker:Documents
+Hash=@hash@
diff --git a/src/tracker-extract/10-ico.rule b/src/tracker-extract/10-ico.rule
index 8c0d7c90a..c6b381dbd 100644
--- a/src/tracker-extract/10-ico.rule
+++ b/src/tracker-extract/10-ico.rule
@@ -3,3 +3,4 @@ ModulePath=libextract-icon.so
 MimeTypes=image/vnd.microsoft.icon
 FallbackRdfTypes=nfo:Image;nfo:Icon;
 Graph=tracker:Pictures
+Hash=@hash@
diff --git a/src/tracker-extract/10-jpeg.rule b/src/tracker-extract/10-jpeg.rule
index 8d2a5d7c3..fb580794d 100644
--- a/src/tracker-extract/10-jpeg.rule
+++ b/src/tracker-extract/10-jpeg.rule
@@ -3,3 +3,4 @@ ModulePath=libextract-jpeg.so
 MimeTypes=image/jpeg
 FallbackRdfTypes=nfo:Image;nmm:Photo;
 Graph=tracker:Pictures
+Hash=@hash@
diff --git a/src/tracker-extract/10-mp3.rule b/src/tracker-extract/10-mp3.rule
index a88ab9c0a..913a691ef 100644
--- a/src/tracker-extract/10-mp3.rule
+++ b/src/tracker-extract/10-mp3.rule
@@ -3,3 +3,4 @@ ModulePath=libextract-mp3.so
 MimeTypes=audio/mpeg;audio/x-mp3;
 FallbackRdfTypes=nmm:MusicPiece;nfo:Audio;
 Graph=tracker:Audio
+Hash=@hash@
diff --git a/src/tracker-extract/10-msoffice.rule b/src/tracker-extract/10-msoffice.rule
index 65cae3e32..3101b70a0 100644
--- a/src/tracker-extract/10-msoffice.rule
+++ b/src/tracker-extract/10-msoffice.rule
@@ -3,3 +3,4 @@ ModulePath=libextract-msoffice.so
 
MimeTypes=application/vnd.ms-word;application/vnd.ms-word.*;application/vnd.ms-powerpoint;application/vnd.ms-excel;application/vnd.ms-access;application/vnd.ms-publisher;application/vnd.ms-tnef;application/vnd.ms-word;application/vnd.ms-works;application/vnd.ms-wpl;application/msword;
 FallbackRdfTypes=nfo:Document
 Graph=tracker:Documents
+Hash=@hash@
diff --git a/src/tracker-extract/10-oasis.rule b/src/tracker-extract/10-oasis.rule
index f3187adf9..6deaa6b95 100644
--- a/src/tracker-extract/10-oasis.rule
+++ b/src/tracker-extract/10-oasis.rule
@@ -3,3 +3,4 @@ ModulePath=libextract-oasis.so
 MimeTypes=application/vnd.oasis.opendocument.*
 FallbackRdfTypes=nfo:PaginatedTextDocument
 Graph=tracker:Documents
+Hash=@hash@
diff --git a/src/tracker-extract/10-pdf.rule b/src/tracker-extract/10-pdf.rule
index a72f0f4a5..758de61ac 100644
--- a/src/tracker-extract/10-pdf.rule
+++ b/src/tracker-extract/10-pdf.rule
@@ -3,3 +3,4 @@ ModulePath=libextract-pdf.so
 MimeTypes=application/pdf
 FallbackRdfTypes=nfo:PaginatedTextDocument
 Graph=tracker:Documents
+Hash=@hash@
diff --git a/src/tracker-extract/10-png.rule b/src/tracker-extract/10-png.rule
index 9bc90ac8a..4a648653b 100644
--- a/src/tracker-extract/10-png.rule
+++ b/src/tracker-extract/10-png.rule
@@ -3,3 +3,4 @@ ModulePath=libextract-png.so
 MimeTypes=image/png;sketch/png;
 FallbackRdfTypes=nfo:Image;nmm:Photo;
 Graph=tracker:Pictures
+Hash=@hash@
diff --git a/src/tracker-extract/10-ps.rule b/src/tracker-extract/10-ps.rule
index a34663bda..0804cc39b 100644
--- a/src/tracker-extract/10-ps.rule
+++ b/src/tracker-extract/10-ps.rule
@@ -3,3 +3,4 @@ ModulePath=libextract-ps.so
 MimeTypes=application/x-gzpostscript;application/postscript;
 FallbackRdfTypes=nfo:PaginatedTextDocument
 Graph=tracker:Documents
+Hash=@hash@
diff --git a/src/tracker-extract/10-raw.rule b/src/tracker-extract/10-raw.rule
index e86a1227c..af5a58618 100644
--- a/src/tracker-extract/10-raw.rule
+++ b/src/tracker-extract/10-raw.rule
@@ -3,3 +3,4 @@ ModulePath=libextract-raw.so
 
MimeTypes=image/x-dcraw;image/x-adobe-dng;image/x-canon-cr2;image/x-canon-crw;image/x-epson-erf;image/x-fuji-raf;image/x-minolta-mrw;image/x-nikon-nef;image/x-olympus-orf;image/x-panasonic-rw;image/x-pentax-pef;image/x-raw;image/x-samsung-raw;image/x-sigma-x3f;image/x-sony-arw;image/x-sony-srf;image/x-sony-sr2;
 FallbackRdfTypes=nfo:Image;nmm:Photo;
 Graph=tracker:Pictures
+Hash=@hash@
diff --git a/src/tracker-extract/10-svg.rule b/src/tracker-extract/10-svg.rule
index 7cfa23501..54441cb30 100644
--- a/src/tracker-extract/10-svg.rule
+++ b/src/tracker-extract/10-svg.rule
@@ -2,3 +2,4 @@
 MimeTypes=image/svg+xml;image/svg+xml-compressed;
 FallbackRdfTypes=nfo:Image;nfo:VectorImage;
 Graph=tracker:Pictures
+Hash=@hash@
diff --git a/src/tracker-extract/10-tiff.rule b/src/tracker-extract/10-tiff.rule
index db71abfc2..7aa3c3707 100644
--- a/src/tracker-extract/10-tiff.rule
+++ b/src/tracker-extract/10-tiff.rule
@@ -3,3 +3,4 @@ ModulePath=libextract-tiff.so
 MimeTypes=image/tiff
 FallbackRdfTypes=nfo:Image;nmm:Photo;
 Graph=tracker:Pictures
+Hash=@hash@
diff --git a/src/tracker-extract/10-vorbis.rule b/src/tracker-extract/10-vorbis.rule
index cb175c571..2cd9b22a5 100644
--- a/src/tracker-extract/10-vorbis.rule
+++ b/src/tracker-extract/10-vorbis.rule
@@ -3,3 +3,4 @@ ModulePath=libextract-vorbis.so
 MimeTypes=audio/x-vorbis+ogg;application/ogg;
 FallbackRdfTypes=nmm:MusicPiece;nfo:Audio;
 Graph=tracker:Audio
+Hash=@hash@
diff --git a/src/tracker-extract/10-xps.rule b/src/tracker-extract/10-xps.rule
index 2ebd186ea..e9ea665ff 100644
--- a/src/tracker-extract/10-xps.rule
+++ b/src/tracker-extract/10-xps.rule
@@ -3,3 +3,4 @@ ModulePath=libextract-xps.so
 MimeTypes=application/oxps;application/vnd.ms-xpsdocument;
 FallbackRdfTypes=nfo:PaginatedTextDocument
 Graph=tracker:Documents
+Hash=@hash@
diff --git a/src/tracker-extract/11-iso.rule b/src/tracker-extract/11-iso.rule
index 0a3daf575..3ee7ec82c 100644
--- a/src/tracker-extract/11-iso.rule
+++ b/src/tracker-extract/11-iso.rule
@@ -3,3 +3,4 @@ ModulePath=libextract-iso.so
 MimeTypes=application/x-cd-image
 FallbackRdfTypes=nfo:FilesystemImage
 Graph=tracker:Software
+Hash=@hash@
diff --git a/src/tracker-extract/11-msoffice-xml.rule b/src/tracker-extract/11-msoffice-xml.rule
index 8c0dbb00c..87b85c6d5 100644
--- a/src/tracker-extract/11-msoffice-xml.rule
+++ b/src/tracker-extract/11-msoffice-xml.rule
@@ -3,3 +3,4 @@ ModulePath=libextract-msoffice-xml.so
 
MimeTypes=application/vnd.openxmlformats-officedocument.presentationml.presentation;application/vnd.openxmlformats-officedocument.presentationml.slideshow;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;application/vnd.openxmlformats-officedocument.wordprocessingml.document;
 FallbackRdfTypes=nfo:PaginatedTextDocument
 Graph=tracker:Documents
+Hash=@hash@
diff --git a/src/tracker-extract/15-gstreamer-guess.rule b/src/tracker-extract/15-gstreamer-guess.rule
index 6225b1b5b..c8b1ee093 100644
--- a/src/tracker-extract/15-gstreamer-guess.rule
+++ b/src/tracker-extract/15-gstreamer-guess.rule
@@ -3,3 +3,4 @@ ModulePath=libextract-gstreamer.so
 MimeTypes=video/3gpp;video/mp4;video/x-ms-asf;application/vnd.ms-asf;application/vnd.rn-realmedia;
 FallbackRdfTypes=nfo:Media;nfo:Video;
 Graph=tracker:Video
+Hash=@hash@
diff --git a/src/tracker-extract/15-playlist.rule b/src/tracker-extract/15-playlist.rule
index c8ceb3a3a..5645325e6 100644
--- a/src/tracker-extract/15-playlist.rule
+++ b/src/tracker-extract/15-playlist.rule
@@ -3,3 +3,4 @@ ModulePath=libextract-playlist.so
 
MimeTypes=audio/x-mpegurl;audio/mpegurl;audio/x-scpls;audio/x-pn-realaudio;application/ram;application/vnd.ms-wpl;application/smil;audio/x-ms-asx;
 FallbackRdfTypes=nmm:Playlist;nfo:MediaList;
 Graph=tracker:Audio
+Hash=@hash@
diff --git a/src/tracker-extract/15-source-code.rule b/src/tracker-extract/15-source-code.rule
index 69e3224b6..07e4b320b 100644
--- a/src/tracker-extract/15-source-code.rule
+++ b/src/tracker-extract/15-source-code.rule
@@ -3,3 +3,4 @@ ModulePath=libextract-text.so
 
MimeTypes=text/x-csrc;text/x-c++src;text/x-chdr;text/x-vala;text/x-java;application/javascript;application/x-php;text/x-python;application/x-perl;application/x-shellscript;text/x-fortran;text/x-pascal;
 FallbackRdfTypes=nfo:SourceCode;nfo:PlainTextDocument;
 Graph=tracker:Documents
+Hash=@hash@
diff --git a/src/tracker-extract/90-gstreamer-audio-generic.rule 
b/src/tracker-extract/90-gstreamer-audio-generic.rule
index fd8bcbe1f..130646ee0 100644
--- a/src/tracker-extract/90-gstreamer-audio-generic.rule
+++ b/src/tracker-extract/90-gstreamer-audio-generic.rule
@@ -3,3 +3,4 @@ ModulePath=libextract-gstreamer.so
 MimeTypes=audio/*;
 FallbackRdfTypes=nfo:Audio;
 Graph=tracker:Audio
+Hash=@hash@
diff --git a/src/tracker-extract/90-gstreamer-video-generic.rule 
b/src/tracker-extract/90-gstreamer-video-generic.rule
index c40cb8b99..ad0b90d54 100644
--- a/src/tracker-extract/90-gstreamer-video-generic.rule
+++ b/src/tracker-extract/90-gstreamer-video-generic.rule
@@ -3,3 +3,4 @@ ModulePath=libextract-gstreamer.so
 MimeTypes=video/*;
 FallbackRdfTypes=nmm:Video;
 Graph=tracker:Video
+Hash=@hash@
diff --git a/src/tracker-extract/90-libav-audio-generic.rule b/src/tracker-extract/90-libav-audio-generic.rule
index 905f5c700..2f1827ee9 100644
--- a/src/tracker-extract/90-libav-audio-generic.rule
+++ b/src/tracker-extract/90-libav-audio-generic.rule
@@ -3,3 +3,4 @@ ModulePath=libextract-libav.so
 MimeTypes=audio/*;
 FallbackRdfTypes=nmm:MusicPiece;nfo:Audio;
 Graph=tracker:Audio
+Hash=@hash@
diff --git a/src/tracker-extract/90-libav-video-generic.rule b/src/tracker-extract/90-libav-video-generic.rule
index 3a2ffa61b..0b57d3010 100644
--- a/src/tracker-extract/90-libav-video-generic.rule
+++ b/src/tracker-extract/90-libav-video-generic.rule
@@ -3,3 +3,4 @@ ModulePath=libextract-libav.so
 MimeTypes=video/*;
 FallbackRdfTypes=nmm:Video;
 Graph=tracker:Video
+Hash=@hash@
diff --git a/src/tracker-extract/90-text-generic.rule b/src/tracker-extract/90-text-generic.rule
index 341d4f004..661bc5061 100644
--- a/src/tracker-extract/90-text-generic.rule
+++ b/src/tracker-extract/90-text-generic.rule
@@ -3,3 +3,4 @@ ModulePath=libextract-text.so
 MimeTypes=text/*
 FallbackRdfTypes=nfo:Document;nfo:PlainTextDocument;
 Graph=tracker:Documents
+Hash=@hash@
diff --git a/src/tracker-extract/calculate-hash.sh b/src/tracker-extract/calculate-hash.sh
new file mode 100755
index 000000000..223d9b04c
--- /dev/null
+++ b/src/tracker-extract/calculate-hash.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+cat $@ | sha256sum | cut -f 1 -d ' '
diff --git a/src/tracker-extract/meson.build b/src/tracker-extract/meson.build
index f2e03e8b7..4dc137b8a 100644
--- a/src/tracker-extract/meson.build
+++ b/src/tracker-extract/meson.build
@@ -124,7 +124,15 @@ foreach module : modules
     install: true,
     install_dir: tracker_extract_modules_dir)
 
-  install_data(rules, install_dir: tracker_extract_rules_dir)
+  hash = run_command('calculate-hash.sh', sources)
+
+  foreach rule : rules
+    configure_file(input: rule,
+                   output: '@PLAINNAME@',
+                   install: true,
+                   install_dir: tracker_extract_rules_dir,
+                   configuration: { 'hash': hash.stdout() })
+  endforeach
 
   enabled_rule_files += rules
 endforeach


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]