diff --git a/mail/heirloom-mailx/Makefile b/mail/heirloom-mailx/Makefile index 0bbf3ff46ac4..98d9e9eed479 100644 --- a/mail/heirloom-mailx/Makefile +++ b/mail/heirloom-mailx/Makefile @@ -1,46 +1,46 @@ PORTNAME= mailx PORTVERSION= 12.4 -PORTREVISION= 9 +PORTREVISION= 10 CATEGORIES= mail MASTER_SITES= SF/heirloom/heirloom-${PORTNAME}/${PORTVERSION} PKGNAMEPREFIX= heirloom- MAINTAINER= cy@FreeBSD.org COMMENT= BSD mail utility with MIME, IMAP, POP3, SMTP, and S/MIME extensions LICENSE= BSD4CLAUSE OPTIONS_DEFINE= IPV6 DOCS CONFLICTS= mailx MAKE_JOBS_UNSAFE= yes USES= cpe iconv localbase ssl tar:bzip2 CPE_VENDOR= heirloom CPPFLAGS+= -DOPENSSL_NO_SSL2 MAKE_ARGS= PREFIX="${PREFIX}" \ SYSCONFDIR="${PREFIX}/etc" \ SENDMAIL="/usr/sbin/sendmail" \ CPPFLAGS="${CPPFLAGS}" \ LDFLAGS="${LDFLAGS}" PORTDOCS= AUTHORS COPYING ChangeLog README TODO .include .if ${PORT_OPTIONS:MIPV6} MAKE_ARGS+= IPv6="-DHAVE_IPv6_FUNCS" .endif do-install: ${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${STAGEDIR}${PREFIX}/bin ${INSTALL_MAN} ${WRKSRC}/${PORTNAME}.1 ${STAGEDIR}${MAN1PREFIX}/man/man1 ${INSTALL_DATA} ${WRKSRC}/nail.rc ${STAGEDIR}${PREFIX}/etc/nail.rc.sample .if ${PORT_OPTIONS:MDOCS} @${MKDIR} ${STAGEDIR}${DOCSDIR} .for i in ${PORTDOCS} ${INSTALL_DATA} ${WRKSRC}/${i} ${STAGEDIR}${DOCSDIR} .endfor .endif .include diff --git a/mail/heirloom-mailx/files/patch-head.c b/mail/heirloom-mailx/files/patch-head.c new file mode 100644 index 000000000000..546889ebe1bd --- /dev/null +++ b/mail/heirloom-mailx/files/patch-head.c @@ -0,0 +1,14 @@ +--- head.c.orig 2006-03-03 16:01:19.000000000 -0800 ++++ head.c 2022-01-26 18:13:57.270492000 -0800 +@@ -1116,10 +1116,8 @@ + if ((t = combinetime(year, month, day, hour, minute, second)) == + (time_t)-1) + goto invalid; +- tzdiff = t - mktime(gmtime(&t)); + tmptr = localtime(&t); +- if (tmptr->tm_isdst > 0) +- tzdiff += 3600; ++ tzdiff = tmptr->tm_gmtoff; /* seconds east of GMT */ + t -= tzdiff; + return t; + invalid: diff --git a/mail/heirloom-mailx/files/patch-imap.c b/mail/heirloom-mailx/files/patch-imap.c new file mode 100644 index 000000000000..b90d47a85384 --- /dev/null +++ b/mail/heirloom-mailx/files/patch-imap.c @@ -0,0 +1,30 @@ +--- imap.c.orig 2008-01-06 14:46:50.000000000 -0800 ++++ imap.c 2022-01-26 18:13:57.271602000 -0800 +@@ -3506,10 +3506,8 @@ + return -1; + if ((t = combinetime(year, month, day, 0, 0, 0)) == (time_t)-1) + return -1; +- tzdiff = t - mktime(gmtime(&t)); + tmptr = localtime(&t); +- if (tmptr->tm_isdst > 0) +- tzdiff += 3600; ++ tzdiff = tmptr->tm_gmtoff; /* seconds east of GMT */ + t -= tzdiff; + return t; + } +@@ -3521,13 +3519,11 @@ + struct tm *tmptr; + int tzdiff, tzdiff_hour, tzdiff_min; + +- tzdiff = t - mktime(gmtime(&t)); ++ tmptr = localtime(&t); ++ tzdiff = tmptr->tm_gmtoff; /* seconds east of GMT */ + tzdiff_hour = (int)(tzdiff / 60); + tzdiff_min = tzdiff_hour % 60; + tzdiff_hour /= 60; +- tmptr = localtime(&t); +- if (tmptr->tm_isdst > 0) +- tzdiff_hour++; + snprintf(s, sizeof s, "\"%02d-%s-%04d %02d:%02d:%02d %+03d%02d\"", + tmptr->tm_mday, + month_names[tmptr->tm_mon], diff --git a/mail/heirloom-mailx/files/patch-sendout.c b/mail/heirloom-mailx/files/patch-sendout.c index d95e185c4e3a..77aa7195e2b6 100644 --- a/mail/heirloom-mailx/files/patch-sendout.c +++ b/mail/heirloom-mailx/files/patch-sendout.c @@ -1,10 +1,37 @@ ---- sendout.c.orig 2022-01-26 14:24:22.000017000 -0800 -+++ sendout.c 2022-01-26 14:25:03.262517000 -0800 +--- sendout.c.orig 2008-07-03 23:09:57.000000000 -0700 ++++ sendout.c 2022-01-26 18:25:05.091791000 -0800 @@ -885,6 +885,7 @@ cp = expand(cp); else cp = SENDMAIL; + args[0] = cp; execv(cp, args); perror(cp); } +@@ -1123,9 +1124,7 @@ + + /* + * Create a Date: header field. +- * We compare the localtime() and gmtime() results to get the timezone, +- * because numeric timezones are easier to read and because $TZ is +- * not set on most GNU systems. ++ * We use tm->tm_gmtoff to account for negative DST adjustments (e.g. Ireland). + */ + int + mkdate(FILE *fo, const char *field) +@@ -1135,13 +1134,11 @@ + int tzdiff, tzdiff_hour, tzdiff_min; + + time(&t); +- tzdiff = t - mktime(gmtime(&t)); ++ tmptr = localtime(&t); ++ tzdiff = tmptr->tm_gmtoff; /* seconds east of GMT */ + tzdiff_hour = (int)(tzdiff / 60); + tzdiff_min = tzdiff_hour % 60; + tzdiff_hour /= 60; +- tmptr = localtime(&t); +- if (tmptr->tm_isdst > 0) +- tzdiff_hour++; + return fprintf(fo, "%s: %s, %02d %s %04d %02d:%02d:%02d %+05d\n", + field, + weekday_names[tmptr->tm_wday],