aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Dokuchaev <danfe@FreeBSD.org>2023-07-31 06:58:58 +0000
committerAlexey Dokuchaev <danfe@FreeBSD.org>2023-07-31 06:58:58 +0000
commit62dc27e0ab67cf20aacccccc61a57ea8edd86555 (patch)
treeef77bb6dd1dbbde72c021560a4c8f796a454c0d4
parent9fc9a5a93f792de3dbbf4ee3d7b11c1b9aad0d90 (diff)
downloadports-62dc27e0ab67cf20aacccccc61a57ea8edd86555.tar.gz
ports-62dc27e0ab67cf20aacccccc61a57ea8edd86555.zip
sysutils/fsearch: try to unbreak the port's build on -CURRENT/i386:
error: incompatible function pointer types passing 'bool (const char *, time_t *, time_t *)' (aka 'bool (const char *, int *, int *)') to parameter of type 'FsearchQueryIntegerParserFunc *' (aka 'bool (*)(const char *, long long *, long long *)') i386 is the only architecture with 32-bit `time_t' and I don't think adding another `FsearchQueryTimeParserFunc' type just to circumvent this [-Wincompatible-function-pointer-types] issue is warranted, or even upstreamable, so simply pass those numbers as `int64_t' as this does not affect internal time-related calculations. Reported by: pkg-fallout
-rw-r--r--sysutils/fsearch/Makefile3
-rw-r--r--sysutils/fsearch/files/patch-src_fsearch__time__utils.c34
2 files changed, 37 insertions, 0 deletions
diff --git a/sysutils/fsearch/Makefile b/sysutils/fsearch/Makefile
index 80ea1f12937d..8353baa30a5c 100644
--- a/sysutils/fsearch/Makefile
+++ b/sysutils/fsearch/Makefile
@@ -23,5 +23,8 @@ post-patch:
@${PRINTF} '\n%s\n%s;\n' int \
'strverscmp(const char *, const char *)' \
>> ${WRKSRC}/src/fsearch_string_utils.h
+ @${REINPLACE_CMD} -e 's,time_t,int64_t,g' \
+ ${WRKSRC}/src/fsearch_time_utils.h \
+ ${WRKSRC}/src/tests/test_time_utils.c
.include <bsd.port.mk>
diff --git a/sysutils/fsearch/files/patch-src_fsearch__time__utils.c b/sysutils/fsearch/files/patch-src_fsearch__time__utils.c
new file mode 100644
index 000000000000..c6def574e2fa
--- /dev/null
+++ b/sysutils/fsearch/files/patch-src_fsearch__time__utils.c
@@ -0,0 +1,34 @@
+--- src/fsearch_time_utils.c.orig 2022-08-22 10:06:20 UTC
++++ src/fsearch_time_utils.c
+@@ -1,11 +1,11 @@
+ #define _GNU_SOURCE
+
+-#include "fsearch_time_utils.h"
+-
+ #include <glib.h>
+ #include <stdint.h>
+ #include <time.h>
+
++#include "fsearch_time_utils.h"
++
+ typedef enum FsearchDateTimeType {
+ FSEARCH_DATE_TIME_TYPE_SECOND,
+ FSEARCH_DATE_TIME_TYPE_MINUTE,
+@@ -377,7 +377,7 @@ parse_implicit_date_time_constants(const char *str, st
+ }
+
+ static bool
+-parse_date_time_constants(const char *str, time_t *time_start_out, time_t *time_end_out) {
++parse_date_time_constants(const char *str, int64_t *time_start_out, int64_t *time_end_out) {
+ struct tm tm_start = {};
+ struct tm tm_end = {};
+
+@@ -469,7 +469,7 @@ round_down_tm_to_reference_with_date_time_accuracy(str
+ }
+
+ bool
+-fsearch_date_time_parse_interval(const char *str, time_t *time_start_out, time_t *time_end_out) {
++fsearch_date_time_parse_interval(const char *str, int64_t *time_start_out, int64_t *time_end_out) {
+ if (parse_date_time_constants(str, time_start_out, time_end_out)) {
+ return true;
+ }