diff --git a/0001-decouple-fts-initialization-from-ontologies.patch b/0001-decouple-fts-initialization-from-ontologies.patch deleted file mode 100644 index b65850e..0000000 --- a/0001-decouple-fts-initialization-from-ontologies.patch +++ /dev/null @@ -1,313 +0,0 @@ -From 26c69a82ceb44d0f4311cb04d38bcd44b94634e2 Mon Sep 17 00:00:00 2001 -From: Carlos Garnacho -Date: Thu, 7 Dec 2023 09:33:44 +0100 -Subject: [PATCH] libtracker-sparql: Decouple FTS initialization from - ontologies - -Since we just need the FTS properties for fts:offsets being called -at runtime, we can pass the TrackerDataManager (that we know early -in startup) and let it figure out the FTS properties from there -when it's actually needed. - -This is just the refactor to make that possible, there's no -functional changes in this commit. ---- - .../core/tracker-data-manager.c | 13 +++-- - .../core/tracker-db-interface-sqlite.c | 29 ++++++----- - .../core/tracker-db-interface-sqlite.h | 5 +- - .../core/tracker-fts-tokenizer.c | 48 +++++++++++++++++-- - .../core/tracker-fts-tokenizer.h | 4 +- - src/libtracker-sparql/core/tracker-fts.c | 40 ---------------- - src/libtracker-sparql/core/tracker-fts.h | 5 -- - 7 files changed, 75 insertions(+), 69 deletions(-) - -diff --git a/src/libtracker-sparql/core/tracker-data-manager.c b/src/libtracker-sparql/core/tracker-data-manager.c -index ef3497a834..f0797d642d 100644 ---- a/src/libtracker-sparql/core/tracker-data-manager.c -+++ b/src/libtracker-sparql/core/tracker-data-manager.c -@@ -3863,11 +3863,14 @@ tracker_data_manager_init_fts (TrackerDataManager *manager, - gboolean create, - GError **error) - { -- return tracker_db_interface_sqlite_fts_init (iface, -- database, -- manager->ontologies, -- create, -- error); -+ if (!tracker_db_interface_sqlite_fts_init (iface, manager->flags, error)) -+ return FALSE; -+ if (!create) -+ return TRUE; -+ return tracker_db_interface_sqlite_fts_create_table (iface, -+ database, -+ manager->ontologies, -+ error); - } - - static gboolean -diff --git a/src/libtracker-sparql/core/tracker-db-interface-sqlite.c b/src/libtracker-sparql/core/tracker-db-interface-sqlite.c -index c001c9aafc..05773bd3e5 100644 ---- a/src/libtracker-sparql/core/tracker-db-interface-sqlite.c -+++ b/src/libtracker-sparql/core/tracker-db-interface-sqlite.c -@@ -37,6 +37,7 @@ - #include - - #include "tracker-fts.h" -+#include "tracker-fts-tokenizer.h" - #include "tracker-collation.h" - #include "tracker-db-interface-sqlite.h" - #include "tracker-db-manager.h" -@@ -2027,20 +2028,26 @@ close_database (TrackerDBInterface *db_interface) - } - - gboolean --tracker_db_interface_sqlite_fts_init (TrackerDBInterface *db_interface, -- const gchar *database, -- TrackerOntologies *ontologies, -- gboolean create, -- GError **error) -+tracker_db_interface_sqlite_fts_init (TrackerDBInterface *db_interface, -+ TrackerDBManagerFlags fts_flags, -+ GError **error) - { -- GError *inner_error = NULL; -+ return tracker_tokenizer_initialize (db_interface->db, -+ db_interface, -+ fts_flags, -+ db_interface->user_data, -+ error); -+} - -- if (!tracker_fts_init_db (db_interface->db, db_interface, -- db_interface->flags, ontologies, error)) -- return FALSE; -+gboolean -+tracker_db_interface_sqlite_fts_create_table (TrackerDBInterface *db_interface, -+ const gchar *database, -+ TrackerOntologies *ontologies, -+ GError **error) -+{ -+ GError *inner_error = NULL; - -- if (create && -- !tracker_fts_create_table (db_interface->db, database, "fts5", -+ if (!tracker_fts_create_table (db_interface->db, database, "fts5", - ontologies, - &inner_error)) { - g_propagate_prefixed_error (error, -diff --git a/src/libtracker-sparql/core/tracker-db-interface-sqlite.h b/src/libtracker-sparql/core/tracker-db-interface-sqlite.h -index 64b0be2a78..cb779ea3c7 100644 ---- a/src/libtracker-sparql/core/tracker-db-interface-sqlite.h -+++ b/src/libtracker-sparql/core/tracker-db-interface-sqlite.h -@@ -23,6 +23,7 @@ - #include "config.h" - - #include "tracker-db-interface.h" -+#include "tracker-db-manager.h" - - G_BEGIN_DECLS - -@@ -46,9 +47,11 @@ TrackerDBInterface *tracker_db_interface_sqlite_new (const gc - gint64 tracker_db_interface_sqlite_get_last_insert_id (TrackerDBInterface *interface); - void tracker_db_interface_sqlite_enable_shared_cache (void); - gboolean tracker_db_interface_sqlite_fts_init (TrackerDBInterface *interface, -+ TrackerDBManagerFlags fts_flags, -+ GError **error); -+gboolean tracker_db_interface_sqlite_fts_create_table (TrackerDBInterface *interface, - const gchar *database, - TrackerOntologies *ontologies, -- gboolean create, - GError **error); - void tracker_db_interface_sqlite_reset_collator (TrackerDBInterface *interface); - gboolean tracker_db_interface_sqlite_wal_checkpoint (TrackerDBInterface *interface, -diff --git a/src/libtracker-sparql/core/tracker-fts-tokenizer.c b/src/libtracker-sparql/core/tracker-fts-tokenizer.c -index 9cf71b99f0..2e6dd0591c 100644 ---- a/src/libtracker-sparql/core/tracker-fts-tokenizer.c -+++ b/src/libtracker-sparql/core/tracker-fts-tokenizer.c -@@ -48,6 +48,7 @@ struct TrackerTokenizer { - - struct TrackerTokenizerFunctionData { - TrackerDBInterface *interface; -+ TrackerDataManager *data_manager; - gchar **property_names; - }; - -@@ -169,6 +170,37 @@ offsets_tokenizer_func (void *data, - return SQLITE_OK; - } - -+static gboolean -+ensure_fts_properties (TrackerTokenizerFunctionData *data) -+{ -+ TrackerOntologies *ontologies; -+ TrackerProperty **properties; -+ GArray *property_names; -+ guint i, len; -+ -+ if (data->property_names) -+ return data->property_names[0] != NULL; -+ -+ ontologies = tracker_data_manager_get_ontologies (data->data_manager); -+ -+ property_names = g_array_new (TRUE, FALSE, sizeof (gchar *)); -+ properties = tracker_ontologies_get_properties (ontologies, &len); -+ -+ for (i = 0; i < len; i++) { -+ gchar *column; -+ -+ if (!tracker_property_get_fulltext_indexed (properties[i])) -+ continue; -+ -+ column = g_strdup (tracker_property_get_name (properties[i])); -+ g_array_append_val (property_names, column); -+ } -+ -+ data->property_names = (gchar **) g_array_free (property_names, FALSE); -+ -+ return data->property_names[0] != NULL; -+} -+ - static void - tracker_offsets_function (const Fts5ExtensionApi *api, - Fts5Context *fts_ctx, -@@ -189,6 +221,12 @@ tracker_offsets_function (const Fts5ExtensionApi *api, - } - - data = api->xUserData (fts_ctx); -+ -+ if (!ensure_fts_properties (data)) { -+ sqlite3_result_null (ctx); -+ return; -+ } -+ - rc = api->xInstCount (fts_ctx, &n_hits); - - if (rc != SQLITE_OK) { -@@ -296,14 +334,14 @@ error: - } - - static TrackerTokenizerFunctionData * --tracker_tokenizer_function_data_new (TrackerDBInterface *interface, -- const gchar **property_names) -+tracker_tokenizer_function_data_new (TrackerDBInterface *interface, -+ TrackerDataManager *data_manager) - { - TrackerTokenizerFunctionData *data; - - data = g_new0 (TrackerTokenizerFunctionData, 1); - data->interface = interface; -- data->property_names = g_strdupv ((gchar **) property_names); -+ data->data_manager = data_manager; - - return data; - } -@@ -319,7 +357,7 @@ gboolean - tracker_tokenizer_initialize (sqlite3 *db, - TrackerDBInterface *interface, - TrackerDBManagerFlags flags, -- const gchar **property_names, -+ TrackerDataManager *data_manager, - GError **error) - { - TrackerTokenizerData *data; -@@ -338,7 +376,7 @@ tracker_tokenizer_initialize (sqlite3 *db, - tracker_tokenizer_data_free); - - /* Offsets */ -- func_data = tracker_tokenizer_function_data_new (interface, property_names); -+ func_data = tracker_tokenizer_function_data_new (interface, data_manager); - api->xCreateFunction (api, "tracker_offsets", func_data, - &tracker_offsets_function, - (GDestroyNotify) tracker_tokenizer_function_data_free); -diff --git a/src/libtracker-sparql/core/tracker-fts-tokenizer.h b/src/libtracker-sparql/core/tracker-fts-tokenizer.h -index 57bca46a56..76e0bbcbb9 100644 ---- a/src/libtracker-sparql/core/tracker-fts-tokenizer.h -+++ b/src/libtracker-sparql/core/tracker-fts-tokenizer.h -@@ -22,7 +22,7 @@ - #include - #include - --#include "tracker-db-manager.h" -+#include "tracker-data-manager.h" - - #ifndef __TRACKER_FTS_TOKENIZER_H__ - #define __TRACKER_FTS_TOKENIZER_H__ -@@ -30,7 +30,7 @@ - gboolean tracker_tokenizer_initialize (sqlite3 *db, - TrackerDBInterface *interface, - TrackerDBManagerFlags flags, -- const gchar **property_names, -+ TrackerDataManager *data_manager, - GError **error); - - #endif /* __TRACKER_FTS_TOKENIZER_H__ */ -diff --git a/src/libtracker-sparql/core/tracker-fts.c b/src/libtracker-sparql/core/tracker-fts.c -index 96ec9e9e76..f622855ee4 100644 ---- a/src/libtracker-sparql/core/tracker-fts.c -+++ b/src/libtracker-sparql/core/tracker-fts.c -@@ -43,46 +43,6 @@ has_fts_properties (TrackerOntologies *ontologies) - return FALSE; - } - --static gchar ** --get_fts_properties (TrackerOntologies *ontologies) --{ -- TrackerProperty **properties; -- GArray *property_names; -- guint i, len; -- -- property_names = g_array_new (TRUE, FALSE, sizeof (gchar *)); -- properties = tracker_ontologies_get_properties (ontologies, &len); -- -- for (i = 0; i < len; i++) { -- gchar *column; -- -- if (!tracker_property_get_fulltext_indexed (properties[i])) -- continue; -- -- column = g_strdup (tracker_property_get_name (properties[i])); -- g_array_append_val (property_names, column); -- } -- -- return (gchar **) g_array_free (property_names, FALSE); --} -- --gboolean --tracker_fts_init_db (sqlite3 *db, -- TrackerDBInterface *interface, -- TrackerDBManagerFlags flags, -- TrackerOntologies *ontologies, -- GError **error) --{ -- gchar **property_names; -- gboolean retval; -- -- property_names = get_fts_properties (ontologies); -- retval = tracker_tokenizer_initialize (db, interface, flags, (const gchar **) property_names, error); -- g_strfreev (property_names); -- -- return retval; --} -- - gboolean - tracker_fts_create_table (sqlite3 *db, - const gchar *database, -diff --git a/src/libtracker-sparql/core/tracker-fts.h b/src/libtracker-sparql/core/tracker-fts.h -index 4370d3f667..cf3e1d9cbd 100644 ---- a/src/libtracker-sparql/core/tracker-fts.h -+++ b/src/libtracker-sparql/core/tracker-fts.h -@@ -30,11 +30,6 @@ - - G_BEGIN_DECLS - --gboolean tracker_fts_init_db (sqlite3 *db, -- TrackerDBInterface *interface, -- TrackerDBManagerFlags flags, -- TrackerOntologies *ontologies, -- GError **error); - gboolean tracker_fts_create_table (sqlite3 *db, - const gchar *database, - gchar *table_name, --- -GitLab - diff --git a/0002-early-fts-initialization.patch b/0002-early-fts-initialization.patch deleted file mode 100644 index a11cb1d..0000000 --- a/0002-early-fts-initialization.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 373535883c5b89fa1b3cd958274c36bdaf543db6 Mon Sep 17 00:00:00 2001 -From: Carlos Garnacho -Date: Thu, 7 Dec 2023 10:16:16 +0100 -Subject: [PATCH] libtracker-sparql: Move FTS initialization to an earlier - stage - -With SQLite >= 3.44.x, the check_integrity pragma may involve existing -virtual tables and their xIntegrity vmethod. This includes FTS5 tables, -so we need to set up the FTS5 tokenizer at an earlier stage, so that -possible integrity checks happening on startup have everything set up. - -Closes: https://gitlab.gnome.org/GNOME/tracker/-/issues/418 ---- - src/libtracker-sparql/core/tracker-data-manager.c | 2 -- - src/libtracker-sparql/core/tracker-db-manager.c | 5 +++++ - 2 files changed, 5 insertions(+), 2 deletions(-) - -diff --git a/src/libtracker-sparql/core/tracker-data-manager.c b/src/libtracker-sparql/core/tracker-data-manager.c -index f0797d642d..dff6b66542 100644 ---- a/src/libtracker-sparql/core/tracker-data-manager.c -+++ b/src/libtracker-sparql/core/tracker-data-manager.c -@@ -3863,8 +3863,6 @@ tracker_data_manager_init_fts (TrackerDataManager *manager, - gboolean create, - GError **error) - { -- if (!tracker_db_interface_sqlite_fts_init (iface, manager->flags, error)) -- return FALSE; - if (!create) - return TRUE; - return tracker_db_interface_sqlite_fts_create_table (iface, -diff --git a/src/libtracker-sparql/core/tracker-db-manager.c b/src/libtracker-sparql/core/tracker-db-manager.c -index 6952af082b..8427ed71b7 100644 ---- a/src/libtracker-sparql/core/tracker-db-manager.c -+++ b/src/libtracker-sparql/core/tracker-db-manager.c -@@ -783,6 +783,11 @@ tracker_db_manager_create_db_interface (TrackerDBManager *db_manager, - return NULL; - } - -+ if (!tracker_db_interface_sqlite_fts_init (connection, -+ db_manager->flags, -+ error)) -+ return FALSE; -+ - tracker_db_interface_set_max_stmt_cache_size (connection, - TRACKER_DB_STATEMENT_CACHE_TYPE_SELECT, - db_manager->s_cache_size); --- -GitLab - diff --git a/_service b/_service new file mode 100644 index 0000000..829cd9f --- /dev/null +++ b/_service @@ -0,0 +1,19 @@ + + + + git + https://gitlab.gnome.org/GNOME/tracker.git + 3.7.0 + @PARENT_TAG@+@TAG_OFFSET@ + v?(.*)\+0 + \1 + + + + + *.tar + zst + + + + diff --git a/tracker-3.6.0.tar.xz b/tracker-3.6.0.tar.xz deleted file mode 100644 index f9e5ce4..0000000 --- a/tracker-3.6.0.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:52592cfe19baffd16dbe47475be7da750dbd0b6333fd7acb60faa9da5bc40df2 -size 2560980 diff --git a/tracker-3.7.0.obscpio b/tracker-3.7.0.obscpio new file mode 100644 index 0000000..3741f6a --- /dev/null +++ b/tracker-3.7.0.obscpio @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee1098ce36d1b15e225fee87c6a1244864e5da2e74403deda773ca8c6398fb28 +size 10335245 diff --git a/tracker.changes b/tracker.changes index d79becb..30f53f2 100644 --- a/tracker.changes +++ b/tracker.changes @@ -1,9 +1,56 @@ +------------------------------------------------------------------- +Sun Mar 17 09:39:44 UTC 2024 - Dominique Leuenberger + +- Update to version 3.7.0: + + Handle POST requests in HTTP endpoints. + + Fix a number of Coverity and static scan reports. + + Drop deprecated SQLite API. + + Test improvements. + + Updated translations. + +------------------------------------------------------------------- +Thu Mar 7 08:07:16 UTC 2024 - Dominique Leuenberger + +- Update to version 3.7.rc: + + Improve database integrity checks so they don't necessarily + happen after unclean exit, and so there are greater guarantees + to repair the damage. + + Handle HTTPS in SERVICE syntax. + + Fixes for 32-bit platforms. + + Fixes to bash completion. + + Updated translations. + +------------------------------------------------------------------- +Thu Mar 7 06:43:30 UTC 2024 - Dominique Leuenberger + +- Update to version 3.7.beta: + + Add Avahi support to the TrackerEndpointHttp API object. + + There is now an --arg argument in `tracker3 sparql` subcommand + to assign values to parameters in queries. + + CLI subcommands are now split into their own executables. + + Improvements in SPARQL handling. + + Code cleanups and refactors. +- Changes from version 3.7.alpha: + + New TrackerEndpoint access control API. + + New API to map language tagged strings to rdf:langString. + + Embed Nepomuk ontology as a GResource. + + Allow using TrackerEndpoint on private D-Bus connections. + + Cache SPARQL statements in D-Bus endpoints. + + Reduce heap memory usage in large transactions over D-Bus + endpoints. + + Make internals future proof wrt handling of string literals + in SQLite. + + Threading improvements for direct connection SELECT queries. +- Add pkgconfig(avahi-glib) BuildRequires: new dependency. +- Drop 0001-decouple-fts-initialization-from-ontologies.patch and + 0002-early-fts-initialization.patch: fixed upstream. + ------------------------------------------------------------------- Wed Mar 6 10:50:26 UTC 2024 - Yifan Jiang - Add patches to adapt SQLite 3.44 (glgo#GNOME/tracker#418): + 0001-decouple-fts-initialization-from-ontologies.patch - + 0002-early-fts-initialization.patch + + 0002-early-fts-initialization.patch ------------------------------------------------------------------- Mon Sep 18 11:50:17 UTC 2023 - Marcus Meissner diff --git a/tracker.obsinfo b/tracker.obsinfo new file mode 100644 index 0000000..4309a90 --- /dev/null +++ b/tracker.obsinfo @@ -0,0 +1,4 @@ +name: tracker +version: 3.7.0 +mtime: 1710625708 +commit: 86ebd86cb4e51dfd9ab702911dd2e99f7128046b diff --git a/tracker.spec b/tracker.spec index bfa29ea..aa767d8 100644 --- a/tracker.spec +++ b/tracker.spec @@ -21,17 +21,13 @@ %define RPMTrackerAPI 3_0 Name: tracker -Version: 3.6.0 +Version: 3.7.0 Release: 0 Summary: Object database, tag/metadata database, search tool and indexer License: GPL-2.0-or-later Group: Productivity/Other URL: https://wiki.gnome.org/Projects/Tracker -Source0: https://download.gnome.org/sources/tracker/3.6/%{name}-%{version}.tar.xz -# PATCH-FIX-UPSTREAM 0001-decouple-fts-initialization-from-ontologies.patch glgo#GNOME/tracker#418 yfjiang@suse.com -- Decouple FTS initialization from ongologies -Patch0: 0001-decouple-fts-initialization-from-ontologies.patch -# PATCH-FIX-UPSTREAM 0002-early-fts-initialization.patch glgo#GNOME/tracker#418 yfjiang@suse.com -- Move FTS initialization to an earlier stage -Patch1: 0002-early-fts-initialization.patch +Source0: %{name}-%{version}.tar.zst BuildRequires: asciidoc BuildRequires: fdupes @@ -47,6 +43,7 @@ BuildRequires: python3-gobject BuildRequires: sqlite3-devel >= 3.35.2 BuildRequires: vala >= 0.18.0 BuildRequires: zlib-devel +BuildRequires: pkgconfig(avahi-glib) BuildRequires: pkgconfig(dbus-1) BuildRequires: pkgconfig(gdk-pixbuf-2.0) BuildRequires: pkgconfig(gi-docgen) @@ -180,12 +177,18 @@ mkdir %{buildroot}%{_datadir}/tracker3/domain-ontologies %files %license COPYING %{_bindir}/tracker3 +%{_bindir}/tracker3-endpoint +%{_bindir}/tracker3-export +%{_bindir}/tracker3-help +%{_bindir}/tracker3-import +%{_bindir}/tracker3-sparql +%{_bindir}/tracker3-sql +%{_datadir}/bash-completion/completions/tracker3 +%dir %{_datadir}/tracker3 +%{_datadir}/tracker3/commands/ %dir %{_libdir}/tracker-%{TrackerAPI}/ %{_libdir}/tracker-%{TrackerAPI}/libtracker-http-soup3.so %{_libdir}/tracker-%{TrackerAPI}/libtracker-parser-libicu.so -%{_datadir}/bash-completion/completions/tracker3 -%dir %{_datadir}/tracker3/ -%{_libexecdir}/tracker3/ %{_libexecdir}/tracker-xdg-portal-3 %{_mandir}/man1/tracker3-endpoint.1.gz %{_mandir}/man1/tracker3-export.1.gz @@ -198,7 +201,6 @@ mkdir %{buildroot}%{_datadir}/tracker3/domain-ontologies %files -n tracker-data-files %dir %{_datadir}/tracker3/domain-ontologies -%{_datadir}/tracker3/ontologies/ %files -n libtracker-sparql-%{RPMTrackerAPI}-0 %{_libdir}/libtracker-sparql*.so.* @@ -210,8 +212,6 @@ mkdir %{buildroot}%{_datadir}/tracker3/domain-ontologies %doc AUTHORS README.md NEWS %doc %{_datadir}/doc/Tracker-%{TrackerAPI} %{_datadir}/gir-1.0/*.gir -%dir %{_datadir}/tracker3 -%dir %{_datadir}/tracker3/domain-ontologies %dir %{_datadir}/vala %dir %{_datadir}/vala/vapi %{_datadir}/vala/vapi/*.deps