Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package tracker for openSUSE:Factory checked in at 2023-05-19 11:54:40 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/tracker (Old) and /work/SRC/openSUSE:Factory/.tracker.new.1533 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "tracker" Fri May 19 11:54:40 2023 rev:157 rq:1087723 version:3.5.2 Changes: -------- --- /work/SRC/openSUSE:Factory/tracker/tracker.changes 2023-04-27 19:59:35.549452180 +0200 +++ /work/SRC/openSUSE:Factory/.tracker.new.1533/tracker.changes 2023-05-19 11:54:40.802974251 +0200 @@ -1,0 +2,12 @@ +Sat May 13 11:23:38 UTC 2023 - Bjørn Lie <[email protected]> + +- Update to version 3.5.2: + + Fix several possible crashers. + + Fix bashisms in doc generation scripts. + + Fix ISO8601 date strings in cursors on Darwin. + + Plug leak. +- Add 63ea8f1a.patch: Revert build: Detect appropriate strftime() + year modifier at build time. Revert upstream commit for now as it + breaks build for i586. + +------------------------------------------------------------------- Old: ---- tracker-3.5.1.tar.xz New: ---- 63ea8f1a.patch tracker-3.5.2.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ tracker.spec ++++++ --- /var/tmp/diff_new_pack.MU81vh/_old 2023-05-19 11:54:41.278976975 +0200 +++ /var/tmp/diff_new_pack.MU81vh/_new 2023-05-19 11:54:41.282976998 +0200 @@ -21,13 +21,15 @@ %define RPMTrackerAPI 3_0 Name: tracker -Version: 3.5.1 +Version: 3.5.2 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.5/%{name}-%{version}.tar.xz +# PATCH-FIX-OPENSUSE 63ea8f1a.patch -- Revert build: Detect appropriate strftime() year modifier at build time +Patch0: https://gitlab.gnome.org/GNOME/tracker/-/commit/63ea8f1a.patch BuildRequires: asciidoc BuildRequires: fdupes @@ -134,7 +136,8 @@ %lang_package %prep -%autosetup -p1 +%autosetup -N +%patch0 -R -p1 %build %meson \ ++++++ 63ea8f1a.patch ++++++ >From 63ea8f1a2a603c356ad770ae7567246e7520f298 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho <[email protected]> Date: Tue, 2 May 2023 10:27:31 +0200 Subject: [PATCH] build: Detect appropriate strftime() year modifier at build time Different libc implementations (or different platforms) have different bugs. Even though %Y is documented as a 4-digit number, and %C as year/100 in a [00-99] range, they both crap out with years under 1000, using respectively 3 and 1 digits. This would be typically task for a width modifier (e.g. %4Y, or %2C), but that was conversely found to break NixOS on Darwin. Since the existing libc bugs paint us to a corner, detect an appropriate modifier at build time to get a 4-digit year to get true ISO 8601 in our supported [0001-9999] year range. Closes: https://gitlab.gnome.org/GNOME/tracker/-/issues/402 --- config.h.meson.in | 3 ++ meson.build | 35 +++++++++++++++++++ .../core/tracker-db-interface-sqlite.c | 4 +-- 3 files changed, 40 insertions(+), 2 deletions(-) diff --git a/config.h.meson.in b/config.h.meson.in index df4b880b08..2faa1a5860 100644 --- a/config.h.meson.in +++ b/config.h.meson.in @@ -51,3 +51,6 @@ /* Whether RTLD_NOLOAD is defined */ #mesondefine HAVE_RTLD_NOLOAD + +/* Appropriate 4-digit year modifier for strftime() */ +#mesondefine STRFTIME_YEAR_MODIFIER diff --git a/meson.build b/meson.build index 3c147c8f36..6a7f8e1336 100644 --- a/meson.build +++ b/meson.build @@ -198,6 +198,39 @@ else endif endif +################################################################## +# Get an appropriate 4-digit year modifier for strftime +################################################################## +result = cc.run(''' + #include <stdio.h> + #include <string.h> + #include <time.h> + + int main (int argc, char *argv[]) { + char *modifiers[] = { "%Y", "%C%y", "%4Y", "%2C%y", NULL }; + time_t timestamp = -58979923200; /* 0101-01-01T01:01:01Z */ + char *buf[100]; + struct tm tm; + int i; + gmtime_r (×tamp, &tm); + for (i = 0; modifiers[i]; i++) { + strftime (&buf, sizeof buf, modifiers[i], &tm); + if (strcmp (&buf, "0101") == 0) { + printf ("%s", modifiers[i]); + return 0; + } + } + return -1; + } + ''', + name: 'strftime 4-digit year modifier') + +if not result.compiled() or result.returncode() != 0 + error('Libc implementation has broken 4-digit years implementation.') +else + year_modifier = result.stdout() +endif + ################################################################## # Check for libtracker-data and libtracker-fts: Unicode support # @@ -306,6 +339,7 @@ conf.set('TRACKER_MINOR_VERSION', tracker_minor_version) conf.set('TRACKER_MICRO_VERSION', tracker_micro_version) conf.set('TRACKER_INTERFACE_AGE', 0) conf.set('TRACKER_BINARY_AGE', 100 * tracker_minor_version + tracker_micro_version) +conf.set('STRFTIME_YEAR_MODIFIER', '"@0@"'.format(year_modifier)) # Check for RTLD_NOLOAD have_rtld_noload = cc.has_header_symbol('dlfcn.h', 'RTLD_NOLOAD') @@ -399,6 +433,7 @@ summary = [ ' Debug: ' + get_option('debug').to_string(), ' Optimization: ' + get_option('optimization'), ' Compiler: ' + cc.get_id(), + ' 4-digit strftime() year modifier: ' + year_modifier, '\nFeature Support:', ' Unicode support library: ' + unicode_library_name, ' Build with Stemming support: ' + have_libstemmer.to_string(), diff --git a/src/libtracker-sparql/core/tracker-db-interface-sqlite.c b/src/libtracker-sparql/core/tracker-db-interface-sqlite.c index 2aa493ca9c..25e2c519fd 100644 --- a/src/libtracker-sparql/core/tracker-db-interface-sqlite.c +++ b/src/libtracker-sparql/core/tracker-db-interface-sqlite.c @@ -1624,9 +1624,9 @@ function_sparql_print_value (sqlite3_context *context, result_context_function_error (context, fn, "Invalid unix timestamp"); if (prop_type == TRACKER_PROPERTY_TYPE_DATETIME) - retval = strftime ((gchar *) &buf, sizeof (buf), "%2C%y-%m-%dT%TZ", &tm); + retval = strftime ((gchar *) &buf, sizeof (buf), STRFTIME_YEAR_MODIFIER "-%m-%dT%TZ", &tm); else if (prop_type == TRACKER_PROPERTY_TYPE_DATE) - retval = strftime ((gchar *) &buf, sizeof (buf), "%2C%y-%m-%d", &tm); + retval = strftime ((gchar *) &buf, sizeof (buf), STRFTIME_YEAR_MODIFIER "-%m-%d", &tm); else g_assert_not_reached (); -- GitLab ++++++ tracker-3.5.1.tar.xz -> tracker-3.5.2.tar.xz ++++++ ++++ 2919 lines of diff (skipped)
