diff --git a/mail/Makefile b/mail/Makefile index 41607632f845..6e96235df337 100644 --- a/mail/Makefile +++ b/mail/Makefile @@ -1,740 +1,741 @@ COMMENT = Electronic mail utilities SUBDIR += abook SUBDIR += adcomplain SUBDIR += addresses SUBDIR += addresses-goodies SUBDIR += aerc SUBDIR += akpop3d SUBDIR += alpine SUBDIR += amavis-logwatch SUBDIR += anomy-sanitizer SUBDIR += antivirus-milter SUBDIR += anubis SUBDIR += archiveopteryx SUBDIR += archiveopteryx-devel SUBDIR += archivesmtp SUBDIR += archmbox SUBDIR += ask SUBDIR += asmail SUBDIR += assp SUBDIR += astroid SUBDIR += automx SUBDIR += autorespond SUBDIR += avenger SUBDIR += balsa SUBDIR += batv-milter SUBDIR += bayespam SUBDIR += bbmail SUBDIR += biabam SUBDIR += bincimap SUBDIR += bmf SUBDIR += bogofilter SUBDIR += bogofilter-bdb SUBDIR += bogofilter-kc SUBDIR += bogofilter-sqlite SUBDIR += bsfilter SUBDIR += bsmtp SUBDIR += bulk_mailer SUBDIR += c-sig SUBDIR += cclient SUBDIR += claws-mail SUBDIR += claws-mail-acpi_notifier SUBDIR += claws-mail-address_keeper SUBDIR += claws-mail-archive SUBDIR += claws-mail-att_remover SUBDIR += claws-mail-attachwarner SUBDIR += claws-mail-bogofilter SUBDIR += claws-mail-bsfilter SUBDIR += claws-mail-clamd SUBDIR += claws-mail-dillo SUBDIR += claws-mail-fetchinfo SUBDIR += claws-mail-gdata SUBDIR += claws-mail-keyword_warner SUBDIR += claws-mail-libravatar SUBDIR += claws-mail-litehtml_viewer SUBDIR += claws-mail-mailmbox SUBDIR += claws-mail-managesieve SUBDIR += claws-mail-newmail SUBDIR += claws-mail-notification SUBDIR += claws-mail-pdf_viewer SUBDIR += claws-mail-perl SUBDIR += claws-mail-pgp SUBDIR += claws-mail-plugins SUBDIR += claws-mail-rssyl SUBDIR += claws-mail-spam_report SUBDIR += claws-mail-spamassassin SUBDIR += claws-mail-tnef_parse SUBDIR += claws-mail-vcalendar SUBDIR += clawsker SUBDIR += cleanup-maildir SUBDIR += cone SUBDIR += coolmail SUBDIR += courier SUBDIR += courier-analog SUBDIR += courier-authlib-vchkpw SUBDIR += courier-imap SUBDIR += couriergraph SUBDIR += crm114 SUBDIR += cvsmail SUBDIR += cyrus-imapd23 SUBDIR += cyrus-imapd24 SUBDIR += cyrus-imapd25 SUBDIR += cyrus-imapd30 SUBDIR += cyrus-imapd32 SUBDIR += cyrus-imapd34 SUBDIR += cyrus-imapd36 + SUBDIR += cyrus-imapd38 SUBDIR += cyrus2courier SUBDIR += cyrus2dovecot SUBDIR += datovka SUBDIR += davmail SUBDIR += dbmail SUBDIR += dcc-dccd SUBDIR += deforaos-mailer SUBDIR += delatt SUBDIR += dk-milter SUBDIR += dkfilter SUBDIR += dkimproxy SUBDIR += dma SUBDIR += dot-forward SUBDIR += dovecot SUBDIR += dovecot-coi SUBDIR += dovecot-fts-elastic SUBDIR += dovecot-fts-flatcurve SUBDIR += dovecot-fts-xapian SUBDIR += dovecot-pigeonhole SUBDIR += dovecot-xaps SUBDIR += dspam SUBDIR += ecartis SUBDIR += elm SUBDIR += emailrelay SUBDIR += emil SUBDIR += enma SUBDIR += eps SUBDIR += epstools SUBDIR += esmtp SUBDIR += evolution SUBDIR += evolution-ews SUBDIR += exilog SUBDIR += exim SUBDIR += exim-doc-html SUBDIR += exim-doc-pdf SUBDIR += exim-doc-postscript SUBDIR += exim-ldap2 SUBDIR += exim-monitor SUBDIR += exim-mysql SUBDIR += exim-postgresql SUBDIR += exim-sa-exim SUBDIR += exim-sqlite SUBDIR += exipick SUBDIR += exmh2 SUBDIR += ez-pine-gpg SUBDIR += ezmlm SUBDIR += ezmlm-idx SUBDIR += faces SUBDIR += fastforward SUBDIR += fdm SUBDIR += fetchmail SUBDIR += fetchmailconf SUBDIR += filtermail SUBDIR += findmaildirs SUBDIR += geary SUBDIR += gensig SUBDIR += getmail6 SUBDIR += gmime26 SUBDIR += gmime26-sharp SUBDIR += gmime30 SUBDIR += gnarwl SUBDIR += gnubiff SUBDIR += gnumail SUBDIR += gotmail SUBDIR += grepmail SUBDIR += greyfix SUBDIR += greylite SUBDIR += gubby SUBDIR += hashcash SUBDIR += hbiff SUBDIR += heirloom-mailx SUBDIR += ifile SUBDIR += im SUBDIR += imap-uw SUBDIR += imapdedup SUBDIR += imapfilter SUBDIR += imapsync SUBDIR += imaptools SUBDIR += imaputils SUBDIR += isbg SUBDIR += isoqlog SUBDIR += isync SUBDIR += james SUBDIR += jamlib SUBDIR += jmba SUBDIR += junkfilter SUBDIR += jwsmtp SUBDIR += lbdb SUBDIR += lens SUBDIR += libcmime SUBDIR += libdkim SUBDIR += libdomainkeys SUBDIR += libesmtp SUBDIR += libetpan SUBDIR += libmilter SUBDIR += libpst SUBDIR += libsieve SUBDIR += libspamtest SUBDIR += libspf SUBDIR += libspf2 SUBDIR += libsrs2 SUBDIR += libsrs_alt SUBDIR += libvmime SUBDIR += listadmin SUBDIR += lmtp2nntp SUBDIR += lookout SUBDIR += lurker SUBDIR += mail-expire SUBDIR += mail2sms SUBDIR += mailagent SUBDIR += maildrop SUBDIR += mailest SUBDIR += mailfromd SUBDIR += mailfront SUBDIR += mailgraph SUBDIR += mailhog SUBDIR += mailman SUBDIR += mailman-exim4 SUBDIR += mailman-postfix SUBDIR += mailman3 SUBDIR += mailpit SUBDIR += mailscanner SUBDIR += mailslurper SUBDIR += mailsync SUBDIR += mailutils SUBDIR += mailx SUBDIR += mairix SUBDIR += masqmail SUBDIR += mb2md SUBDIR += mblaze SUBDIR += mbox2imap SUBDIR += mbox2mdir SUBDIR += mboxgrep SUBDIR += mboxstats SUBDIR += mbx2mbox SUBDIR += mdpop3d SUBDIR += mess822 SUBDIR += meta1 SUBDIR += metamail SUBDIR += mew SUBDIR += mew-devel SUBDIR += milter-bogom SUBDIR += milter-callback SUBDIR += milter-greylist SUBDIR += milter-manager SUBDIR += milter-regex SUBDIR += milter-skem SUBDIR += mime-construct SUBDIR += mime4j SUBDIR += mimedefang SUBDIR += mini_sendmail SUBDIR += minimalist SUBDIR += missey SUBDIR += mlmmj SUBDIR += mlmmj-archive-mid SUBDIR += mlmmj-archiver SUBDIR += mlmmj-webview SUBDIR += mls SUBDIR += mmh SUBDIR += mmr SUBDIR += mpop SUBDIR += msglint SUBDIR += msmtp SUBDIR += mu SUBDIR += mu4e SUBDIR += mu4e-maildirs SUBDIR += mulberry SUBDIR += mutt SUBDIR += mutt_vc_query SUBDIR += nbsmtp SUBDIR += neomutt SUBDIR += nextcloud-mail SUBDIR += nmh SUBDIR += nmh-devel SUBDIR += noattach SUBDIR += nocc SUBDIR += normalizemime SUBDIR += notmuch SUBDIR += notmuch-emacs SUBDIR += notmuch-mutt SUBDIR += nullmailer SUBDIR += openarc SUBDIR += opendkim SUBDIR += opendmarc SUBDIR += opensmtpd SUBDIR += opensmtpd-extras SUBDIR += opensmtpd-extras-queue-ram SUBDIR += opensmtpd-extras-scheduler-ram SUBDIR += opensmtpd-extras-table-ldap SUBDIR += opensmtpd-extras-table-mysql SUBDIR += opensmtpd-extras-table-passwd SUBDIR += opensmtpd-extras-table-postgresql SUBDIR += opensmtpd-extras-table-redis SUBDIR += opensmtpd-extras-table-socketmap SUBDIR += opensmtpd-extras-table-sqlite SUBDIR += opensmtpd-filter-rspamd SUBDIR += opensmtpd-filter-senderscore SUBDIR += osbf-lua SUBDIR += ovs SUBDIR += p5-CGP-CLI SUBDIR += p5-Clamd SUBDIR += p5-Dancer-Plugin-Email SUBDIR += p5-Dancer2-Plugin-Email SUBDIR += p5-Data-Validate-Email SUBDIR += p5-Email-Abstract SUBDIR += p5-Email-Address SUBDIR += p5-Email-Address-List SUBDIR += p5-Email-Address-Loose SUBDIR += p5-Email-Address-UseXS SUBDIR += p5-Email-Address-XS SUBDIR += p5-Email-AddressParser SUBDIR += p5-Email-Date SUBDIR += p5-Email-Date-Format SUBDIR += p5-Email-Delete SUBDIR += p5-Email-Filter SUBDIR += p5-Email-Find SUBDIR += p5-Email-Folder SUBDIR += p5-Email-Folder-IMAP SUBDIR += p5-Email-Folder-IMAPS SUBDIR += p5-Email-Folder-POP3 SUBDIR += p5-Email-FolderType SUBDIR += p5-Email-FolderType-Net SUBDIR += p5-Email-LocalDelivery SUBDIR += p5-Email-LocalDelivery-Ezmlm SUBDIR += p5-Email-MIME SUBDIR += p5-Email-MIME-Attachment-Stripper SUBDIR += p5-Email-MIME-ContentType SUBDIR += p5-Email-MIME-CreateHTML SUBDIR += p5-Email-MIME-Creator-ISO_2022_JP SUBDIR += p5-Email-MIME-Encodings SUBDIR += p5-Email-MIME-RFC2047 SUBDIR += p5-Email-MessageID SUBDIR += p5-Email-Outlook-Message SUBDIR += p5-Email-Reply SUBDIR += p5-Email-Send SUBDIR += p5-Email-Sender SUBDIR += p5-Email-Sender-Transport-SMTP-TLS SUBDIR += p5-Email-Sender-Transport-SQLite SUBDIR += p5-Email-Simple SUBDIR += p5-Email-Simple-FromHandle SUBDIR += p5-Email-Stuffer SUBDIR += p5-Email-Valid SUBDIR += p5-Email-Valid-Loose SUBDIR += p5-FuzzyOcr-devel SUBDIR += p5-GMail-IMAPD SUBDIR += p5-IMAP-Admin SUBDIR += p5-IMAP-Client SUBDIR += p5-IMAP-Sieve SUBDIR += p5-LMAP-CID2SPF SUBDIR += p5-Log-Procmail SUBDIR += p5-MIME-AltWords SUBDIR += p5-MIME-Charset SUBDIR += p5-MIME-EcoEncode SUBDIR += p5-MIME-EncWords SUBDIR += p5-MIME-Explode SUBDIR += p5-MIME-Lite SUBDIR += p5-MIME-Lite-HTML SUBDIR += p5-MIME-Lite-TT SUBDIR += p5-MIME-Lite-TT-HTML SUBDIR += p5-MIME-Tools SUBDIR += p5-MIME-Types SUBDIR += p5-Mail-Address-MobileJp SUBDIR += p5-Mail-Alias SUBDIR += p5-Mail-Audit SUBDIR += p5-Mail-Audit-Attach SUBDIR += p5-Mail-AuthenticationResults SUBDIR += p5-Mail-Box SUBDIR += p5-Mail-Box-IMAP4 SUBDIR += p5-Mail-Box-IMAP4-SSL SUBDIR += p5-Mail-Box-POP3 SUBDIR += p5-Mail-Box-Parser-C SUBDIR += p5-Mail-Bulkmail SUBDIR += p5-Mail-CheckUser SUBDIR += p5-Mail-DKIM SUBDIR += p5-Mail-DMARC SUBDIR += p5-Mail-DeliveryStatus-BounceParser SUBDIR += p5-Mail-DomainKeys SUBDIR += p5-Mail-Ezmlm SUBDIR += p5-Mail-Field-Received SUBDIR += p5-Mail-FilterXML SUBDIR += p5-Mail-Folder SUBDIR += p5-Mail-Freshmeat SUBDIR += p5-Mail-GnuPG SUBDIR += p5-Mail-Graph SUBDIR += p5-Mail-IMAPClient SUBDIR += p5-Mail-IMAPTalk SUBDIR += p5-Mail-LMLM SUBDIR += p5-Mail-ListDetector SUBDIR += p5-Mail-Mbox-MessageParser SUBDIR += p5-Mail-MboxParser SUBDIR += p5-Mail-Message SUBDIR += p5-Mail-OpenDKIM SUBDIR += p5-Mail-OpenRelay-Simple SUBDIR += p5-Mail-POP3Client SUBDIR += p5-Mail-Procmail SUBDIR += p5-Mail-Procmailrc SUBDIR += p5-Mail-RBL SUBDIR += p5-Mail-RFC822-Address SUBDIR += p5-Mail-SPF SUBDIR += p5-Mail-SRS SUBDIR += p5-Mail-SendEasy SUBDIR += p5-Mail-Sender SUBDIR += p5-Mail-Sendmail SUBDIR += p5-Mail-Spool SUBDIR += p5-Mail-Tools SUBDIR += p5-Mail-Transport SUBDIR += p5-Mail-Transport-Dbx SUBDIR += p5-Mail-Verify SUBDIR += p5-Mail-Verp SUBDIR += p5-Mail-Webmail-Gmail SUBDIR += p5-Mojolicious-Plugin-Mail SUBDIR += p5-Net-IMAP-Client SUBDIR += p5-Net-IMAP-Server SUBDIR += p5-Net-IMAP-Simple SUBDIR += p5-Net-IMAP-Simple-SSL SUBDIR += p5-Net-LMTP SUBDIR += p5-Net-ManageSieve SUBDIR += p5-Net-POP3-SSLWrapper SUBDIR += p5-Net-QMTP SUBDIR += p5-Net-SMTP-Server SUBDIR += p5-Net-SMTP-TLS SUBDIR += p5-Net-SMTP-TLS-ButMaintained SUBDIR += p5-Net-SMTPS SUBDIR += p5-Net-SMTP_auth SUBDIR += p5-Net-SenderBase SUBDIR += p5-Net-Server-Mail SUBDIR += p5-POE-Component-Client-POP3 SUBDIR += p5-POE-Component-Client-SMTP SUBDIR += p5-POE-Component-SMTP SUBDIR += p5-POE-Filter-Transparent-SMTP SUBDIR += p5-Parse-MIME SUBDIR += p5-Parse-Syslog-Mail SUBDIR += p5-Qmail-Envelope SUBDIR += p5-SES SUBDIR += p5-Sendmail-AccessDB SUBDIR += p5-Sendmail-Milter SUBDIR += p5-Sisimai SUBDIR += p5-Test-Email SUBDIR += p5-URI-imap SUBDIR += p5-URI-imaps SUBDIR += p5-WWW-GMail SUBDIR += p5-WWW-Hotmail SUBDIR += p5-qpsmtpd SUBDIR += panda-cclient SUBDIR += panda-imap SUBDIR += pantomime SUBDIR += pathalias SUBDIR += pear-Contact_Vcard_Build SUBDIR += pear-Contact_Vcard_Parse SUBDIR += pear-Horde_Imap_Client SUBDIR += pear-Horde_Kolab_Storage SUBDIR += pear-Horde_ListHeaders SUBDIR += pear-Horde_Mail SUBDIR += pear-Horde_Mail_Autoconfig SUBDIR += pear-Horde_Mapi SUBDIR += pear-Horde_Mime SUBDIR += pear-Horde_Mime_Viewer SUBDIR += pear-Horde_Smtp SUBDIR += pear-MIME_Type SUBDIR += pear-Mail SUBDIR += pear-Mail_Mbox SUBDIR += pear-Mail_Mime SUBDIR += pear-Mail_Queue SUBDIR += pear-Mail_mimeDecode SUBDIR += pear-Net_Cyrus SUBDIR += pear-Net_IMAP SUBDIR += pear-Net_LMTP SUBDIR += pecl-mailparse SUBDIR += perdition SUBDIR += pflogsumm SUBDIR += pfqueue SUBDIR += php80-imap SUBDIR += php81-imap SUBDIR += php82-imap SUBDIR += phplist SUBDIR += phpmailer SUBDIR += phpmailer6 SUBDIR += pine-pgp-filters SUBDIR += pm-lib SUBDIR += policyd2 SUBDIR += popa3d SUBDIR += popa3d-before-sendmail SUBDIR += popcheck SUBDIR += popfile SUBDIR += poppwd SUBDIR += popular SUBDIR += postfinger SUBDIR += postfix SUBDIR += postfix-current SUBDIR += postfix-logwatch SUBDIR += postfix-policyd-sf SUBDIR += postfix-policyd-spf-perl SUBDIR += postfix-policyd-weight SUBDIR += postfix-postfwd SUBDIR += postfixadmin SUBDIR += postfixadmin-lite SUBDIR += postfixadmin33 SUBDIR += postfixadmin33-lite SUBDIR += postforward SUBDIR += postgrey SUBDIR += postsrsd SUBDIR += prepflog SUBDIR += procmail SUBDIR += procmail-bgrb SUBDIR += proxsmtp SUBDIR += py-Products.SecureMailHost SUBDIR += py-afew SUBDIR += py-aiosmtpd SUBDIR += py-alot SUBDIR += py-authheaders SUBDIR += py-authres SUBDIR += py-django-mailbox SUBDIR += py-django-mailman3 SUBDIR += py-dkimpy SUBDIR += py-email-reply-parser SUBDIR += py-email-validator SUBDIR += py-flanker SUBDIR += py-flask-mail SUBDIR += py-flufl.bounce SUBDIR += py-fuglu SUBDIR += py-imapclient SUBDIR += py-imaplib2 SUBDIR += py-mail-parser SUBDIR += py-mailmanclient SUBDIR += py-mailnag SUBDIR += py-mailsuite SUBDIR += py-managesieve3 SUBDIR += py-milter SUBDIR += py-notmuch SUBDIR += py-notmuch2 SUBDIR += py-offlineimap3 SUBDIR += py-postfix-mta-sts-resolver SUBDIR += py-premailer SUBDIR += py-pymailq SUBDIR += py-pysasl SUBDIR += py-pyspf SUBDIR += py-python-slimta SUBDIR += py-pyzmail SUBDIR += py-rfc6555 SUBDIR += py-spf-engine SUBDIR += py-validate_email SUBDIR += pymsgauth SUBDIR += pyzor SUBDIR += qconfirm SUBDIR += qmail SUBDIR += qmail-activedir SUBDIR += qmail-autoresponder SUBDIR += qmail-conf SUBDIR += qmail-contrib SUBDIR += qmail-dk SUBDIR += qmail-mysql SUBDIR += qmail-notify SUBDIR += qmail-qfilter SUBDIR += qmail-rblchk SUBDIR += qmail-remove SUBDIR += qmail-spamcontrol SUBDIR += qmail-tls SUBDIR += qmailadmin SUBDIR += qmailanalog SUBDIR += qmailmrtg7 SUBDIR += qmhandle SUBDIR += qpopper SUBDIR += qsf SUBDIR += qsheff SUBDIR += qtools SUBDIR += queue-fix SUBDIR += queue-repair SUBDIR += rainloop SUBDIR += ratelimit-policyd SUBDIR += raysfilter SUBDIR += razor-agents SUBDIR += rbl-milter SUBDIR += rblcheck SUBDIR += renattach SUBDIR += ripmime SUBDIR += rmilter SUBDIR += roundcube SUBDIR += roundcube-automatic_addressbook SUBDIR += roundcube-calendar-kolab SUBDIR += roundcube-carddav SUBDIR += roundcube-classic SUBDIR += roundcube-contextmenu SUBDIR += roundcube-html5_notifier SUBDIR += roundcube-identity_smtp SUBDIR += roundcube-larry SUBDIR += roundcube-login_info SUBDIR += roundcube-sauserprefs SUBDIR += roundcube-thunderbird_labels SUBDIR += roundcube-twofactor_gauthenticator SUBDIR += roundcube-veximaccountadmin SUBDIR += roundcube-yubikey_auth SUBDIR += rspamd SUBDIR += rspamd-devel SUBDIR += rss2email3 SUBDIR += rubygem-actionmailbox60 SUBDIR += rubygem-actionmailbox61 SUBDIR += rubygem-actionmailbox70 SUBDIR += rubygem-actionmailer4 SUBDIR += rubygem-actionmailer5 SUBDIR += rubygem-actionmailer50 SUBDIR += rubygem-actionmailer52 SUBDIR += rubygem-actionmailer60 SUBDIR += rubygem-actionmailer61 SUBDIR += rubygem-actionmailer70 SUBDIR += rubygem-email_reply_parser SUBDIR += rubygem-email_reply_parser-discourse SUBDIR += rubygem-email_reply_trimmer SUBDIR += rubygem-exception_notification SUBDIR += rubygem-gitlab-mail_room SUBDIR += rubygem-mail SUBDIR += rubygem-mail_room SUBDIR += rubygem-mailboxer SUBDIR += rubygem-mailfactory SUBDIR += rubygem-mini_mime SUBDIR += rubygem-net-imap SUBDIR += rubygem-net-pop SUBDIR += rubygem-net-smtp SUBDIR += rubygem-pony SUBDIR += rubygem-premailer SUBDIR += rubygem-premailer-rails SUBDIR += rubygem-premailer-rails-rails5 SUBDIR += rubygem-premailer-rails-rails52 SUBDIR += rubygem-premailer-rails-rails60 SUBDIR += rubygem-premailer-rails-rails61 SUBDIR += rubygem-rmail SUBDIR += rubygem-roadie SUBDIR += rubygem-roadie-rails-rails4 SUBDIR += rubygem-roadie-rails-rails52 SUBDIR += rubygem-roadie-rails-rails61 SUBDIR += rubygem-roadie3 SUBDIR += rubygem-ruby-qmail SUBDIR += rubygem-valid_email SUBDIR += rubygem-vmail SUBDIR += s-nail SUBDIR += sa-stats SUBDIR += sa-utils SUBDIR += scam-backscatter SUBDIR += sendmail SUBDIR += sendmail-devel SUBDIR += sendok SUBDIR += sentinel SUBDIR += serialmail SUBDIR += sgwi SUBDIR += sid-milter SUBDIR += sieve-connect SUBDIR += sigrot SUBDIR += simscan SUBDIR += slapd-cyrus SUBDIR += slimta SUBDIR += sma SUBDIR += smfsav SUBDIR += smfsav-devel SUBDIR += smtp-cli SUBDIR += smtpfeed SUBDIR += smtpmail SUBDIR += smtprc SUBDIR += smtprelay SUBDIR += smtptrapd SUBDIR += snappymail SUBDIR += sortmail SUBDIR += spamass-ixhash SUBDIR += spamass-milter SUBDIR += spamass-rules SUBDIR += spamassassin SUBDIR += spamassassin-devel SUBDIR += spamassassin-dqs SUBDIR += spambnc SUBDIR += spamcup SUBDIR += spamd SUBDIR += spamdyke SUBDIR += spamguard SUBDIR += spamilter SUBDIR += spampd SUBDIR += spamprobe SUBDIR += spamstats SUBDIR += spfmilter SUBDIR += spfval SUBDIR += spmfilter SUBDIR += spmfilter-clamav SUBDIR += sqlgrey SUBDIR += squirrelmail SUBDIR += squirrelmail-abook_import_export-plugin SUBDIR += squirrelmail-askuserinfo-plugin SUBDIR += squirrelmail-avelsieve-plugin SUBDIR += squirrelmail-calendar_file_backend-plugin SUBDIR += squirrelmail-change_ldappass-plugin SUBDIR += squirrelmail-change_sqlpass-plugin SUBDIR += squirrelmail-check_quota-plugin SUBDIR += squirrelmail-compatibility-plugin SUBDIR += squirrelmail-decode SUBDIR += squirrelmail-email_footer-plugin SUBDIR += squirrelmail-login_auth-plugin SUBDIR += squirrelmail-login_notes-plugin SUBDIR += squirrelmail-mark_read-plugin SUBDIR += squirrelmail-multilogin-plugin SUBDIR += squirrelmail-notes-plugin SUBDIR += squirrelmail-notify-plugin SUBDIR += squirrelmail-password_forget-plugin SUBDIR += squirrelmail-plugins SUBDIR += squirrelmail-pupdate-plugin SUBDIR += squirrelmail-qmailadmin_login-plugin SUBDIR += squirrelmail-quota_usage-plugin SUBDIR += squirrelmail-sasql-plugin SUBDIR += squirrelmail-secure_login-plugin SUBDIR += squirrelmail-shared_calendars-plugin SUBDIR += squirrelmail-spam-buttons-plugin SUBDIR += squirrelmail-squirrel_logger-plugin SUBDIR += squirrelmail-timeout_user-plugin SUBDIR += squirrelmail-translations SUBDIR += squirrelmail-unsafe_image_rules-plugin SUBDIR += squirrelmail-user_special_mailboxes-plugin SUBDIR += squirrelmail-vlogin-plugin SUBDIR += squirrelmail-websearch-plugin SUBDIR += squirrelmail-wetteronline-plugin SUBDIR += sqwebmail SUBDIR += ssmtp SUBDIR += surblhost SUBDIR += swaks SUBDIR += sylpheed SUBDIR += sympa SUBDIR += t-prot SUBDIR += textmail SUBDIR += thunderbird SUBDIR += thunderbird-dictionaries SUBDIR += tlb SUBDIR += tmpmail SUBDIR += tpop3d SUBDIR += trojita SUBDIR += tumgreyspf SUBDIR += up-imapproxy SUBDIR += usendmail SUBDIR += vacation SUBDIR += vbsfilter SUBDIR += vexim SUBDIR += vmailmgr SUBDIR += vpopmail SUBDIR += vqadmin SUBDIR += vrfy SUBDIR += wanderlust SUBDIR += websieve SUBDIR += whoson SUBDIR += wmbiff SUBDIR += wmmaiload SUBDIR += x-face-e21 SUBDIR += xbuffy SUBDIR += xcite SUBDIR += xfaces SUBDIR += xfce4-mailwatch-plugin SUBDIR += xmail SUBDIR += xmailbox SUBDIR += xmailwatcher SUBDIR += xpbiff .include diff --git a/mail/cyrus-imapd38/Makefile b/mail/cyrus-imapd38/Makefile new file mode 100644 index 000000000000..df85a754d2e7 --- /dev/null +++ b/mail/cyrus-imapd38/Makefile @@ -0,0 +1,254 @@ +PORTNAME= cyrus-imapd +PORTVERSION= 3.8.0 +PORTREVISION= 0 +CATEGORIES= mail +MASTER_SITES= https://github.com/cyrusimap/cyrus-imapd/releases/download/${PORTNAME}-${DISTVERSION}/ +PKGNAMESUFFIX= ${CYRUS_IMAPD_VER} + +MAINTAINER= ume@FreeBSD.org +COMMENT= Cyrus mail server, supporting POP3 and IMAP4 protocols ${COMMENT_${FLAVOR}} +WWW= https://www.cyrusimap.org/ +COMMENT_http= (with HTTP) + +LICENSE= BSD4CLAUSE +LICENSE_FILE= ${WRKSRC}/COPYING + +BROKEN_riscv64= fails to build: lib/chartable.c: Error 1 + +FLAVORS= basic http +http_PKGNAMESUFFIX= ${CYRUS_IMAPD_VER}-http + +CYRUS_IMAPD_VER= 38 + +LIB_DEPENDS= libsasl2.so:security/cyrus-sasl2 \ + libicuuc.so:devel/icu \ + libjansson.so:devel/jansson \ + libpcre.so:devel/pcre \ + libuuid.so:misc/e2fsprogs-libuuid \ + libical.so:devel/libical + +CONFLICTS_INSTALL= cyrus-imapd2? cyrus-imapd3[0-57-] cyrus-imapd3[0-57-]-http + +USES= compiler:c11 cpe gmake libtool perl5 pkgconfig ssl +USE_RC_SUBR= imapd +GNU_CONFIGURE= yes +CYRUS_PREFIX= ${PREFIX}/cyrus +CONFIGURE_ARGS= --libexecdir=${CYRUS_PREFIX}/libexec \ + --sbindir=${CYRUS_PREFIX}/sbin \ + --sysconfdir=${PREFIX}/etc \ + --with-cyrus-user=${CYRUS_USER} \ + --with-sasl=${LOCALBASE} \ + --with-com_err \ + --with-openssl=${OPENSSLBASE} \ + --with-perl=${PERL} +CONFIGURE_ENV+= LIBS="-L${LOCALBASE}/lib" +CPPFLAGS+= -I${LOCALBASE}/include +MAKE_JOBS_UNSAFE= yes + +USES+= shebangfix +SHEBANG_FILES= imap/promdatagen tools/config2header \ + tools/masssievec tools/mkimap tools/translatesieve \ + perl/sieve/scripts/*.pl + +CPE_VENDOR= cmu +CPE_PRODUCT= cyrus_imap_server + +OPTIONS_DEFINE= AUTOCREATE BACKUP CLAMAV CLD2 HTTP IDLED LDAP MURDER \ + MYSQL NNTP PGSQL REPLICATION SQLITE SQUAT SRS XAPIAN \ + DOCS +OPTIONS_DEFAULT= AUTOCREATE IDLED READLINE_GNU SQLITE SQUAT SRS +.if ${FLAVOR:U} == http +OPTIONS_DEFAULT+= HTTP +.endif +OPTIONS_SUB= yes +AUTOCREATE_DESC= Enable autocreate support +AUTOCREATE_CONFIGURE_ENABLE= autocreate +BACKUP_DESC= Enable backup support (experimental) +BACKUP_CONFIGURE_ENABLE=backup +CLAMAV_DESC= Use ClamAV +CLAMAV_CONFIGURE_WITH= clamav +CLAMAV_LIB_DEPENDS= libclamav.so:security/clamav +CLD2_DESC= Use CLD2 +CLD2_CONFIGURE_WITH= cld2 +CLD2_CONFIGURE_ENV= CLD2_CFLAGS="-I${LOCALBASE}/include" \ + CLD2_LIBS="-L${LOCALBASE}/lib -lcld2" +CLD2_LIB_DEPENDS= libcld2.so:devel/cld2 +HTTP_DESC= Enable HTTP support +HTTP_IMPLIES= SQLITE +HTTP_CONFIGURE_ENABLE= http +HTTP_LIB_DEPENDS= libnghttp2.so:www/libnghttp2 \ + libshp.so:devel/shapelib \ + libbrotlidec.so:archivers/brotli \ + libwslay_shared.so:www/wslay \ + libzstd.so:archivers/zstd +HTTP_CONFIGURE_ENV= WSLAY_CFLAGS="-I${LOCALBASE}/include" \ + WSLAY_LIBS="-L${LOCALBASE}/lib -lwslay_shared" +# Need additional patch to opendkim +#HTTP_LIB_DEPENDS+= libopendkim.so:mail/opendkim +#HTTP_CPPFLAGS+= -I${LOCALBASE}/include/opendkim +HTTP_USES= gnome +HTTP_USE= GNOME=libxml2 +IDLED_DESC= Enable IMAP idled support +IDLED_CONFIGURE_ENABLE= idled +LDAP_DESC= Enable LDAP support (experimental) +LDAP_USES= ldap +LDAP_CONFIGURE_ON= --with-ldap=${LOCALBASE} +LDAP_CONFIGURE_OFF= --without-ldap +MURDER_DESC= Enable IMAP Murder support +MURDER_CONFIGURE_ENABLE=murder +MURDER_MAKE_ENV= PTHREAD_LIBS="-lpthread" +MYSQL_USES= mysql +MYSQL_CONFIGURE_WITH= mysql +NNTP_DESC= Enable NNTP support +NNTP_CONFIGURE_ENABLE= nntp +PGSQL_USES= pgsql +PGSQL_CONFIGURE_ON= --with-pgsql=${LOCALBASE} +PGSQL_CONFIGURE_OFF= --without-pgsql +REPLICATION_DESC= Enable replication (experimental) +REPLICATION_CONFIGURE_ENABLE=replication +SRS_DESC= Enable Sender Rewriting Scheme support +SRS_CONFIGURE_ENABLE= srs +SRS_LIB_DEPENDS= libsrs2.so:mail/libsrs2 +SQLITE_USES= sqlite +SQLITE_CONFIGURE_ON= --with-sqlite=${LOCALBASE} +SQLITE_CONFIGURE_OFF= --without-sqlite +SQLITE_BROKEN_OFF= SQLITE is required +SQUAT_DESC= Enable Squat support +SQUAT_CONFIGURE_OFF= --disable-squat +XAPIAN_DESC= Enable Xapian support +XAPIAN_CONFIGURE_ENABLE=xapian +XAPIAN_LIB_DEPENDS= libxapian.so:databases/xapian-core +XAPIAN_BUILD_DEPENDS= rsync:net/rsync +XAPIAN_RUN_DEPENDS= ${XAPIAN_BUILD_DEPENDS} + +OPTIONS_RADIO= GSSAPI READLINE +OPTIONS_RADIO_GSSAPI= GSSAPI_HEIMDAL GSSAPI_MIT +.if exists(/usr/lib/libkrb5.a) +OPTIONS_RADIO_GSSAPI+= GSSAPI_BASE +OPTIONS_DEFAULT+= GSSAPI_BASE +.endif +GSSAPI_BASE_USES= gssapi +GSSAPI_BASE_CONFIGURE_ON= --enable-gssapi="${GSSAPIBASEDIR}" \ + --with-gss_impl=heimdal +GSSAPI_HEIMDAL_USES= gssapi:heimdal,flags +GSSAPI_HEIMDAL_CONFIGURE_ON= --enable-gssapi="${GSSAPIBASEDIR}" \ + --with-gss_impl=heimdal +GSSAPI_MIT_USES= gssapi:mit +GSSAPI_MIT_CONFIGURE_ON= --enable-gssapi="${GSSAPIBASEDIR}" \ + --with-gss_impl=mit + +OPTIONS_RADIO_READLINE= READLINE_GNU READLINE_PERL +READLINE_GNU_DESC= Use Term::Readline::GNU for cyradm +READLINE_GNU_RUN_DEPENDS= p5-Term-ReadLine-Gnu>=0:devel/p5-Term-ReadLine-Gnu +READLINE_PERL_DESC= Use Term::Readline::Perl for cyradm +READLINE_PERL_RUN_DEPENDS= p5-Term-ReadLine-Perl>=0:devel/p5-Term-ReadLine-Perl + +MANDIRS= ${CYRUS_PREFIX}/man + +PORTDOCS= * + +SUB_FILES= pkg-message pkg-install pkg-deinstall cyrus-imapd-man.conf + +SUB_LIST= CYRUS_USER=${CYRUS_USER} CYRUS_GROUP=${CYRUS_GROUP} + +CYRUS_USER?= cyrus +CYRUS_GROUP?= cyrus + +MAN_MAN1= httptest imtest installsieve lmtptest mupdatetest nntptest \ + pop3test sieveshell sivtest smtptest +MAN_MAN3= imclient +MAN_MAN5= cyrus.conf imapd.conf krb.equiv + +CYRUS_MAN8= arbitron backupd chk_cyrus ctl_backups ctl_conversationsdb \ + ctl_cyrusdb ctl_deliver ctl_mboxlist cvt_cyrusdb cyr_backup \ + cyr_buildinfo cyr_dbtool cyr_deny cyr_df cyr_expire cyr_info \ + cyr_synclog cyr_virusscan deliver fud idled imapd ipurge lmtpd \ + master mbexamine mbpath mbtool notifyd pop3d quota reconstruct \ + restore smmapd timsieved tls_prune unexpunge +CYRUS_PERL_MAN1=cyradm +CYRUS_PERL_MAN3=Cyrus::Annotator::Daemon Cyrus::Annotator::Message \ + Cyrus::IMAP Cyrus::IMAP::Admin Cyrus::IMAP::Shell \ + Cyrus::SIEVE::managesieve + +INSTALL_TARGET= install-strip + +REINPLACE_ARGS= -i '' + +.include + +.if !${PORT_OPTIONS:MGSSAPI_BASE} && !${PORT_OPTIONS:MGSSAPI_HEIMDAL} && \ + !${PORT_OPTIONS:MGSSAPI_MIT} +CONFIGURE_ARGS+=--disable-gssapi +.endif + +.if ${PORT_OPTIONS:MHTTP} +CYRUS_MAN8+= ctl_zoneinfo httpd +.endif +.if ${PORT_OPTIONS:MNNTP} +CYRUS_MAN8+= fetchnews nntpd +.endif +.if ${PORT_OPTIONS:MREPLICATION} +CYRUS_MAN8+= sync_client sync_reset sync_server +.endif +.if ${PORT_OPTIONS:MSQUAT} || ${PORT_OPTIONS:MXAPIAN} +CYRUS_MAN8+= squatter +PLIST_SUB+= SQUATTER="" +.else +PLIST_SUB+= SQUATTER="@comment " +.endif + +post-patch: + @${REINPLACE_CMD} -e "s|/etc/|${PREFIX}/etc/|" \ + -e "s|%%CYRUS_USER%%|${CYRUS_USER}|g" \ + -e "s|%%CYRUS_GROUP%%|${CYRUS_GROUP}|g" \ + ${WRKSRC}/tools/mkimap +.for f in masssievec translatesieve + @${REINPLACE_CMD} -e "s|/etc/|${PREFIX}/etc/|g" \ + -e "s|/usr/sieve|/var/imap/sieve|g" \ + ${WRKSRC}/tools/${f} +.endfor + @${REINPLACE_CMD} \ + -e 's|$$(libdir)/\(pkgconfig\)|${PREFIX}/libdata/\1|g' \ + -e 's|$$(mandir)/\(man[8]\)|${PREFIX}/cyrus/man/\1|g' \ + ${WRKSRC}/Makefile.in + +post-install: + ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${SITE_ARCH_REL}/auto/Cyrus/IMAP/IMAP.so + ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${SITE_ARCH_REL}/auto/Cyrus/SIEVE/managesieve/managesieve.so + ${MKDIR} ${STAGEDIR}${EXAMPLESDIR} + ${INSTALL_DATA} ${FILESDIR}/imapd.conf \ + ${STAGEDIR}${EXAMPLESDIR} + ${SED} -e 's,/run/cyrus/socket,/var/imap/socket,' \ + ${WRKSRC}/doc/examples/cyrus_conf/normal.conf \ + > ${STAGEDIR}${EXAMPLESDIR}/cyrus.conf +.if !${PORT_OPTIONS:MHTTP} + ${REINPLACE_CMD} -e 's/^\( http\)/#\1/' \ + ${STAGEDIR}${EXAMPLESDIR}/cyrus.conf +.endif +.for f in mkimap masssievec translatesieve + ${INSTALL_SCRIPT} ${WRKSRC}/tools/${f} \ + ${STAGEDIR}${CYRUS_PREFIX}/sbin/${f} +.endfor + ${INSTALL_DATA} ${WRKDIR}/cyrus-imapd-man.conf \ + ${STAGEDIR}${PREFIX}/etc/man.d/cyrus-imapd.conf +.for s in 1 3 5 +. for m in ${MAN_MAN${s}} + @${ECHO_CMD} man/man${s}/${m}.${s}.gz >> ${TMPPLIST} +. endfor +.endfor +.for s in 1 3 +. for m in ${CYRUS_PERL_MAN${s}} + @${ECHO_CMD} ${SITE_MAN${s}}/${m}.${s}.gz >> ${TMPPLIST} +. endfor +.endfor +.for m in ${CYRUS_MAN8} + @${ECHO_CMD} ${CYRUS_PREFIX}/man/man8/${m}.8.gz >> ${TMPPLIST} +.endfor + +post-install-DOCS-on: + ${MKDIR} ${STAGEDIR}${DOCSDIR} + cd ${WRKSRC}/doc && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR} \ + "! ( -path */html/_sources* -o -name .buildinfo )" + ${RM} -r ${STAGEDIR}${DOCSDIR}/rst ${STAGEDIR}${DOCSDIR}/source + +.include diff --git a/mail/cyrus-imapd38/distinfo b/mail/cyrus-imapd38/distinfo new file mode 100644 index 000000000000..c25922a99470 --- /dev/null +++ b/mail/cyrus-imapd38/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1684756079 +SHA256 (cyrus-imapd-3.8.0.tar.gz) = eb9495d936b217af3f1e6e091ba57510c0cce2d2ec244918184c71a9bb21eb4e +SIZE (cyrus-imapd-3.8.0.tar.gz) = 14160188 diff --git a/mail/cyrus-imapd38/files/cyrus-imapd-man.conf.in b/mail/cyrus-imapd38/files/cyrus-imapd-man.conf.in new file mode 100644 index 000000000000..b7ba70fcce77 --- /dev/null +++ b/mail/cyrus-imapd38/files/cyrus-imapd-man.conf.in @@ -0,0 +1 @@ +MANPATH %%PREFIX%%/cyrus/man diff --git a/mail/cyrus-imapd38/files/imapd.conf b/mail/cyrus-imapd38/files/imapd.conf new file mode 100644 index 000000000000..2ba85ce1d63e --- /dev/null +++ b/mail/cyrus-imapd38/files/imapd.conf @@ -0,0 +1,372 @@ +# Sample configurations file for Cyrus IMAPd +# Most lines in this file are commented; in this case the default is used. +# The commented lines (usually) contain the default value + +# The pathname of the IMAP configuration directory +# +configdirectory: /var/imap + +# The partition name used by default for new mailboxes +# +#defaultpartition: default + +# The directory for the different partitions +# +partition-default: /var/spool/imap + +# Use the UNIX separator character '/' for delimiting levels of +# mailbox hierarchy. The default is to use the netnews separator +# character '.'. +#unixhierarchysep: yes + +# Use the alternate IMAP namespace, where personal folders reside at +# the same level in the hierarchy as INBOX. +# +#altnamespace: yes + +# If using the alternate IMAP namespace, the prefix for the other +# users namespace. The hierarchy delimiter will be automatically +# appended. +# +#userprefix: Other Users + +# If using the alternate IMAP namespace, the prefix for the shared +# namespace. The hierarchy delimiter will be automatically appended. +# +#sharedprefix: Shared Folders + +# The umask value used by various Cyrus IMAP programs +# +#umask: 077 + +# This is the hostname visible in the greeting messages of the POP, +# IMAP and LMTP daemons. If it is unset, then the result returned from +# gethostname(2) is used. +# +#servername: + +# Whether to allow anonymous logins +# +#allowanonymouslogin: no + +# Allow the use of cleartext passwords on the wire. +# +#allowplaintext: yes + +# The percent of quota utilization over which the server generates +# warnings. +# +#quotawarn: 90 + +# The length of the IMAP server's inactivity autologout timer, in minutes. +# The minimum value is 30, the default. +# +#timeout: 30 + +# The interval (in seconds) for polling the mailbox for changes while +# running the IDLE command. This option is used when idled can not be +# contacted or when polling is used exclusively. The minimum value is +# 1. A value of 0 will disable polling (and disable IDLE if polling +# is the only method available). +# +#imapidlepoll: 60 + +# If enabled, the server responds to an ID command with a parameter +# list containing: version, vendor, support-url, os, os-version, +# command, arguments, environment. Otherwise the server returns NIL. +# +#imapidresponse: yes + +# Set the length of the POP server's inactivity autologout timer, in +# minutes. The minimum value is 10, the default. +# +#poptimeout: 10 + +# Set the minimum amount of time the server forces users to wait between +# successive POP logins, in minutes. The default is 0. +# +#popminpoll: 0 + +# The number of days advertised as being the minimum a message may be +# left on the POP server before it is deleted (via the CAPA command, +# defined in the POP3 Extension Mechanism, which some clients may +# support). "NEVER", the default, may be specified with a negative +# number. The Cyrus POP3 server never deletes mail, no matter what +# the value of this parameter is. However, if a site implements a +# less liberal policy, it needs to change this parameter accordingly. +# +#popexpiretime: 0 + +# The list of userids with administrative rights. Separate each userid +# with a space. We recommend that administrator userids be separate from +# standard userids. Sites using Kerberos authentication may use separate +# "admin" instances. +# +#admins: + +# A list of users and groups that are allowed to proxy for other +# users, seperated by spaces. Any user listed in this will be allowed +# to login for any other user: use with caution. +# +#proxyservers: + +# The Access Control List (ACL) placed on a newly-created (non-user) +# mailbox that does not have a parent mailbox. +# +#defaultacl: anyone lrs + +# The pathname of the news spool directory. Only used if the partition-news +# configuration option is set. +# +#newsspool: + +# Prefix to be prepended to newsgroup names to make the corresponding IMAP +# mailbox names. +# +#newsprefix: + +# If set to a value of zero or higher, users have their INBOX folders +# created upon a successful login event or upon lmtpd(8) message +# delivery if autocreate_post is enabled, provided their INBOX did +# not yet already exist. +# +# The user's quota is set to the value if it is greater than zero, +# otherwise the user has unlimited quota. +# +# Note that quota is specified in kilobytes. +# +#autocreate_quota: -1 + +# Include notations in the protocol telemetry logs indicating the number +# of seconds since the last command or response. +# +#logtimestamps: no + +# Number of seconds to pause after a successful plaintext login. For systems +# that support strong authentication, this permits users to perceive a cost +# of using plaintext passwords. +# +#plaintextloginpause: 0 + +# The pathname of srvtab file containing the server's private key. +# This option is passed to the SASL library and overrides its default +# setting. +# +#srvtab: /etc/srvtab + +# The list of remote realms whose users may log in using cross-realm +# authentications. Seperate each realm name by a space. This option is +# only used when the server is compiled with Kerberos authentication. +# +#loginrealms: + +# If enabled, any authentication identity which has a rights on a user's +# INBOX may log in as that user. This option is only used when the server +# is compiled with Kerberos authentication. +# +#loginuseacl: no + +# If enabled, lmtpd attempts to only write one copy of a message per +# partition and create hard links, resulting in a potentially large +# disk savings. +# +#singleinstancestore: yes + +# If enabled, lmtpd will suppress delivery of a message to a mailbox +# if a message with the same message-id (or resent-message-id) is +# recorded as having already been delivered to the mailbox. Records +# the mailbox and message-id/resent-message-id of all successful +# deliveries. +# +#duplicatesuppression: yes + +# If enabled, lmtpd rejects messages with 8-bit characters in the +# headers. Otherwise, 8-bit characters are changed to `X'. (A proper +# soultion to non-ASCII characters in headers is offered by RFC 2047 +# and its predecessors.) +# +#reject8bit: no + +# Maximum incoming LMTP message size. If set, lmtpd will reject +# messages larger than maxmessagesize bytes. The default is to allow +# messages of any size. +# +#maxmessagesize: + +# Userid used to deliver messages to shared folders. For example, if +# set to "bb", email sent to "bb+shared.blah" would be delivered to +# the "shared.blah" folder. By default, an email address of +# "+shared.blah" would be used. +#postuser: + +# If enabled at compile time, this specifies a URL to reply when +# Netscape asks the server where the mail administration HTTP server +# is. The default is a site at CMU with a hopefully informative +# message; administrators should set this to a local resource with +# some information of greater use. +# +#netscapeurl: http://andrew2.andrew.cmu.edu/cyrus/imapd/netscapeadmin.html + +# Notifyd(8) method to use for "MAIL" notifications. If not set, +# "MAIL" notifications are disabled. +# +#mailnotifier: + +# Notifyd(8) method to use for "SIEVE" notifications. If not set, +# "SIEVE" notifications are disabled. +# +# This method is only used when no method is specified in the script. +# +#sievenotifier: + +# If enabled, lmtpd will look for Sieve scripts in user's home +# directories: ~user/.sieve. +# +sieveusehomedir: false + +# If sieveusehomedir is false, this directory is searched for Sieve scripts. +# The active Sieve script is s called "default", placed in the users sieve +# sieve directory (ie. /var/imap/sieve/u/user). +# +sievedir: /var/imap/sieve + +# The pathname of the sendmail executable. Sieve uses sendmail for +# sending rejections, redirects and vaca- tion responses. +# +#sendmail: /usr/sbin/sendmail + +# Username that is used as the 'From' address in rejection MDNs +# produced by sieve. +# +#postmaster: postmaster + +# If enabled, the partitions will also be hashed, in addition to the hashing +# done on configuration directories. This is recommended if one partition has +# a very bushy mailbox tree. +# +#hashimapspool: false + +# Maximum size (in kilobytes) any sieve script can be, enforced at +# submission by timsieved(8). +# +#sieve_maxscriptsize: 32 + +# Maximum number of sieve scripts any user may have, enforced at +# submission by timsieved(8). +# +#sieve_maxscripts: 5 + +# The cyrusdb backend to use for mailbox annotations. +# Allowed values: skiplist, twoskip +# +#annotation_db: twoskip + +# The cyrusdb backend to use for the duplicate delivery suppression +# and sieve. +# Allowed values: skiplist, sql, twoskip +# +#duplicate_db: twoskip + +# The cyrusdb backend to use for the mailbox list. +# Allowed values: skiplist, twoskip +# +#mboxlist_db: twoskip + +# The cyrusdb backend to use for the pts cache. +# Allowed values: skiplist, twoskip +# +#ptscache_db: twoskip + +# The cyrusdb backend to use for the seen state. +# Allowed values: flat, skiplist, twoskip +# +#seenstate_db: twoskip + +# The cyrusdb backend to use for the imap status cache. +# Allowed values: skiplist, sql, twoskip +# +#statuscache_db: twoskip + +# The cyrusdb backend to use for the subscriptions list. +# Allowed values: flat, skiplist, twoskip +# +#subscription_db: flat + +# Maximum SSF (security strength factor) that the server will allow a +# client to negotiate. +# +#sasl_maximum_layer: 256 + +# The minimum SSF that the server will allow a client to negotiate. A +# value of 1 requires integrity protection; any higher value requires +# some amount of encryption. +# +#sasl_minimum_layer: 0 + +# The mechanism used by the server to verify plaintext passwords. Possible +# values include "auxprop" or "saslauthd" +# +sasl_pwcheck_method: auxprop + +# If enabled, the SASL library will automatically create authentication +# secrets when given a plaintext password. See the SASL documentation. +# +#sasl_auto_transition: no + +# Whitespace separated list of mechanisms to allow (e.g. 'plain otp'). +# Used to restrict the mechanisms to a subset of the installed +# plugins. The default is all available. +# +#sasl_mech_list: cram-md5 digest-md5 + +# Location of the opiekeys file +# +#sasl_opiekeys: /etc/opiekeys + +# File containing the global certificate used for ALL services (imap, +# pop3, lmtp). +# +#tls_server_cert: + +# File containing the private key belonging to the global server +# certificate. +# +#tls_server_key: + +# File containing one or more Certificate Authority (CA) certificates. +# +#tls_client_ca_file: + +# Path to directory with certificates of CAs. +# +#tls_client_ca_dir: + +# The cyrusdb backend to use for the TLS cache. +# Allowed values: skiplist, sql, twoskip +# +#tls_sessions_db: twoskip + +# The length of time (in minutes) that a TLS session will be cached +# for later reuse. The maximum value is 1440 (24 hours), the default. +# A value of 0 will disable session caching. +# +#tls_session_timeout: 1440 + +# The right that a user needs to delete a mailbox. +# +#deleteright: c + +# Unix domain socket that lmtpd listens on, used by deliver(8). +# +#lmtpsocket: /var/imap/socket/lmtp + +# Unix domain socket that idled listens on. +# +#idlesocket: /var/imap/socket/idle + +# Unix domain socket that the new mail notification daemon listens on. +# +#notifysocket: /var/imap/socket/notify + +# +# EOF diff --git a/mail/cyrus-imapd38/files/imapd.in b/mail/cyrus-imapd38/files/imapd.in new file mode 100644 index 000000000000..89e6c2ce8ea1 --- /dev/null +++ b/mail/cyrus-imapd38/files/imapd.in @@ -0,0 +1,36 @@ +#!/bin/sh + +# Start or stop cyrus-imapd + +# PROVIDE: cyrus_imapd imap +# REQUIRE: DAEMON +# BEFORE: mail +# KEYWORD: shutdown + +# Define these cyrus_imapd_* variables in one of these files: +# /etc/rc.conf +# /etc/rc.conf.local +# /etc/rc.conf.d/cyrus_imapd +# +# DO NOT CHANGE THESE DEFAULT VALUES HERE +# +[ -z "$cyrus_imapd_enable" ] && cyrus_imapd_enable="NO" # Enable imapd +#cyrus_imapd_program="%%PREFIX%%/cyrus/libexec/master" # Location of imapd +[ -z "$cyrus_imapd_flags" ] && cyrus_imapd_flags="-d" # Flags to imapd program + +. /etc/rc.subr + +name="cyrus_imapd" +rcvar=cyrus_imapd_enable +command="%%PREFIX%%/cyrus/libexec/master" +pidfile="/var/run/cyrus-master.pid" +required_files="%%PREFIX%%/etc/cyrus.conf %%PREFIX%%/etc/imapd.conf" +stop_postcmd="cyrus_imapd_poststop" +extra_commands="reload" + +cyrus_imapd_poststop() { + /bin/rm -f ${pidfile} +} + +load_rc_config $name +run_rc_command "$1" diff --git a/mail/cyrus-imapd38/files/patch-Makefile.in b/mail/cyrus-imapd38/files/patch-Makefile.in new file mode 100644 index 000000000000..2308f736fdf6 --- /dev/null +++ b/mail/cyrus-imapd38/files/patch-Makefile.in @@ -0,0 +1,11 @@ +--- Makefile.in.orig 2020-06-22 03:08:46 UTC ++++ Makefile.in +@@ -2348,7 +2348,7 @@ com_err_et_libcyrus_com_err_la_CFLAGS = $(AM_CFLAGS) $ + # MD5 algorithms, without needing SSL. Currently we have no way of + # minimally linking such code. + LD_BASIC_ADD = lib/libcyrus.la lib/libcyrus_min.la ${LIBS} \ +- ${LIB_SASL} $(SSL_LIBS) $(GCOV_LIBS) ++ ${LIB_SASL} $(SSL_LIBS) $(GCOV_LIBS) -lm + + + # UTILITY is the libraries that utility programs which use Cyrus' diff --git a/mail/cyrus-imapd38/files/patch-configure b/mail/cyrus-imapd38/files/patch-configure new file mode 100644 index 000000000000..4d3deee12dcf --- /dev/null +++ b/mail/cyrus-imapd38/files/patch-configure @@ -0,0 +1,22 @@ +Index: configure +diff -u configure.orig configure +--- configure.orig 2010-10-18 21:36:00.000000000 +0900 ++++ configure 2010-10-18 23:50:45.966557478 +0900 +@@ -9501,7 +9501,7 @@ + $as_echo_n "(cached) " >&6 + else + ac_check_lib_save_LIBS=$LIBS +-LIBS="-lgssapi ${GSSAPIBASE_LIBS} -lgssapi -lkrb5 -lasn1 -lroken ${LIB_CRYPT} ${LIB_DES} -lcom_err ${LIB_SOCKET} $LIBS" ++LIBS="-lgssapi ${GSSAPIBASE_LIBS} -lgssapi -lkrb5 -lasn1 -lroken ${LIB_CRYPT} ${LIB_DES} -lcom_err ${LIB_SOCKET} -lhx509 $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + +@@ -9803,7 +9803,7 @@ + GSSAPIBASE_STATIC_LIBS="$GSSAPIBASE_LIBS $gssapi_dir/libgssapi_krb5.a $gssapi_dir/libkrb5.a $gssapi_dir/libk5crypto.a $gssapi_dir/libcom_err.a ${K5SUPSTATIC}" + elif test "$gss_impl" = "heimdal"; then + CPPFLAGS="$CPPFLAGS -DKRB5_HEIMDAL" +- GSSAPIBASE_LIBS="$GSSAPIBASE_LIBS -lgssapi -lkrb5 -lasn1 -lroken ${LIB_CRYPT} ${LIB_DES} -lcom_err" ++ GSSAPIBASE_LIBS="$GSSAPIBASE_LIBS -lgssapi -lkrb5 -lasn1 -lroken ${LIB_CRYPT} ${LIB_DES} -lcom_err -lhx509" + GSSAPIBASE_STATIC_LIBS="$GSSAPIBASE_STATIC_LIBS $gssapi_dir/libgssapi.a $gssapi_dir/libkrb5.a $gssapi_dir/libasn1.a $gssapi_dir/libroken.a $gssapi_dir/libcom_err.a ${LIB_CRYPT}" + elif test "$gss_impl" = "cybersafe03"; then + # Version of CyberSafe with two libraries diff --git a/mail/cyrus-imapd38/files/patch-imap__http_client.h b/mail/cyrus-imapd38/files/patch-imap__http_client.h new file mode 100644 index 000000000000..113854e9913d --- /dev/null +++ b/mail/cyrus-imapd38/files/patch-imap__http_client.h @@ -0,0 +1,11 @@ +--- imap/http_client.h.orig 2016-04-11 02:02:11 UTC ++++ imap/http_client.h +@@ -57,7 +57,7 @@ struct body_t { + unsigned char framing; /* Message framing */ + unsigned char te; /* Transfer-Encoding */ + unsigned max; /* Max allowed len */ +- ulong len; /* Content-Length */ ++ unsigned long len; /* Content-Length */ + struct buf payload; /* Payload */ + }; + diff --git a/mail/cyrus-imapd38/files/patch-imap__httpd.h b/mail/cyrus-imapd38/files/patch-imap__httpd.h new file mode 100644 index 000000000000..f50f66fc0cdb --- /dev/null +++ b/mail/cyrus-imapd38/files/patch-imap__httpd.h @@ -0,0 +1,11 @@ +--- imap/httpd.h.orig 2016-04-11 02:02:11 UTC ++++ imap/httpd.h +@@ -264,7 +264,7 @@ struct patch_doc_t { + + /* Meta-data for response body (payload & representation headers) */ + struct resp_body_t { +- ulong len; /* Content-Length */ ++ unsigned long len; /* Content-Length */ + struct range *range; /* Content-Range */ + const char *fname; /* Content-Dispo */ + unsigned char enc; /* Content-Encoding */ diff --git a/mail/cyrus-imapd38/files/patch-imap__jmap_mail_submission.c b/mail/cyrus-imapd38/files/patch-imap__jmap_mail_submission.c new file mode 100644 index 000000000000..56b26563b6b2 --- /dev/null +++ b/mail/cyrus-imapd38/files/patch-imap__jmap_mail_submission.c @@ -0,0 +1,11 @@ +--- imap/jmap_mail_submission.c.orig 2023-03-01 02:54:30 UTC ++++ imap/jmap_mail_submission.c +@@ -229,7 +229,7 @@ static int _emailsubmission_address_parse(json_t *addr + if (holduntil) { + if (!strcasecmp(key, "HOLDFOR")) { + char *endptr = (char *) val; +- ulong interval = val ? strtoul(val, &endptr, 10) : ULONG_MAX; ++ unsigned long interval = val ? strtoul(val, &endptr, 10) : ULONG_MAX; + time_t now = time(0); + + if (endptr == val || *endptr != '\0' || diff --git a/mail/cyrus-imapd38/files/patch-imap__notify.c b/mail/cyrus-imapd38/files/patch-imap__notify.c new file mode 100644 index 000000000000..e093378fc10d --- /dev/null +++ b/mail/cyrus-imapd38/files/patch-imap__notify.c @@ -0,0 +1,48 @@ +--- imap/notify.c.orig 2021-05-10 04:34:24 UTC ++++ imap/notify.c +@@ -49,6 +49,9 @@ + #include + #include + #include ++#if defined(__FreeBSD__) ++#include ++#endif + #include + #include + #include +@@ -209,6 +212,27 @@ EXPORTED void notify(const char *method, + FNAME_NOTIFY_SOCK, sizeof(sun_data.sun_path)); + } + ++#if defined(__FreeBSD__) ++ size_t maxsockbuf; ++ size_t len = sizeof(maxsockbuf); ++ r = sysctlbyname("kern.ipc.maxsockbuf", &maxsockbuf, &len, NULL, 0); ++ if (r == 0) { ++ bufsiz = MIN(maxsockbuf, NOTIFY_MAXSIZE); ++ } else { ++ syslog(LOG_WARNING, ++ "NOTIFY(%s): unable to sysctlbyname(kern.ipc.maxsockbuf): %m", ++ loginfo); ++ bufsiz = NOTIFY_MAXSIZE; ++ } ++ ++ optlen = sizeof(bufsiz); ++ r = setsockopt(soc, SOL_SOCKET, SO_SNDBUF, &bufsiz, optlen); ++ if (r == -1) { ++ syslog(LOG_WARNING, ++ "NOTIFY(%s): unable to setsockopt(SO_SNDBUF) on socket: %m", ++ loginfo); ++ } ++#else + /* Get send buffer size */ + optlen = sizeof(bufsiz); + r = getsockopt(soc, SOL_SOCKET, SO_SNDBUF, &bufsiz, &optlen); +@@ -221,6 +245,7 @@ EXPORTED void notify(const char *method, + + /* Use minimum of 1/10 of send buffer size (-overhead) NOTIFY_MAXSIZE */ + bufsiz = MIN(bufsiz / 10 - 32, NOTIFY_MAXSIZE); ++#endif + + /* + * build request of the form: diff --git a/mail/cyrus-imapd38/files/patch-imap__relocate_by_id.c b/mail/cyrus-imapd38/files/patch-imap__relocate_by_id.c new file mode 100644 index 000000000000..e9c771c10420 --- /dev/null +++ b/mail/cyrus-imapd38/files/patch-imap__relocate_by_id.c @@ -0,0 +1,10 @@ +--- imap/relocate_by_id.c.orig 2023-02-27 02:08:04 UTC ++++ imap/relocate_by_id.c +@@ -46,6 +46,7 @@ + #include + #endif + #include ++#include + #include + #include + #include diff --git a/mail/cyrus-imapd38/files/patch-imap__xapian_wrap.cpp b/mail/cyrus-imapd38/files/patch-imap__xapian_wrap.cpp new file mode 100644 index 000000000000..3a7eaaace548 --- /dev/null +++ b/mail/cyrus-imapd38/files/patch-imap__xapian_wrap.cpp @@ -0,0 +1,14 @@ +--- imap/xapian_wrap.cpp.orig 2022-02-23 00:13:21 UTC ++++ imap/xapian_wrap.cpp +@@ -32,7 +32,11 @@ extern "C" { + #include + + #ifdef HAVE_CLD2 ++#ifdef __FreeBSD__ ++#include ++#else + #include ++#endif + #endif + + // from global.h diff --git a/mail/cyrus-imapd38/files/patch-lib__cyr_qsort_r.c b/mail/cyrus-imapd38/files/patch-lib__cyr_qsort_r.c new file mode 100644 index 000000000000..536076a6a530 --- /dev/null +++ b/mail/cyrus-imapd38/files/patch-lib__cyr_qsort_r.c @@ -0,0 +1,19 @@ +--- lib/cyr_qsort_r.c.orig 2019-12-04 02:17:01 UTC ++++ lib/cyr_qsort_r.c +@@ -18,14 +18,14 @@ EXPORTED void cyr_qsort_r(void *base, size_t nmemb, si + // NOTE: this is kinda ugly, but it's OK if you're not multithreaded + + static void *qsort_r_thunk; +-static int (*qsort_r_compar)(const void *, const void *, void *); ++static int (*qsort_r_compar)QSORT_R_COMPAR_ARGS(const void *, const void *, void *); + static int qsort_r_compar_func(const void *a, const void *b) + { + return qsort_r_compar(a, b, qsort_r_thunk); + } + + EXPORTED void cyr_qsort_r(void *base, size_t nmemb, size_t size, +- int (*compar)(const void *, const void *, void *), ++ int (*compar)QSORT_R_COMPAR_ARGS(const void *, const void *, void *), + void *thunk) + { + qsort_r_thunk = thunk; diff --git a/mail/cyrus-imapd38/files/patch-lib__imapoptions b/mail/cyrus-imapd38/files/patch-lib__imapoptions new file mode 100644 index 000000000000..6fd98f52abd1 --- /dev/null +++ b/mail/cyrus-imapd38/files/patch-lib__imapoptions @@ -0,0 +1,20 @@ +--- lib/imapoptions.orig 2020-02-06 22:38:20 UTC ++++ lib/imapoptions +@@ -2230,7 +2230,7 @@ If all partitions are over that limit, this feature is + { "seenstate_db", "twoskip", STRINGLIST("flat", "skiplist", "twoskip", "zeroskip"), "3.1.6" } + /* The cyrusdb backend to use for the seen state. */ + +-{ "sendmail", "/usr/lib/sendmail", STRING, "2.3.17" } ++{ "sendmail", "/usr/sbin/sendmail", STRING, "2.3.17" } + /* The pathname of the sendmail executable. Sieve invokes sendmail + for sending rejections, redirects and vacation responses. */ + +@@ -2363,7 +2363,7 @@ product version in the capabilities + For backward compatibility, if no unit is specified, seconds is + assumed. */ + +-{ "sievedir", "/usr/sieve", STRING, "2.3.17" } ++{ "sievedir", "/var/imap/sieve", STRING, "2.3.17" } + /* If sieveusehomedir is false, this directory is searched for Sieve + scripts. */ + diff --git a/mail/cyrus-imapd38/files/patch-lib__libcyr_cfg.c b/mail/cyrus-imapd38/files/patch-lib__libcyr_cfg.c new file mode 100644 index 000000000000..5cbb64001209 --- /dev/null +++ b/mail/cyrus-imapd38/files/patch-lib__libcyr_cfg.c @@ -0,0 +1,13 @@ +Index: lib/libcyr_cfg.c +diff -u -p lib/libcyr_cfg.c.orig lib/libcyr_cfg.c +--- lib/libcyr_cfg.c.orig Wed Mar 10 00:05:58 2004 ++++ lib/libcyr_cfg.c Fri Feb 25 00:06:44 2005 +@@ -52,7 +52,7 @@ + #include "libcyr_cfg.h" + #include "cyrusdb.h" + +-#if defined(__GNUC__) && __GNUC__ > 1 ++#if defined(__GNUC__) && __GNUC__ > 1 && !defined(__INTEL_COMPILER) + /* We can use the GCC union constructor extension */ + #define CFGVAL(t,v) (union cyrus_config_value)((t)(v)) + #else diff --git a/mail/cyrus-imapd38/files/patch-notifyd__notifyd.c b/mail/cyrus-imapd38/files/patch-notifyd__notifyd.c new file mode 100644 index 000000000000..0719b98c13f6 --- /dev/null +++ b/mail/cyrus-imapd38/files/patch-notifyd__notifyd.c @@ -0,0 +1,44 @@ +--- notifyd/notifyd.c.orig 2021-05-05 03:21:59 UTC ++++ notifyd/notifyd.c +@@ -50,6 +50,9 @@ + #include + #include + #include ++#if defined(__FreeBSD__) ++#include ++#endif + #include + #include + #include +@@ -111,6 +114,23 @@ static int do_notify(void) + unsigned bufsiz; + socklen_t optlen; + ++#if defined(__FreeBSD__) ++ size_t maxsockbuf; ++ size_t len = sizeof(maxsockbuf); ++ r = sysctlbyname("kern.ipc.maxsockbuf", &maxsockbuf, &len, NULL, 0); ++ if (r == 0) { ++ bufsiz = MIN(maxsockbuf, NOTIFY_MAXSIZE); ++ } else { ++ syslog(LOG_WARNING, "unable to sysctlbyname(kern.ipc.maxsockbuf): %m"); ++ bufsiz = NOTIFY_MAXSIZE; ++ } ++ ++ optlen = sizeof(bufsiz); ++ r = setsockopt(soc, SOL_SOCKET, SO_RCVBUF, &bufsiz, optlen); ++ if (r == -1) { ++ syslog(LOG_WARNING, "unable to setsockopt(SO_RCVBUF) on notify socket: %m"); ++ } ++#else + /* Get receive buffer size */ + optlen = sizeof(bufsiz); + r = getsockopt(soc, SOL_SOCKET, SO_RCVBUF, &bufsiz, &optlen); +@@ -121,6 +141,7 @@ static int do_notify(void) + + /* Use minimum of 1/10 of receive buffer size (-overhead) NOTIFY_MAXSIZE */ + bufsiz = MIN(bufsiz / 10 - 32, NOTIFY_MAXSIZE); ++#endif + + while (1) { + method = class = priority = user = mailbox = message = reply = NULL; diff --git a/mail/cyrus-imapd38/files/patch-tools__mkimap b/mail/cyrus-imapd38/files/patch-tools__mkimap new file mode 100644 index 000000000000..e0cb5fe46ae7 --- /dev/null +++ b/mail/cyrus-imapd38/files/patch-tools__mkimap @@ -0,0 +1,36 @@ +--- tools/mkimap.orig 2022-10-06 22:58:05 UTC ++++ tools/mkimap +@@ -75,6 +75,9 @@ sub read_conf { + + $imapdconf = shift || "/etc/imapd.conf"; + ++$cyrus_user = $ENV{CYRUS_USER} || "%%CYRUS_USER%%"; ++$cyrus_group = $ENV{CYRUS_GROUP} || "%%CYRUS_GROUP%%"; ++ + push @configs, $imapdconf; + + while ($conf = shift @configs) { +@@ -87,6 +90,7 @@ $d = $confdir; + + print "configuring $d...\n"; + ++mkdir $d, 0755; + chdir $d or die "couldn't change to $d"; + + mkdir "proc", 0755 || warn "can't create $d/proc: $!"; +@@ -97,12 +101,15 @@ mkdir "msg", 0755 || warn "can't create $d/msg: $!"; + mkdir "ptclient", 0755 || warn "can't create $d/ptclient: $!"; + mkdir "sync", 0755 || warn "can't create $d/sync: $!"; + ++system "/usr/sbin/chown -R $cyrus_user:$cyrus_group ."; ++ + while ($part = shift @parts) { + print "creating $part...\n"; + mkdir $part, 0755 || warn "can't create $part: $!"; + chdir $part or die "couldn't change to partition $part"; + mkdir "stage.", 0755 || warn "can't create $part/stage.: $!"; + mkdir "sync.", 0755 || warn "can't create $part/sync.: $!"; ++ system "/usr/sbin/chown -R $cyrus_user:$cyrus_group $part"; + } + + print "done\n"; diff --git a/mail/cyrus-imapd38/files/pkg-deinstall.in b/mail/cyrus-imapd38/files/pkg-deinstall.in new file mode 100644 index 000000000000..e56484fd6b2b --- /dev/null +++ b/mail/cyrus-imapd38/files/pkg-deinstall.in @@ -0,0 +1,40 @@ +#!/bin/sh +# +# Created by: hetzels@westbend.net + +#set -vx + +PKG_BATCH=${BATCH:=NO} +CYRUS_USER=${CYRUS_USER:=%%CYRUS_USER%%} + +# +# Modify the 'cyrus' user created from the cyrus-sasl port +# + +modify_cyrus_user() { + USER=${CYRUS_USER} + PW=/usr/sbin/pw + if [ -x /usr/sbin/nologin ]; then + shell=/usr/sbin/nologin + elif [ -x /sbin/nologin ]; then + shell=/sbin/nologin + else + shell=/nonexistent + fi + uhome=/nonexistent + + if ! ${PW} mod user ${USER} -d "${uhome}" -s "${shell}"; then + echo "*** Failed to update user \`${USER}'." + else + echo "*** Updated user \`${USER}'." + fi +} + +case $2 in + DEINSTALL) + ;; + POST-DEINSTALL) + modify_cyrus_user + ;; + +esac diff --git a/mail/cyrus-imapd38/files/pkg-install.in b/mail/cyrus-imapd38/files/pkg-install.in new file mode 100644 index 000000000000..c806a61ad6cc --- /dev/null +++ b/mail/cyrus-imapd38/files/pkg-install.in @@ -0,0 +1,41 @@ +#!/bin/sh + +#set -vx + +PKG_BATCH=${BATCH:=NO} +PKG_PREFIX=${PKG_PREFIX:=%%PREFIX%%} +CYRUS_USER=${CYRUS_USER:=%%CYRUS_USER%%} + +# +# Modify the 'cyrus' user created from the cyrus-sasl port +# + +modify_cyrus_user() { + USER=${CYRUS_USER} + PW=/usr/sbin/pw + shell=/bin/csh + uhome=${PKG_PREFIX}/cyrus + + if ! ${PW} mod user ${USER} -d "${uhome}" -s "${shell}"; then + echo "*** Failed to update user \`${USER}'." + else + echo "*** Updated user \`${USER}'." + fi +} + +case $2 in + PRE-INSTALL) + ;; + + POST-INSTALL) + modify_cyrus_user + if grep 'sieve' /etc/services; then + echo + else + echo + echo "** Please add an entry for the sieve protocol (4190/tcp)" + echo " to /etc/services" + echo + fi + ;; +esac diff --git a/mail/cyrus-imapd38/files/pkg-message.in b/mail/cyrus-imapd38/files/pkg-message.in new file mode 100644 index 000000000000..70a4a9f76a97 --- /dev/null +++ b/mail/cyrus-imapd38/files/pkg-message.in @@ -0,0 +1,10 @@ +[ +{ type: install + message: <