C12.0: ElyMail backend moves to Rust crates; iCloud by app password

async-imap, async-pop, mail-send, mail-parser and mail-builder replace
MailCore 2. The MailCore 2 and libetpan fetch, build and probe scripts
go. HTML bodies render as a sanitized block subset in GPUI; compose uses
the Markdown document component. OAuth client IDs come from oauth.env
(ignored) or CI secrets. The task list for C12 is rewritten in order.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
ZacharyZhang-NYandClaude Opus 5.5 committed 2026-10-19 16:02:34 -04:00
1 parent 0d991e1c71
commit d7de5619a7
11 files changed
+52 -150

No files matched your search

-42
View File
@@ -1,42 +0,0 @@
#!/usr/bin/env bash
# Builds the pinned libetpan into engines/libetpan.
set -euo pipefail
root=$(cd "$(dirname "$0")/.." && pwd)
src=$root/reference/libetpan
prefix=$root/engines/libetpan
work=$root/engines/libetpan-src
pin=$(git -C "$src" rev-parse HEAD)
if [ "$(cat "$prefix/PIN" 2>/dev/null)" = "$pin" ] && [ -f "$prefix/lib/libetpan.a" ] &&
grep -q "^#define HAVE_OPENSSL 1" "$prefix/BUILD-config.h" 2>/dev/null &&
grep -q "^#define HAVE_JSON 1" "$prefix/BUILD-config.h" 2>/dev/null; then
echo "ok libetpan $pin"
exit 0
fi
ssl=${OPENSSL_DIR:-$(brew --prefix openssl@3)} || {
echo "build-libetpan.sh: set OPENSSL_DIR to an OpenSSL 3 prefix" >&2
exit 1
}
[ -f "$ssl/include/openssl/ssl.h" ] || {
echo "build-libetpan.sh: no OpenSSL headers under $ssl" >&2
exit 1
}
jobs=$(sysctl -n hw.ncpu 2>/dev/null || nproc)
rm -rf "$work" "$prefix"
rsync -a --exclude .git "$src/" "$work/"
cd "$work"
./autogen.sh --prefix="$prefix" --enable-static --disable-shared \
--with-openssl="$ssl" --with-json --disable-db
for feature in HAVE_OPENSSL HAVE_JSON; do
grep -q "^#define $feature 1" config.h || {
echo "build-libetpan.sh: configure left out $feature" >&2
exit 1
}
done
make -j"$jobs"
make install
cp config.h "$prefix/BUILD-config.h"
echo "$pin" >"$prefix/PIN"
echo "built libetpan $pin"