diff --git a/src/libtracker-sparql/core/tracker-data-manager.c b/src/libtracker-sparql/core/tracker-data-manager.c index 3bae316503ef23388ce69642b273ce7af0c41cd4..827156b14470d6acf13435bf34b504b128933e49 100644 --- a/src/libtracker-sparql/core/tracker-data-manager.c +++ b/src/libtracker-sparql/core/tracker-data-manager.c @@ -2481,6 +2481,8 @@ tracker_data_manager_initable_init (GInitable *initable, if (create_db) tracker_db_manager_rollback_db_creation (manager->db_manager); + g_clear_object (&manager->data_update); + g_clear_object (&manager->db_manager); g_clear_object (¤t_ontology); g_clear_object (&db_ontology); g_free (checksum); diff --git a/src/libtracker-sparql/meson.build b/src/libtracker-sparql/meson.build index 1b353dee6534219ee4e33f50e5f997cbf7cc178d..678423d73fd23d70f553c69ec1cbbfb811dfd178 100644 --- a/src/libtracker-sparql/meson.build +++ b/src/libtracker-sparql/meson.build @@ -111,7 +111,7 @@ libtracker_sparql_private = static_library('tracker-sparql-private', dependencies: [libtracker_sparql_dependencies], gnu_symbol_visibility: 'hidden', - include_directories: [core_incs], + include_directories: [core_incs, ontology_incs], ) tracker_sparql_private_dep = declare_dependency( diff --git a/src/libtracker-sparql/tracker-connection.c b/src/libtracker-sparql/tracker-connection.c index 159fe3133c06f24277ad607fa26731992925bd3a..5c8d3296a0fe7abd7847822dec3386dfa9d5f72a 100644 --- a/src/libtracker-sparql/tracker-connection.c +++ b/src/libtracker-sparql/tracker-connection.c @@ -115,6 +115,9 @@ tracker_sparql_connection_class_init (TrackerSparqlConnectionClass *klass) /* Initialize debug flags */ tracker_get_debug_flags (); + + /* Initialize GResources */ + tracker_ensure_resources (); } gboolean diff --git a/src/libtracker-sparql/tracker-private.h b/src/libtracker-sparql/tracker-private.h index eef366d510c2f2b8b41450eea943fe5cd82492cf..86231d8d7caf243d1a240a53946138d46044ad0b 100644 --- a/src/libtracker-sparql/tracker-private.h +++ b/src/libtracker-sparql/tracker-private.h @@ -377,3 +377,5 @@ GBytes * tracker_sparql_make_langstring (const gchar *str, gboolean tracker_rdf_format_pick_for_file (GFile *file, TrackerRdfFormat *format_out); + +void tracker_ensure_resources (void); diff --git a/src/libtracker-sparql/tracker-utils.c b/src/libtracker-sparql/tracker-utils.c index 513de958dc02c99f33d54a11f2462f6d59bf4b85..1e605bbef8c264461b7c5573611f866897c2f7fa 100644 --- a/src/libtracker-sparql/tracker-utils.c +++ b/src/libtracker-sparql/tracker-utils.c @@ -23,6 +23,9 @@ #include "tracker-enums.h" +#include "tracker-gresources.h" +#include "tracker-nepomuk-gresources.h" + #include static const char *extensions[] = { @@ -120,6 +123,8 @@ tracker_sparql_get_uuid_urn (void) GFile * tracker_sparql_get_ontology_nepomuk (void) { + tracker_ensure_resources (); + return g_file_new_for_uri ("resource://org/freedesktop/tracker/nepomuk"); } @@ -171,3 +176,19 @@ tracker_rdf_format_pick_for_file (GFile *file, g_free (uri); return TRUE; } + +static gpointer +register_resources (gpointer data) +{ + builtin_ontology_register_resource (); + nepomuk_ontology_register_resource (); + return NULL; +} + +void +tracker_ensure_resources (void) +{ + static GOnce register_resources_once = G_ONCE_INIT; + + g_once (®ister_resources_once, register_resources, NULL); +} diff --git a/src/ontologies/meson.build b/src/ontologies/meson.build index 4437049e57118517a250d740e6ed53079aa7e15a..26ef32d0fbe621fbab78b63bf8e41f0edf526af9 100644 --- a/src/ontologies/meson.build +++ b/src/ontologies/meson.build @@ -31,5 +31,14 @@ nepomuk = files( 'nepomuk/93-libosinfo.ontology', ) -tracker_gresources = gnome.compile_resources('tracker_gresources', 'builtin-ontology.gresource.xml') -tracker_nepomuk_gresources = gnome.compile_resources('tracker_nepomuk_gresources', 'nepomuk-ontology.gresource.xml') +ontology_incs = include_directories('.') + +tracker_gresources = gnome.compile_resources( + 'tracker-gresources', + 'builtin-ontology.gresource.xml', + extra_args: ['--manual-register']) + +tracker_nepomuk_gresources = gnome.compile_resources( + 'tracker-nepomuk-gresources', + 'nepomuk-ontology.gresource.xml', + extra_args: ['--manual-register'])