Download raw body.
[PATCH] mail/alpine: unable to send mail in default install
There is a bug in Alpine whereby out of the box it is unable to send email on
an OpenBSD box, even locally. By default, sending a message in unconfigured
Alpine will fork out to sendmail(8) which hangs for some unknown reason and
the sendmail wrapper process needs to be killed. Receiving mail works fine.
Running /usr/sbin/sendmail -t < ~/dead.letter against the abandoned message
works fine, so the interface between Alpine and the sendmail wrapper is
broken.
I ran a ktrace but couldn't find anything substantiative. Rather than debug
this further, there is a much simpler patch to get Alpine working in the
default install. The below change sets the value of smtp-server to localhost
in the file which gets copied to /etc/pine.conf on installation. With this
variable set, Alpine connects to the local smtpd over TCP rather than using
the sendmail(8) utility, if the user has no smtp server defined.
/etc/pine.conf is overridden by the user's ~/.pinerc so this should be a
non-destructive change that will not impact anything but an unconfigured
installation which falls back to using sendmail(8), which does not work.
If it *did* work, then I believe --with-smtp-msa-flags=-t should be set in
the Makefile as well since the hard-coded defaults pass bogus flags to
sendmail(8). This didn't work either so it really doesn't matter, I believe
the issue lies somewhere in the threading mechanism and how it forks out
to sendmail. It's possible a prior security-related change broke something.
This issue dates back to at least OpenBSD 6.8:
https://marc.info/?l=openbsd-misc&m=161141614219034&w=2
Index: Makefile
===================================================================
RCS file: /cvs/ports/mail/alpine/Makefile,v
retrieving revision 1.63
diff -u -p -u -p -r1.63 Makefile
--- Makefile 28 Jan 2025 20:09:20 -0000 1.63
+++ Makefile 29 Apr 2025 01:00:09 -0000
@@ -99,7 +99,8 @@ post-install:
${WRKSRC}/doc/mailcap.unx \
${WRKSRC}/doc/mime.types \
${PREFIX}/share/doc/alpine
- ${WRKBUILD}/alpine/alpine -conf > \
+ ${WRKBUILD}/alpine/alpine -conf | sed \
+ 's/smtp-server=/smtp-server=localhost/' > \
${PREFIX}/share/examples/alpine/pine.conf
# c-client
# the relevant os_*.h is copied to osdep.h in build; others not needed
[PATCH] mail/alpine: unable to send mail in default install