forked from pool/tracker
Accepting request 1087282 from GNOME:Next
- 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. OBS-URL: https://build.opensuse.org/request/show/1087282 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/tracker?expand=0&rev=251
This commit is contained in:
parent
654b5f8f5b
commit
88f36f56ab
115
63ea8f1a.patch
Normal file
115
63ea8f1a.patch
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
From 63ea8f1a2a603c356ad770ae7567246e7520f298 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Carlos Garnacho <carlosg@gnome.org>
|
||||||
|
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
|
||||||
|
|
BIN
tracker-3.5.1.tar.xz
(Stored with Git LFS)
BIN
tracker-3.5.1.tar.xz
(Stored with Git LFS)
Binary file not shown.
3
tracker-3.5.2.tar.xz
Normal file
3
tracker-3.5.2.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:e93d40bc76103a0a24693818cdab2b34e76c64e260b3e762784faeec4ba4a8b3
|
||||||
|
size 2566540
|
@ -1,3 +1,15 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat May 13 11:23:38 UTC 2023 - Bjørn Lie <bjorn.lie@gmail.com>
|
||||||
|
|
||||||
|
- 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.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Apr 25 16:34:18 UTC 2023 - Bjørn Lie <bjorn.lie@gmail.com>
|
Tue Apr 25 16:34:18 UTC 2023 - Bjørn Lie <bjorn.lie@gmail.com>
|
||||||
|
|
||||||
|
@ -21,13 +21,15 @@
|
|||||||
%define RPMTrackerAPI 3_0
|
%define RPMTrackerAPI 3_0
|
||||||
|
|
||||||
Name: tracker
|
Name: tracker
|
||||||
Version: 3.5.1
|
Version: 3.5.2
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Object database, tag/metadata database, search tool and indexer
|
Summary: Object database, tag/metadata database, search tool and indexer
|
||||||
License: GPL-2.0-or-later
|
License: GPL-2.0-or-later
|
||||||
Group: Productivity/Other
|
Group: Productivity/Other
|
||||||
URL: https://wiki.gnome.org/Projects/Tracker
|
URL: https://wiki.gnome.org/Projects/Tracker
|
||||||
Source0: https://download.gnome.org/sources/tracker/3.5/%{name}-%{version}.tar.xz
|
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: asciidoc
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
@ -134,7 +136,8 @@ This subpackage contains the data files for the Tracker miners.
|
|||||||
%lang_package
|
%lang_package
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%autosetup -p1
|
%autosetup -N
|
||||||
|
%patch0 -R -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%meson \
|
%meson \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user