summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorA. Wilcox <AWilcox@Wilcox-Tech.com>2023-02-23 09:54:35 +0000
committerA. Wilcox <AWilcox@Wilcox-Tech.com>2023-02-23 09:54:35 +0000
commit6ee72293e3354a0a3b4f14d0bbc44692b5c56ea9 (patch)
treee58db45a1a02336952fa3cae7e5e006e45c25014
parent4e8bc2f46eee8ff4e7510dc91415d6dc5c69a073 (diff)
downloadpackages-6ee72293e3354a0a3b4f14d0bbc44692b5c56ea9.tar.gz
packages-6ee72293e3354a0a3b4f14d0bbc44692b5c56ea9.tar.bz2
packages-6ee72293e3354a0a3b4f14d0bbc44692b5c56ea9.tar.xz
packages-6ee72293e3354a0a3b4f14d0bbc44692b5c56ea9.zip
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
-rw-r--r--user/dovecot/APKBUILD2
-rw-r--r--user/dovecot/fix-time64.patch13
2 files changed, 15 insertions, 0 deletions
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. */