summaryrefslogtreecommitdiff
path: root/app-backup/burp/files/burp-2.4.0-fix-musl-strptime.patch
diff options
context:
space:
mode:
Diffstat (limited to 'app-backup/burp/files/burp-2.4.0-fix-musl-strptime.patch')
-rw-r--r--app-backup/burp/files/burp-2.4.0-fix-musl-strptime.patch86
1 files changed, 86 insertions, 0 deletions
diff --git a/app-backup/burp/files/burp-2.4.0-fix-musl-strptime.patch b/app-backup/burp/files/burp-2.4.0-fix-musl-strptime.patch
new file mode 100644
index 000000000000..e8afca8fefa7
--- /dev/null
+++ b/app-backup/burp/files/burp-2.4.0-fix-musl-strptime.patch
@@ -0,0 +1,86 @@
+https://github.com/grke/burp/commit/76b7f1ba9f4445108059b13f3d79a7fde8a292a3
+https://github.com/grke/burp/issues/908
+https://bugs.gentoo.org/862019
+
+From 76b7f1ba9f4445108059b13f3d79a7fde8a292a3 Mon Sep 17 00:00:00 2001
+From: Graham Keeling <grke@grke.net>
+Date: Mon, 8 Aug 2022 07:53:38 +1000
+Subject: [PATCH] 908: Only glibc supports %z in strptime()
+
+Change-Id: I220e4529073c92df856b892559725b323dc84334
+---
+ src/times.h | 8 ++++----
+ utest/client/monitor/test_json_input.c | 15 +++++++++++----
+ utest/test_times.c | 7 ++++---
+ 3 files changed, 19 insertions(+), 11 deletions(-)
+
+diff --git a/src/times.h b/src/times.h
+index 325419c2b..b0fd3876f 100644
+--- a/src/times.h
++++ b/src/times.h
+@@ -3,11 +3,11 @@
+
+ #define DEFAULT_TIMESTAMP_FORMAT_OLD "%Y-%m-%d %H:%M:%S"
+
+-// Windows does not seem to support %z.
+-#ifdef HAVE_WIN32
+-#define DEFAULT_TIMESTAMP_FORMAT DEFAULT_TIMESTAMP_FORMAT_OLD
+-#else
++#ifdef __GLIBC__
+ #define DEFAULT_TIMESTAMP_FORMAT "%Y-%m-%d %H:%M:%S %z"
++#else
++// Only glibc supports %z in strptime.
++#define DEFAULT_TIMESTAMP_FORMAT DEFAULT_TIMESTAMP_FORMAT_OLD
+ #endif
+
+ extern const char *getdatestr(const time_t t);
+diff --git a/utest/client/monitor/test_json_input.c b/utest/client/monitor/test_json_input.c
+index 516fc779b..aea2a4154 100644
+--- a/utest/client/monitor/test_json_input.c
++++ b/utest/client/monitor/test_json_input.c
+@@ -162,13 +162,20 @@ static struct sd sd1[] = {
+
+ static void assert_bu_minimal(struct bu *bu, struct sd *s)
+ {
+- const char *sd_timestamp;
++ const char *cp;
++ const char *cp_end;
+ fail_unless(bu!=NULL);
+ fail_unless(s->bno==bu->bno);
+ fail_unless(s->flags==bu->flags);
+- fail_unless((sd_timestamp=strchr(s->timestamp, ' '))!=NULL);
+- sd_timestamp++;
+- ck_assert_str_eq(sd_timestamp, bu->timestamp);
++ fail_unless((cp=strchr(s->timestamp, ' '))!=NULL);
++ cp++;
++#ifdef __GLIBC__
++ cp_end=s->timestamp+strlen(s->timestamp)-1;
++#else
++ // Only glibc supports %z in strptime.
++ fail_unless((cp_end=strrchr(s->timestamp, ' '))!=NULL);
++#endif
++ fail_unless(strncmp(cp, bu->timestamp, cp_end-cp)==0);
+ }
+
+ static void do_test_json_clients_with_backup(const char *path,
+diff --git a/utest/test_times.c b/utest/test_times.c
+index 98be11fd1..5a68203a6 100644
+--- a/utest/test_times.c
++++ b/utest/test_times.c
+@@ -35,12 +35,13 @@ struct ds
+
+ static struct ds ds[] = {
+ { 0, "", "never" },
+-#ifdef HAVE_WIN32
+- { 1000, "", "1970-01-01 00:16:40" },
+-#else
++#ifdef __GLIBC__
+ { 1000, "", "1970-01-01 00:16:40 +0000" },
+ { 1000, "UTC+10", "1969-12-31 14:16:40 -1000" },
+ { 1000, "UTC+10", "1969-12-31 14:16:40 -1000" },
++#else
++ // Only glibc supports %z in strptime.
++ { 1000, "", "1970-01-01 00:16:40" },
+ #endif
+ };
+