1 # Buildsheet autogenerated by ravenadm tool -- Do not edit.
8 SDESC[standard]= Powerful mail client
9 HOMEPAGE= http://www.mutt.org/
10 CONTACT= Leonid_Bobrov[goleo@disroot.org]
13 SITES[main]= ftp://ftp.mutt.org/pub/mutt/
14 DISTFILE[1]= mutt-2.0.3.tar.gz:main
16 SPKGS[standard]= complete
21 OPTIONS_AVAILABLE= none
22 OPTIONS_STANDARD= none
24 BUILD_DEPENDS= docbook-xsl:primary:standard
27 BUILDRUN_DEPENDS= cyrus-sasl:primary:standard
28 gettext:runtime:standard
29 libidn2:primary:standard
30 RUN_DEPENDS= media-types:single:standard
32 USES= cpe ncurses perl shebangfix ssl zlib iconv:translit
34 LICENSE= GPLv2+:primary
35 LICENSE_TERMS= primary:{{WRKSRC}}/COPYRIGHT
36 LICENSE_FILE= GPLv2+:stock
39 FPC_EQUIVALENT= mail/mutt
40 SHEBANG_FILES= contrib/smime_keys_test.pl
45 CONFIGURE_ARGS= --disable-debug
48 --enable-external_dotlock
57 --mandir={{MANPREFIX}}/man
59 --sysconfdir={{PREFIX}}/etc
60 --with-docdir={{PREFIX}}/share/doc/mutt
64 --with-sasl={{LOCALBASE}}
66 --with-libiconv-prefix={{LOCALBASE}}
67 --without-kyotocabinet
68 --without-tokyocabinet
71 CFLAGS= -I{{NCURSESINC}}
74 ${RM} ${STAGEDIR}${PREFIX}/etc/mime.types
76 [FILE:414:descriptions/desc.primary]
77 Mutt is a small but very powerful text-based mail client for Unix-like
78 operating systems. Features include support for multiple mailbox formats
79 (including IMAP, POP3, mbox, MMDF, MH, Maildir), MIME/RFC2047, message
80 threading, encryption and signing with PGP/GPG and S/MIME, and many
81 operations can use regular expressions. It's highly customizable with
82 many options for colours, key bindings, display formats etc.
86 9c327cafb7acbfd4a57e7c817148fe438720a4545a5f628926f7745bc752c1ed 5292808 mutt-2.0.3.tar.gz
89 [FILE:288:manifests/plist.primary]
90 @sample etc/Muttrc.sample
94 @(,mail,2755) bin/mutt_dotlock
112 [FILE:1089:manifests/plist.nls]
113 share/locale/bg/LC_MESSAGES/mutt.mo
114 share/locale/ca/LC_MESSAGES/mutt.mo
115 share/locale/cs/LC_MESSAGES/mutt.mo
116 share/locale/da/LC_MESSAGES/mutt.mo
117 share/locale/de/LC_MESSAGES/mutt.mo
118 share/locale/el/LC_MESSAGES/mutt.mo
119 share/locale/eo/LC_MESSAGES/mutt.mo
120 share/locale/es/LC_MESSAGES/mutt.mo
121 share/locale/et/LC_MESSAGES/mutt.mo
122 share/locale/eu/LC_MESSAGES/mutt.mo
123 share/locale/fi/LC_MESSAGES/mutt.mo
124 share/locale/fr/LC_MESSAGES/mutt.mo
125 share/locale/ga/LC_MESSAGES/mutt.mo
126 share/locale/gl/LC_MESSAGES/mutt.mo
127 share/locale/hu/LC_MESSAGES/mutt.mo
128 share/locale/id/LC_MESSAGES/mutt.mo
129 share/locale/it/LC_MESSAGES/mutt.mo
130 share/locale/ja/LC_MESSAGES/mutt.mo
131 share/locale/ko/LC_MESSAGES/mutt.mo
132 share/locale/lt/LC_MESSAGES/mutt.mo
133 share/locale/nl/LC_MESSAGES/mutt.mo
134 share/locale/pl/LC_MESSAGES/mutt.mo
135 share/locale/pt_BR/LC_MESSAGES/mutt.mo
136 share/locale/ru/LC_MESSAGES/mutt.mo
137 share/locale/sk/LC_MESSAGES/mutt.mo
138 share/locale/sv/LC_MESSAGES/mutt.mo
139 share/locale/tr/LC_MESSAGES/mutt.mo
140 share/locale/uk/LC_MESSAGES/mutt.mo
141 share/locale/zh_CN/LC_MESSAGES/mutt.mo
142 share/locale/zh_TW/LC_MESSAGES/mutt.mo
145 [FILE:1465:patches/patch-Makefile.in]
146 --- Makefile.in.orig 2020-12-04 18:54:41 UTC
148 @@ -532,7 +532,7 @@ AUTOMAKE_OPTIONS = 1.6 foreign
149 @BUILD_IMAP_TRUE@IMAP_INCLUDES = -I$(top_srcdir)/imap
150 @BUILD_AUTOCRYPT_TRUE@AUTOCRYPT_SUBDIR = autocrypt
151 @BUILD_AUTOCRYPT_TRUE@AUTOCRYPT_INCLUDES = -I$(top_srcdir)/autocrypt
152 -SUBDIRS = m4 po intl doc contrib $(IMAP_SUBDIR) $(AUTOCRYPT_SUBDIR)
153 +SUBDIRS = m4 po intl contrib $(IMAP_SUBDIR) $(AUTOCRYPT_SUBDIR) . doc
154 bin_SCRIPTS = muttbug flea $(SMIMEAUX_TARGET)
155 @BUILD_HCACHE_TRUE@HCVERSION = hcversion.h
156 BUILT_SOURCES = keymap_defs.h patchlist.c reldate.h conststrings.c version.h $(HCVERSION)
157 @@ -1680,18 +1680,9 @@ install-exec-hook:
158 rm -f $(DESTDIR)$(bindir)/mutt.dotlock ; \
159 ln -sf $(DESTDIR)$(bindir)/mutt_dotlock $(DESTDIR)$(bindir)/mutt.dotlock ; \
161 - if test -f $(DESTDIR)$(bindir)/mutt_dotlock && test x$(DOTLOCK_GROUP) != x ; then \
162 - chgrp $(DOTLOCK_GROUP) $(DESTDIR)$(bindir)/mutt_dotlock && \
163 - chmod $(DOTLOCK_PERMISSION) $(DESTDIR)$(bindir)/mutt_dotlock || \
164 - { echo "Can't fix mutt_dotlock's permissions! This is required to lock mailboxes in the mail spool directory." >&2 ; exit 1 ; } \
168 $(MKDIR_P) $(DESTDIR)$(sysconfdir)
169 - $(INSTALL) -m 644 $(srcdir)/mime.types $(DESTDIR)$(sysconfdir)/mime.types.dist
170 - -if [ ! -f $(DESTDIR)$(sysconfdir)/mime.types ]; then \
171 - $(INSTALL) -m 644 $(srcdir)/mime.types $(DESTDIR)$(sysconfdir); \
175 for i in mime.types ; do \
178 [FILE:2242:patches/patch-browser.c]
179 --- browser.c.orig 2020-12-01 03:05:21 UTC
181 @@ -86,6 +86,12 @@ static int browser_compare_subject (cons
182 struct folder_file *pa = (struct folder_file *) a;
183 struct folder_file *pb = (struct folder_file *) b;
185 + /* Always keep '..' in first menu position */
186 + if (!strncmp(pa->display_name, "..", 2))
188 + if (!strncmp(pb->display_name, "..", 2))
191 int r = mutt_strcoll (pa->display_name, pb->display_name);
193 return ((BrowserSort & SORT_REVERSE) ? -r : r);
194 @@ -96,6 +102,12 @@ static int browser_compare_date (const v
195 struct folder_file *pa = (struct folder_file *) a;
196 struct folder_file *pb = (struct folder_file *) b;
198 + /* Always keep '..' in first menu position */
199 + if (!strncmp(pa->display_name, "..", 2))
201 + if (!strncmp(pb->display_name, "..", 2))
204 int r = pa->mtime - pb->mtime;
206 return ((BrowserSort & SORT_REVERSE) ? -r : r);
207 @@ -106,6 +118,12 @@ static int browser_compare_size (const v
208 struct folder_file *pa = (struct folder_file *) a;
209 struct folder_file *pb = (struct folder_file *) b;
211 + /* Always keep '..' in first menu position */
212 + if (!strncmp(pa->display_name, "..", 2))
214 + if (!strncmp(pb->display_name, "..", 2))
217 int r = pa->size - pb->size;
219 return ((BrowserSort & SORT_REVERSE) ? -r : r);
220 @@ -116,6 +134,12 @@ static int browser_compare_count (const
221 struct folder_file *pa = (struct folder_file *) a;
222 struct folder_file *pb = (struct folder_file *) b;
224 + /* Always keep '..' in first menu position */
225 + if (!strncmp(pa->display_name, "..", 2))
227 + if (!strncmp(pb->display_name, "..", 2))
230 int r = pa->msg_count - pb->msg_count;
232 return ((BrowserSort & SORT_REVERSE) ? -r : r);
233 @@ -126,6 +150,12 @@ static int browser_compare_unread (const
234 struct folder_file *pa = (struct folder_file *) a;
235 struct folder_file *pb = (struct folder_file *) b;
237 + /* Always keep '..' in first menu position */
238 + if (!strncmp(pa->display_name, "..", 2))
240 + if (!strncmp(pb->display_name, "..", 2))
243 int r = pa->msg_unread - pb->msg_unread;
245 return ((BrowserSort & SORT_REVERSE) ? -r : r);
248 [FILE:422:patches/patch-commands.c]
249 --- commands.c.orig 2020-12-04 18:38:44 UTC
251 @@ -302,7 +302,7 @@ int mutt_display_message (HEADER *cur)
253 if (cur->security & GOODSIGN)
255 - if (!crypt_smime_verify_sender(cur))
256 + if (option(OPTSMIMENOSENDER) || !crypt_smime_verify_sender(cur))
257 mutt_message ( _("S/MIME signature successfully verified."));
259 mutt_error ( _("S/MIME certificate owner does not match sender."));
262 [FILE:521:patches/patch-contrib_Makefile.in]
263 --- contrib/Makefile.in.orig 2020-12-04 18:54:41 UTC
264 +++ contrib/Makefile.in
265 @@ -279,7 +279,7 @@ top_build_prefix = @top_build_prefix@
266 top_builddir = @top_builddir@
267 top_srcdir = @top_srcdir@
269 -SAMPLES = Mush.rc Pine.rc gpg.rc pgp2.rc pgp5.rc pgp6.rc Tin.rc \
270 +SAMPLES = Mush.rc Pine.rc gpg.rc pgp2.rc pgp6.rc Tin.rc \
271 sample.mailcap sample.muttrc sample.muttrc-sidebar sample.muttrc-tlr \
272 sample.muttrc-compress sample.muttrc-starter \
273 sample.vimrc-sidebar colors.default colors.linux smime.rc \
276 [FILE:1314:patches/patch-doc_Makefile.in]
277 --- doc/Makefile.in.orig 2020-12-04 18:54:41 UTC
279 @@ -580,14 +580,7 @@ install-data-local: makedoc-all instdoc
280 $(INSTALL) -m 644 $(srcdir)/$$f $(DESTDIR)$(docdir) ; \
283 - $(INSTALL) -m 644 Muttrc $(DESTDIR)$(sysconfdir)/Muttrc.dist
284 - -if [ -f $(DESTDIR)$(pkgdatadir)/Muttrc ] ; then \
285 - mv $(DESTDIR)$(pkgdatadir)/Muttrc* $(DESTDIR)$(sysconfdir) ; \
286 - elif [ -f $(DESTDIR)$(pkgdatadir)/../Muttrc ] ; then \
287 - mv $(DESTDIR)$(pkgdatadir)/../Muttrc* $(DESTDIR)$(sysconfdir) ; \
288 - elif [ ! -f $(DESTDIR)$(sysconfdir)/Muttrc ] ; then \
289 - $(INSTALL) -m 644 Muttrc $(DESTDIR)$(sysconfdir) ; \
291 + $(INSTALL) -m 644 $(srcdir)/Muttrc $(DESTDIR)$(sysconfdir)/Muttrc.sample
292 -if [ -f mutt.info ] ; then \
293 $(MKDIR_P) $(DESTDIR)$(infodir) ; \
294 $(INSTALL) -m 644 mutt.info $(DESTDIR)$(infodir) ; \
295 @@ -629,9 +622,7 @@ uninstall-local:
298 manual.txt: manual.html
299 - -LC_ALL=C lynx -localhost -dump -nolist -with_backspaces -display_charset=us-ascii manual.html > $@ || \
300 - LC_ALL=C w3m -T text/html -I utf-8 -O utf-8 -dump < manual.html > $@ || \
301 - LC_ALL=C elinks -dump -no-numbering -no-references manual.html | sed -e 's,\\001, ,g' > $@
302 + -LC_ALL=C lynx -localhost -dump -nolist -with_backspaces -display_charset=us-ascii manual.html > $@
308 [FILE:4313:patches/patch-hdrline.c]
309 --- hdrline.c.orig 2020-07-25 18:22:53 UTC
311 @@ -248,6 +248,89 @@ static char *apply_subject_mods (ENVELOP
312 * %Y = `x-label:' field (if present, tree unfolded, and != parent's x-label)
313 * %Z = status flags */
316 +format_smartdate( char *buf, size_t max, struct tm *tm, smartdate_type type )
318 + char *strftime_fmt = NULL;
321 + case FUTURE: /* Date in the future */
322 + strftime_fmt = "%d%h%y!";
324 + case SMARTTIME: /* Today */
325 + strftime_fmt = "%I:%M %p";
327 + case YESTERDAY: /* Yesterday */
328 + strncpy( buf, "Yesterday", max );
330 + case WEEKDAY: /* Within the last 7 days */
331 + strftime_fmt = "%A";
333 + case STANDARD: /* Within the last six months */
334 + strftime_fmt = "%h %d";
336 + case ANCIENT: /* Older than 6 months */
337 + strftime_fmt = "%h %Y";
341 + if( strftime_fmt != NULL ) {
342 + strftime( buf, max, strftime_fmt, tm );
347 +smartdate( char *buf, size_t max, struct tm *tm )
349 + smartdate_type type = 0;
353 + time_t sse = mktime( tm ); /* Seconds since epoch */
354 + time_t sse_now = time(NULL); /* Seconds since epoch until now */
356 + int dse = 0; /* Days since epoch */
357 + int dse_now = 0; /* Days since epoch until today */
359 + /* Calculate the number of days since epoch */
360 + dse = sse / (60*60*24);
361 + dse_now = sse_now / (60*60*24);
363 + /* Default display type */
366 + /* Check if the date is in the future */
367 + if( dse > dse_now ) {
371 + int diff = dse_now - dse;
372 + if( diff == 0 ) type = SMARTTIME;
373 + else if( diff == 1 ) type = YESTERDAY;
374 + else if( diff < 7 ) type = WEEKDAY;
375 + else if( diff > 215 ) type = ANCIENT; /* Surely older than six
377 + else if( diff > 180 ) {
379 + * Slightly heavy calculation to check if the date is more
380 + * than six months in the past. This calculation uses
381 + * calendar months and not the exact number of days. So,
382 + * January 31, 2003 would be considered more than six months
383 + * old whether today's date is August 1 or August 31, 2003
386 + localtime_r( &sse_now, &now );
387 + monthdiff = ( now.tm_mon - tm->tm_mon )
388 + + ( ( now.tm_year - tm->tm_year ) * 12 );
389 + if( monthdiff > 6 ) {
395 + format_smartdate( buf, max, tm, type );
399 hdr_format_str (char *dest,
401 @@ -344,6 +427,53 @@ hdr_format_str (char *dest,
405 + int i = 0, invert = 0;
407 + if (optional && (op == '[' || op == '(')) {
410 + T -= (op == '(') ? hdr->received : hdr->date_sent;
412 + is = (char *)prefix;
418 + while( *is && *is != '?' ) {
419 + int t = strtol (is, &is, 10);
424 + t *= 365 * 24 * 60 * 60;
427 + t *= 30 * 24 * 60 * 60;
430 + t *= 7 * 24 * 60 * 60;
448 + if( (T > i || T < -1*i) ^ invert )
455 @@ -421,7 +551,13 @@ hdr_format_str (char *dest,
458 setlocale (LC_TIME, "C");
459 - strftime (buf2, sizeof (buf2), dest, tm);
460 + /* Identify the non-strftime smartdate pattern (%@) */
461 + if( strncmp( dest, "%@", 2 ) == 0 ) {
462 + smartdate( buf2, sizeof( buf2 ), tm );
465 + strftime (buf2, sizeof (buf2), dest, tm);
468 setlocale (LC_TIME, "");
472 [FILE:1222:patches/patch-init.h]
473 --- init.h.orig 2020-11-22 17:37:14 UTC
475 @@ -1174,6 +1174,11 @@ struct option_t MuttVars[] = {
476 ** sent to both the list and your address, resulting in two copies
477 ** of the same email for you.
479 + { "force_base64", DT_BOOL, R_NONE, {.l=OPTFORCEBASE64}, {.l=0} },
482 + ** If you need to encode all text parts to base64, set this option.
484 { "force_name", DT_BOOL, R_NONE, {.l=OPTFORCENAME}, {.l=0} },
487 @@ -3668,6 +3673,15 @@ struct option_t MuttVars[] = {
488 ** to determine the key to use. It will ask you to supply a key, if it can't find one.
491 + { "smime_dont_check_sender", DT_BOOL, R_NONE, {.l=OPTSMIMENOSENDER}, {.l=0} },
494 + ** This flag controls wether you want the skip the check for the sender's
495 + ** email address against the email address stored in the certificate.
496 + ** This can be useful if most of your email senders use SMIMEv3 which no
497 + ** longer needs email-addresses as part of the certificates.
498 + ** It is not set by default.
500 { "smime_self_encrypt_as", DT_SYN, R_NONE, {.p="smime_default_key"}, {.p=0} },
501 { "smime_default_key", DT_STR, R_NONE, {.p=&SmimeDefaultKey}, {.p=0} },
505 [FILE:926:patches/patch-mutt.h]
506 --- mutt.h.orig 2020-12-04 18:38:44 UTC
508 @@ -169,6 +169,16 @@ typedef enum
509 MUTT_WRITE_HEADER_MIME
510 } mutt_write_header_mode;
512 +/* flags for SmartDate */
522 /* types for mutt_add_hook() */
523 #define MUTT_FOLDERHOOK 1
524 #define MUTT_MBOXHOOK (1<<1)
525 @@ -236,6 +246,7 @@ enum
529 + MUTT_THREADCOMPLETE,
531 /* actions for mutt_pattern_comp/mutt_pattern_exec */
533 @@ -421,6 +432,7 @@ enum
541 @@ -593,6 +605,7 @@ enum
546 OPTSDEFAULTDECRYPTKEY,
551 [FILE:721:patches/patch-sendlib.c]
552 --- sendlib.c.orig 2020-12-01 03:05:21 UTC
554 @@ -1214,7 +1214,9 @@ static void mutt_set_encoding (BODY *b,
555 if (b->type == TYPETEXT)
557 char *chsname = mutt_get_body_charset (send_charset, sizeof (send_charset), b);
558 - if ((info->lobin && ascii_strncasecmp (chsname, "iso-2022", 8)) || info->linemax > 990 || (info->from && option (OPTENCODEFROM)))
559 + if (option (OPTFORCEBASE64))
560 + b->encoding = ENCBASE64;
561 + else if ((info->lobin && ascii_strncasecmp (chsname, "iso-2022", 8)) || info->linemax > 990 || (info->from && option (OPTENCODEFROM)))
562 b->encoding = ENCQUOTEDPRINTABLE;
563 else if (info->hibin)
564 b->encoding = option (OPTALLOW8BIT) ? ENC8BIT : ENCQUOTEDPRINTABLE;