From 6ee72293e3354a0a3b4f14d0bbc44692b5c56ea9 Mon Sep 17 00:00:00 2001 From: "A. Wilcox" Date: Thu, 23 Feb 2023 09:54:35 +0000 Subject: user/dovecot: Fix cache flush on 32-bit big endian They already had a workaround for 64-bit BE. Since time_t is 64-bit on all musl platforms, we need it active at all times. Fixes: #966 --- user/dovecot/APKBUILD | 2 ++ user/dovecot/fix-time64.patch | 13 +++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 user/dovecot/fix-time64.patch (limited to 'user') diff --git a/user/dovecot/APKBUILD b/user/dovecot/APKBUILD index 9b51722d4..f261a2df6 100644 --- a/user/dovecot/APKBUILD +++ b/user/dovecot/APKBUILD @@ -33,6 +33,7 @@ subpackages="$pkgname-doc $pkgname-dev $pkgname-openrc $pkgname-lmtpd " source="https://www.dovecot.org/releases/$_pkgvermajor/dovecot-$pkgver.tar.gz https://pigeonhole.dovecot.org/releases/$_pkgvermajor/$pkgname-$_pkgvermajor-pigeonhole-$_pigeonholever.tar.gz + fix-time64.patch skip-iconv-check.patch split-protocols.patch default-config.patch @@ -260,6 +261,7 @@ _submv() { sha512sums="20c5a9cacf2c22d99d46400b666206e5b153c35286c205eec5df4d2ce0c88cf29ea15df81716794fd75837f6d67dfa4037096cf4bb66f524877a9a0a6bb282c8 dovecot-2.3.20.tar.gz 45683e6bd678db00fc3e3c61d27a264d30d0e9aeb9ceb7ab55f94f0317d387056fa092e266062117cbe2a9dc2c90ddca03d154e78aad9c0d61fe8cf2c9187603 dovecot-2.3-pigeonhole-0.5.20.tar.gz +a73e7323a582ea9504c33ea3591784af8187af8fffbcc47b69f549e33620c532d976853f0f7a9071af6ef2970d4899e2c5b30aac605dd5c933b3c6faa391bad4 fix-time64.patch fe4fbeaedb377d809f105d9dbaf7c1b961aa99f246b77189a73b491dc1ae0aa9c68678dde90420ec53ec877c08f735b42d23edb13117d7268420e001aa30967a skip-iconv-check.patch 794875dbf0ded1e82c5c3823660cf6996a7920079149cd8eed54231a53580d931b966dfb17185ab65e565e108545ecf6591bae82f935ab1b6ff65bb8ee93d7d5 split-protocols.patch 0d8f89c7ba6f884719b5f9fc89e8b2efbdc3e181de308abf9b1c1b0e42282f4df72c7bf62f574686967c10a8677356560c965713b9d146e2770aab17e95bcc07 default-config.patch diff --git a/user/dovecot/fix-time64.patch b/user/dovecot/fix-time64.patch new file mode 100644 index 000000000..30d0307d5 --- /dev/null +++ b/user/dovecot/fix-time64.patch @@ -0,0 +1,13 @@ +We need to case this on sizeof(time_t), not sizeof(void*). + +--- dovecot-2.3.20/src/lib-index/mail-cache-fields.c.old 2023-02-22 08:01:49.420556821 +0000 ++++ dovecot-2.3.20/src/lib-index/mail-cache-fields.c 2023-02-23 09:45:11.417417626 +0000 +@@ -529,7 +529,7 @@ + copy_to_buf_last_used(struct mail_cache *cache, buffer_t *dest, bool add_new) + { + size_t offset = offsetof(struct mail_cache_field, last_used); +-#if defined(WORDS_BIGENDIAN) && SIZEOF_VOID_P == 8 ++#if defined(WORDS_BIGENDIAN) && TIME_T_MAX_BITS > 32 + /* 64bit time_t with big endian CPUs: copy the last 32 bits instead of + the first 32 bits (that are always 0). The 32 bits are enough until + year 2106, so we're not in a hurry to use 64 bits on disk. */ -- cgit v1.2.3-70-g09d2