Hello community, here is the log from the commit of package tracker for openSUSE:Factory checked in at 2020-05-16 22:26:07 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/tracker (Old) and /work/SRC/openSUSE:Factory/.tracker.new.2738 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "tracker" Sat May 16 22:26:07 2020 rev:130 rq:805783 version:2.3.4 Changes: -------- --- /work/SRC/openSUSE:Factory/tracker/tracker.changes 2020-04-22 20:41:50.610082639 +0200 +++ /work/SRC/openSUSE:Factory/.tracker.new.2738/tracker.changes 2020-05-16 22:26:14.589261895 +0200 @@ -1,0 +2,6 @@ +Thu May 14 12:41:32 UTC 2020 - Dominique Leuenberger <dims...@opensuse.org> + +- Add tracker-ontology-upgrades.patch: libtracker-data: Improve + changes over single valued ontology properties (boo#1170587). + +------------------------------------------------------------------- New: ---- tracker-ontology-upgrades.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ tracker.spec ++++++ --- /var/tmp/diff_new_pack.fGnoP2/_old 2020-05-16 22:26:16.373265557 +0200 +++ /var/tmp/diff_new_pack.fGnoP2/_new 2020-05-16 22:26:16.377265565 +0200 @@ -30,7 +30,8 @@ Source0: https://download.gnome.org/sources/tracker/2.3/%{name}-%{version}.tar.xz # PATCH-FIX-UPSTREAM tracker-Use-correct-signature.patch -- tracker-store: Use correct signature for DBusSignalCallback Patch0: tracker-Use-correct-signature.patch - +# PATCH-FIX-UPSTREAM tracker-ontology-upgrades.patch boo#1170587 dims...@opensuse.org -- Fix ontology migration from very old tracker versions +Patch1: tracker-ontology-upgrades.patch BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: glib2-devel >= 2.46.0 ++++++ tracker-ontology-upgrades.patch ++++++ >From e4303edce3c70dcd60300d6b72761cdc8d89121e Mon Sep 17 00:00:00 2001 From: Carlos Garnacho <carl...@gnome.org> Date: Wed, 13 May 2020 19:41:55 +0200 Subject: [PATCH] libtracker-data: Improve changes over single valued ontology properties Things like rdfs:label and rdfs:comment that are not tracker through the TrackerOntology and are single-valued may result in errors if there's changes on those. Handle those better by replacing the value instead of trying to insert over it. --- src/libtracker-data/tracker-data-manager.c | 43 +++++++++++++--------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/src/libtracker-data/tracker-data-manager.c b/src/libtracker-data/tracker-data-manager.c index dadb0f585..22f8749fc 100644 --- a/src/libtracker-data/tracker-data-manager.c +++ b/src/libtracker-data/tracker-data-manager.c @@ -1962,6 +1962,7 @@ tracker_data_ontology_process_statement (TrackerDataManager *manager, gboolean in_update, gboolean ignore_nao_last_modified) { + TrackerProperty *property; GError *error = NULL; if (g_strcmp0 (predicate, RDF_TYPE) == 0) { @@ -2042,28 +2043,36 @@ tracker_data_ontology_process_statement (TrackerDataManager *manager, } } - if (is_uri) { - tracker_data_insert_statement_with_uri (manager->data_update, graph, subject, - predicate, object, - &error); + property = tracker_ontologies_get_property_by_uri (manager->ontologies, predicate); - if (error != NULL) { - g_critical ("%s", error->message); - g_error_free (error); - return; + if (is_uri) { + if (tracker_property_get_is_new (property) || + tracker_property_get_multiple_values (property)) { + tracker_data_insert_statement_with_uri (manager->data_update, NULL, + subject, predicate, object, + &error); + } else { + tracker_data_update_statement (manager->data_update, NULL, + subject, predicate, object, + &error); } - } else { - tracker_data_insert_statement_with_string (manager->data_update, graph, subject, - predicate, object, - &error); - - if (error != NULL) { - g_critical ("%s", error->message); - g_error_free (error); - return; + if (tracker_property_get_is_new (property) || + tracker_property_get_multiple_values (property)) { + tracker_data_insert_statement_with_string (manager->data_update, NULL, + subject, predicate, object, + &error); + } else { + tracker_data_update_statement (manager->data_update, NULL, + subject, predicate, object, + &error); } } + + if (error != NULL) { + g_critical ("%s", error->message); + g_error_free (error); + } } static void -- 2.26.2