1 # Buildsheet autogenerated by ravenadm tool -- Do not edit.
7 SDESC[standard]= High-performance mail store with IMAP support
8 HOMEPAGE= https://www.cyrusimap.org/
12 SITES[main]= https://github.com/cyrusimap/cyrus-imapd/releases/download/cyrus-imapd-3.8.1/
13 DISTFILE[1]= cyrus-imapd-3.8.1.tar.gz:main
15 SPKGS[standard]= complete
23 OPTIONS_AVAILABLE= none
24 OPTIONS_STANDARD= none
26 BUILD_DEPENDS= xapian-core:dev:standard
27 libnghttp2:dev:standard
31 BUILDRUN_DEPENDS= cyrus-sasl:primary:standard
33 jansson:single:standard
34 xapian-core:primary:standard
37 libnghttp2:primary:standard
38 libical:single:standard
39 brotli:primary:standard
40 EXRUN[tools]= cyrus-imapd:primary:standard
44 USERGROUP_SPKG= primary
46 USES= cpe gmake libtool perl pkgconfig ssl:openssl11
47 shebangfix bison sqlite zlib zstd pcre mbsdfix
48 GNOME_COMPONENTS= libxml2
50 LICENSE= BSD4CLAUSE:primary
51 LICENSE_FILE= BSD4CLAUSE:{{WRKSRC}}/COPYING
56 FPC_EQUIVALENT= mail/cyrus-imapd32
57 SHEBANG_FILES= imap/promdatagen
61 perl/sieve/scripts/*.pl
65 CONFIGURE_ARGS= --libexecdir={{PREFIX}}/cyrus/libexec
66 --sbindir={{PREFIX}}/cyrus/sbin
67 --sysconfdir={{PREFIX}}/etc
68 --with-cyrus-user=cyrus
69 --with-sasl={{LOCALBASE}}
70 --with-sqlite={{LOCALBASE}}
72 --with-openssl={{OPENSSLBASE}}
80 --enable-gssapi={{LOCALBASE}}
92 INSTALL_TARGET= install-strip
93 INSTALL_REQ_TOOLCHAIN= yes
94 MANDIRS= {{PREFIX}}/cyrus/man
96 RC_SUBR= imapd:primary
97 SUB_FILES= pkg-message-primary
101 SUB_LIST= CYRUS_USER=cyrus
105 ${REINPLACE_CMD} -e "s|/etc/|${PREFIX}/etc/|" \
106 -e "s|%%CYRUS_USER%%|cyrus|g" \
107 -e "s|%%CYRUS_GROUP%%|cyrus|g" \
108 ${WRKSRC}/tools/mkimap
109 ${REINPLACE_CMD} -e "s|/etc/|${PREFIX}/etc/|g" \
110 -e "s|/usr/sieve|/var/imap/sieve|g" \
111 ${WRKSRC}/tools/masssievec
113 -e 's|$$(mandir)/\(man[1358]\)|${PREFIX}/cyrus/man/\1|g' \
114 ${WRKSRC}/Makefile.in
117 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${SITE_ARCH_REL}/auto/Cyrus/IMAP/IMAP.so
118 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${SITE_ARCH_REL}/auto/Cyrus/SIEVE/managesieve/managesieve.so
119 ${MKDIR} ${STAGEDIR}${STD_EXAMPLESDIR}
120 ${MKDIR} ${STAGEDIR}${PREFIX}/etc/man.d
121 ${INSTALL_DATA} ${FILESDIR}/imapd.conf \
122 ${STAGEDIR}${STD_EXAMPLESDIR}
123 ${SED} -e 's,/run/cyrus/socket,/var/imap/socket,' \
124 ${WRKSRC}/doc/examples/cyrus_conf/normal.conf \
125 > ${STAGEDIR}${STD_EXAMPLESDIR}/cyrus.conf
126 ${INSTALL_SCRIPT} ${WRKSRC}/tools/mkimap \
127 ${STAGEDIR}${PREFIX}/cyrus/sbin/mkimap
128 ${INSTALL_SCRIPT} ${WRKSRC}/tools/masssievec \
129 ${STAGEDIR}${PREFIX}/cyrus/sbin/masssievec
130 ${INSTALL_DATA} ${WRKDIR}/cyrus-imapd-man.conf \
131 ${STAGEDIR}${PREFIX}/etc/man.d/cyrus-imapd.conf
133 ${MKDIR} ${STAGEDIR}${STD_DOCDIR}
134 cd ${WRKSRC}/doc && ${COPYTREE_SHARE} . ${STAGEDIR}${STD_DOCDIR} \
135 "! \( -path */html/_sources* -o -name .buildinfo \)"
136 ${RM} -r ${STAGEDIR}${DOCSDIR}/rst ${STAGEDIR}${STD_DOCDIR}/source
138 [FILE:1060:descriptions/desc.primary]
139 The Cyrus IMAP (Internet Message Access Protocol) server provides access to
140 personal mail and system-wide bulletin boards through the IMAP protocol.
141 The Cyrus IMAP server is a scaleable enterprise mail system designed for
142 use from small to large enterprise environments using standards-based
145 A full Cyrus IMAP implementation allows a seamless mail and bulletin board
146 environment to be set up across multiple servers. It differs from other
147 IMAP server implementations in that it is run on "sealed" servers, where
148 users are not normally permitted to log in. The mailbox database is stored
149 in parts of the filesystem that are private to the Cyrus IMAP system. All
150 user access to mail is through software using the IMAP, POP3, or KPOP
153 The private mailbox database design gives the server large advantages in
154 efficiency, scalability, and administratability. Multiple concurrent
155 read/write connections to the same mailbox are permitted. The server
156 supports access control lists on mailboxes and storage quotas on mailbox
160 [FILE:57:descriptions/desc.tools]
161 This package contains the cyrus IMAP binaries and tools.
165 4fa02511329f2ce19635a2f2926ce72526fd9a95d6666ebd9da2475e57b53cc2 14194377 cyrus-imapd-3.8.1.tar.gz
168 [FILE:311:manifests/plist.primary]
170 libcyrus.so.%%SOMAJOR%%
171 libcyrus.so.%%SOVERSION%%
172 libcyrus_com_err.so.%%SOMAJOR%%
173 libcyrus_com_err.so.%%SOVERSION%%
174 libcyrus_imap.so.%%SOMAJOR%%
175 libcyrus_imap.so.%%SOVERSION%%
176 libcyrus_min.so.%%SOMAJOR%%
177 libcyrus_min.so.%%SOVERSION%%
178 libcyrus_sieve.so.%%SOMAJOR%%
179 libcyrus_sieve.so.%%SOVERSION%%
182 [FILE:1149:manifests/plist.tools]
183 %%SITE_ARCH%%/Cyrus/IMAP.pm
184 %%SITE_ARCH%%/Cyrus/IMAP/
187 %%SITE_ARCH%%/Cyrus/SIEVE/managesieve.pm
188 %%SITE_ARCH%%/auto/Cyrus/Annotator/Daemon/.packlist
189 %%SITE_ARCH%%/auto/Cyrus/IMAP/
192 %%SITE_ARCH%%/auto/Cyrus/SIEVE/managesieve/
195 %%SITE_PERL%%/Cyrus/Annotator/
196 AnnotateInlinedCIDs.pm
270 etc/man.d/cyrus-imapd.conf
273 [FILE:817:manifests/plist.dev]
343 [FILE:1108:manifests/plist.man]
344 %%PERL5_MAN1%%/cyradm.1.gz
346 Cyrus::Annotator::Daemon.3.gz
347 Cyrus::Annotator::Message.3.gz
349 Cyrus::IMAP::Admin.3.gz
350 Cyrus::IMAP::Shell.3.gz
351 Cyrus::SIEVE::managesieve.3.gz
363 cyrus/man/man3/imclient.3.gz
373 ctl_conversationsdb.8.gz
411 [FILE:122:manifests/plist.examples]
412 @sample share/examples/cyrus-imapd/cyrus.conf etc/cyrus.conf
413 @sample share/examples/cyrus-imapd/imapd.conf etc/imapd.conf
416 [FILE:1327:patches/patch-configure]
418 diff -u configure.orig configure
419 --- configure.orig 2023-09-11 02:33:23 UTC
421 @@ -26032,7 +26032,7 @@ if ${ac_cv_lib_gssapi_gss_unwrap+:} fals
422 $as_echo_n "(cached) " >&6
424 ac_check_lib_save_LIBS=$LIBS
425 -LIBS="-lgssapi ${GSSAPIBASE_LIBS} -lgssapi -lkrb5 -lasn1 -lroken ${LIB_CRYPT} ${LIB_DES} -lcom_err ${LIB_SOCKET} $LIBS"
426 +LIBS="-lgssapi ${GSSAPIBASE_LIBS} -lgssapi -lkrb5 -lasn1 -lroken ${LIB_CRYPT} ${LIB_DES} -lcom_err ${LIB_SOCKET} -lhx509 $LIBS"
427 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
428 /* end confdefs.h. */
430 @@ -26334,7 +26334,7 @@ fi
431 GSSAPIBASE_STATIC_LIBS="$GSSAPIBASE_LIBS $gssapi_dir/libgssapi_krb5.a $gssapi_dir/libkrb5.a $gssapi_dir/libk5crypto.a $gssapi_dir/libcom_err.a ${K5SUPSTATIC}"
432 elif test "$gss_impl" = "heimdal"; then
433 CPPFLAGS="$CPPFLAGS -DKRB5_HEIMDAL"
434 - GSSAPIBASE_LIBS="$GSSAPIBASE_LIBS -lgssapi -lkrb5 -lasn1 -lroken ${LIB_CRYPT} ${LIB_DES} -lcom_err"
435 + GSSAPIBASE_LIBS="$GSSAPIBASE_LIBS -lgssapi -lkrb5 -lasn1 -lroken ${LIB_CRYPT} ${LIB_DES} -lcom_err -lhx509"
436 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}"
437 elif test "$gss_impl" = "cybersafe03"; then
438 # Version of CyberSafe with two libraries
441 [FILE:1744:patches/patch-fix-libxml2-2.12]
442 From 37ceb82f0641b03d25d9a158423abbb270fe3867 Mon Sep 17 00:00:00 2001
443 From: David King <amigadave@amigadave.com>
444 Date: Mon, 27 Nov 2023 10:34:40 +0000
445 Subject: [PATCH] Add libxml/parser.h include
447 This is required for libxml2 2.12.0 and above.
449 imap/ctl_zoneinfo.c | 1 +
450 imap/http_dav.c | 1 +
451 imap/http_dav_sharing.c | 2 ++
452 imap/http_ischedule.c | 2 ++
453 imap/vcard_support.c | 1 +
455 6 files changed, 8 insertions(+)
457 --- imap/ctl_zoneinfo.c
458 +++ imap/ctl_zoneinfo.c
460 #include <sys/types.h>
462 #include <libical/ical.h>
463 +#include <libxml/parser.h>
464 #include <libxml/tree.h>
466 #include "annotate.h" /* for strlist functionality */
470 #include "imap/imap_err.h"
473 +#include <libxml/parser.h>
474 #include <libxml/uri.h>
476 static const struct dav_namespace_t {
477 --- imap/http_dav_sharing.c
478 +++ imap/http_dav_sharing.c
480 #include "imap/http_err.h"
481 #include "imap/imap_err.h"
483 +#include <libxml/parser.h>
485 #define DAVNOTIFICATION_CONTENT_TYPE \
486 "application/davnotification+xml; charset=utf-8"
488 --- imap/http_ischedule.c
489 +++ imap/http_ischedule.c
492 #include <libical/ical.h>
494 +#include <libxml/parser.h>
498 #include "http_caldav_sched.h"
499 --- imap/vcard_support.c
500 +++ imap/vcard_support.c
505 +#include <libxml/parser.h>
506 #include <libxml/tree.h>
508 #include "vcard_support.h"
512 #include <stddef.h> /* for offsetof() macro */
515 +#include <libxml/parser.h>
516 #include <libxml/tree.h>
521 [FILE:505:patches/patch-imap__http_client.h]
522 --- imap/http_client.h.orig 2023-08-30 01:28:01 UTC
523 +++ imap/http_client.h
524 @@ -58,7 +58,7 @@ struct body_t {
525 unsigned char framing; /* Message framing */
526 unsigned char te; /* Transfer-Encoding */
527 unsigned max; /* Max allowed len */
528 - ulong len; /* Content-Length */
529 + unsigned long len; /* Content-Length */
530 struct buf payload; /* Payload */
535 [FILE:452:patches/patch-imap__httpd.h]
536 --- imap/httpd.h.orig 2023-09-11 01:23:52 UTC
538 @@ -289,7 +289,7 @@ typedef int (*encode_proc_t)(struct tran
540 /* Meta-data for response body (payload & representation headers) */
542 - ulong len; /* Content-Length */
543 + unsigned long len; /* Content-Length */
544 struct range *range; /* Content-Range */
549 [FILE:1367:patches/patch-imap_tls.c]
550 --- imap/tls.c.orig 2023-09-11 01:23:52 UTC
552 @@ -782,12 +782,14 @@ EXPORTED int tls_init_serverengine(c
553 off |= SSL_OP_ALL; /* Work around all known bugs */
554 off |= SSL_OP_NO_SSLv2; /* Disable insecure SSLv2 */
555 off |= SSL_OP_NO_SSLv3; /* Disable insecure SSLv3 */
556 +#if (OPENSSL_VERSION_NUMBER >= 0x1000000fL)
557 off |= SSL_OP_NO_COMPRESSION; /* Disable TLS compression */
558 +#endif // (OPENSSL_VERSION_NUMBER >= 0x1000000fL)
560 const char *tls_versions = config_getstring(IMAPOPT_TLS_VERSIONS);
562 if (strstr(tls_versions, "tls1_3") == NULL) {
563 -#if (OPENSSL_VERSION_NUMBER >= 0x1010100fL)
564 +#if (OPENSSL_VERSION_NUMBER >= 0x1010100fL) && !defined(LIBRESSL_VERSION_NUMBER)
565 //syslog(LOG_DEBUG, "TLS server engine: Disabled TLSv1.3");
566 off |= SSL_OP_NO_TLSv1_3;
568 @@ -1568,7 +1570,9 @@ HIDDEN int tls_init_clientengine(int ver
569 off |= SSL_OP_ALL; /* Work around all known bugs */
570 off |= SSL_OP_NO_SSLv2; /* Disable insecure SSLv2 */
571 off |= SSL_OP_NO_SSLv3; /* Disable insecure SSLv3 */
572 +#if (OPENSSL_VERSION_NUMBER >= 0x1000000fL)
573 off |= SSL_OP_NO_COMPRESSION; /* Disable TLS compression */
574 +#endif // (OPENSSL_VERSION_NUMBER >= 0x1000000fL)
576 SSL_CTX_set_options(c_ctx, off);
577 SSL_CTX_set_info_callback(c_ctx, apps_ssl_info_callback);
580 [FILE:594:patches/patch-imtest__imtest.c]
581 --- imtest/imtest.c.orig 2023-09-11 01:23:52 UTC
583 @@ -511,7 +511,9 @@ static int tls_init_clientengine(int ver
584 off |= SSL_OP_ALL; /* Work around all known bugs */
585 off |= SSL_OP_NO_SSLv2; /* Disable insecure SSLv2 */
586 off |= SSL_OP_NO_SSLv3; /* Disable insecure SSLv3 */
587 +#if (OPENSSL_VERSION_NUMBER >= 0x1000000fL)
588 off |= SSL_OP_NO_COMPRESSION; /* Disable TLS compression */
589 +#endif // (OPENSSL_VERSION_NUMBER >= 0x1000000fL)
590 SSL_CTX_set_options(tls_ctx, off);
591 SSL_CTX_set_info_callback(tls_ctx, apps_ssl_info_callback);
595 [FILE:819:patches/patch-lib__cyr_qsort_r.c]
596 --- lib/cyr_qsort_r.c.orig 2023-08-30 01:28:01 UTC
597 +++ lib/cyr_qsort_r.c
598 @@ -20,14 +20,14 @@ EXPORTED void cyr_qsort_r(void *base, si
599 // NOTE: this is kinda ugly, but it's OK if you're not multithreaded
601 static void *qsort_r_thunk;
602 -static int (*qsort_r_compar)(const void *, const void *, void *);
603 +static int (*qsort_r_compar)QSORT_R_COMPAR_ARGS(const void *, const void *, void *);
604 static int qsort_r_compar_func(const void *a, const void *b)
606 return qsort_r_compar(a, b, qsort_r_thunk);
609 EXPORTED void cyr_qsort_r(void *base, size_t nmemb, size_t size,
610 - int (*compar)(const void *, const void *, void *),
611 + int (*compar)QSORT_R_COMPAR_ARGS(const void *, const void *, void *),
614 qsort_r_thunk = thunk;
617 [FILE:863:patches/patch-lib__imapoptions]
618 --- lib/imapoptions.orig 2023-09-11 01:23:52 UTC
620 @@ -2477,7 +2477,7 @@ If all partitions are over that limit, t
621 { "seenstate_db", "twoskip", STRINGLIST("flat", "skiplist", "twoskip", "zeroskip"), "3.1.6" }
622 /* The cyrusdb backend to use for the seen state. */
624 -{ "sendmail", "/usr/lib/sendmail", STRING, "2.3.17" }
625 +{ "sendmail", "/usr/sbin/sendmail", STRING, "2.3.17" }
626 /* The pathname of the sendmail executable. Sieve invokes sendmail
627 for sending rejections, redirects and vacation responses. */
629 @@ -2616,7 +2616,7 @@ product version in the capabilities
630 For backward compatibility, if no unit is specified, seconds is
633 -{ "sievedir", "/usr/sieve", STRING, "2.3.17" }
634 +{ "sievedir", "/var/imap/sieve", STRING, "2.3.17" }
635 /* If sieveusehomedir is false, this directory is searched for Sieve
640 [FILE:435:patches/patch-lib__libcyr_cfg.c]
641 Index: lib/libcyr_cfg.c
642 diff -u -p lib/libcyr_cfg.c.orig lib/libcyr_cfg.c
643 --- lib/libcyr_cfg.c.orig 2023-08-30 01:28:01 UTC
649 -#if defined(__GNUC__) && __GNUC__ > 1
650 +#if defined(__GNUC__) && __GNUC__ > 1 && !defined(__INTEL_COMPILER)
651 /* We can use the GCC union constructor extension */
652 #define CFGVAL(t,v) (union cyrus_config_value)((t)(v))
656 [FILE:325:patches/patch-lib_byteorder.h]
657 --- lib/byteorder.h.orig 2023-08-30 01:28:01 UTC
661 #if defined(__linux__) || defined(__OpenBSD__)
663 -#elif defined(__FreeBSD__) || defined(__NetBSD__)
664 +#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__)
665 # include <sys/endian.h>
670 [FILE:272:patches/patch-lib_cyr__qsort__r.h]
671 --- lib/cyr_qsort_r.h.orig 2023-08-30 01:28:01 UTC
672 +++ lib/cyr_qsort_r.h
676 #if !defined(HAVE_GLIBC_QSORT_R) && \
677 - (defined(__FreeBSD__) || defined(__DragonFly__) || defined(__APPLE__))
678 + (defined(__APPLE__))
679 #define HAVE_BSD_QSORT_R
684 [FILE:338:patches/patch-lib_cyrusdb__twoskip.c]
685 --- lib/cyrusdb_twoskip.c.orig 2023-09-11 00:04:18 UTC
686 +++ lib/cyrusdb_twoskip.c
687 @@ -449,6 +449,7 @@ static int recovery2(struct dbengine *db
688 #define SIZE(db) mappedfile_size((db)->mf)
689 #define FNAME(db) mappedfile_fname((db)->mf)
692 /* calculate padding size */
693 static size_t roundup(size_t record_size, int howfar)
697 [FILE:308:patches/patch-lib_util.c]
698 --- lib/util.c.orig 2023-09-11 01:23:52 UTC
700 @@ -1055,6 +1055,7 @@ EXPORTED int parsehex(const char *p, con
702 /* buffer handling functions */
705 #ifdef HAVE_DECLARE_OPTIMIZE
706 static inline size_t roundup(size_t size)
707 __attribute__((pure, always_inline, optimize("-O3")));
710 [FILE:1207:patches/patch-tools__mkimap]
712 diff -u tools/mkimap.orig tools/mkimap
713 --- tools/mkimap.orig 2023-08-30 01:28:01 UTC
715 @@ -75,6 +75,9 @@ sub read_conf {
717 $imapdconf = shift || "/etc/imapd.conf";
719 +$cyrus_user = $ENV{CYRUS_USER} || "%%CYRUS_USER%%";
720 +$cyrus_group = $ENV{CYRUS_GROUP} || "%%CYRUS_GROUP%%";
722 push @configs, $imapdconf;
724 while ($conf = shift @configs) {
725 @@ -87,6 +90,7 @@ $d = $confdir;
727 print "configuring $d...\n";
730 chdir $d or die "couldn't change to $d";
732 mkdir "proc", 0755 || warn "can't create $d/proc: $!";
733 @@ -97,12 +101,15 @@ mkdir "msg", 0755 || warn "can't create
734 mkdir "ptclient", 0755 || warn "can't create $d/ptclient: $!";
735 mkdir "sync", 0755 || warn "can't create $d/sync: $!";
737 +system "/usr/sbin/chown -R $cyrus_user:$cyrus_group .";
739 while ($part = shift @parts) {
740 print "creating $part...\n";
741 mkdir $part, 0755 || warn "can't create $part: $!";
742 chdir $part or die "couldn't change to partition $part";
743 mkdir "stage.", 0755 || warn "can't create $part/stage.: $!";
744 mkdir "sync.", 0755 || warn "can't create $part/sync.: $!";
745 + system "/usr/sbin/chown -R $cyrus_user:$cyrus_group $part";
751 [FILE:29:files/cyrus-imapd-man.conf.in]
752 MANPATH %%PREFIX%%/cyrus/man
755 [FILE:11294:files/imapd.conf]
757 # $FreeBSD: head/mail/cyrus-imapd32/files/imapd.conf 435817 2017-03-10 02:05:01Z ume $
759 # Sample configurations file for Cyrus IMAPd
760 # Most lines in this file are commented; in this case the default is used.
761 # The commented lines (usually) contain the default value
763 # The pathname of the IMAP configuration directory
765 configdirectory: /var/imap
767 # The partition name used by default for new mailboxes
769 #defaultpartition: default
771 # The directory for the different partitions
773 partition-default: /var/spool/imap
775 # Use the UNIX separator character '/' for delimiting levels of
776 # mailbox hierarchy. The default is to use the netnews separator
778 #unixhierarchysep: yes
780 # Use the alternate IMAP namespace, where personal folders reside at
781 # the same level in the hierarchy as INBOX.
785 # If using the alternate IMAP namespace, the prefix for the other
786 # users namespace. The hierarchy delimiter will be automatically
789 #userprefix: Other Users
791 # If using the alternate IMAP namespace, the prefix for the shared
792 # namespace. The hierarchy delimiter will be automatically appended.
794 #sharedprefix: Shared Folders
796 # The umask value used by various Cyrus IMAP programs
800 # This is the hostname visible in the greeting messages of the POP,
801 # IMAP and LMTP daemons. If it is unset, then the result returned from
802 # gethostname(2) is used.
804 #servername: <result returned by gethostname(2)>
806 # Whether to allow anonymous logins
808 #allowanonymouslogin: no
810 # Allow the use of cleartext passwords on the wire.
814 # The percent of quota utilization over which the server generates
819 # The length of the IMAP server's inactivity autologout timer, in minutes.
820 # The minimum value is 30, the default.
824 # The interval (in seconds) for polling the mailbox for changes while
825 # running the IDLE command. This option is used when idled can not be
826 # contacted or when polling is used exclusively. The minimum value is
827 # 1. A value of 0 will disable polling (and disable IDLE if polling
828 # is the only method available).
832 # If enabled, the server responds to an ID command with a parameter
833 # list containing: version, vendor, support-url, os, os-version,
834 # command, arguments, environment. Otherwise the server returns NIL.
838 # Set the length of the POP server's inactivity autologout timer, in
839 # minutes. The minimum value is 10, the default.
843 # Set the minimum amount of time the server forces users to wait between
844 # successive POP logins, in minutes. The default is 0.
848 # The number of days advertised as being the minimum a message may be
849 # left on the POP server before it is deleted (via the CAPA command,
850 # defined in the POP3 Extension Mechanism, which some clients may
851 # support). "NEVER", the default, may be specified with a negative
852 # number. The Cyrus POP3 server never deletes mail, no matter what
853 # the value of this parameter is. However, if a site implements a
854 # less liberal policy, it needs to change this parameter accordingly.
858 # The list of userids with administrative rights. Separate each userid
859 # with a space. We recommend that administrator userids be separate from
860 # standard userids. Sites using Kerberos authentication may use separate
865 # A list of users and groups that are allowed to proxy for other
866 # users, seperated by spaces. Any user listed in this will be allowed
867 # to login for any other user: use with caution.
869 #proxyservers: <none>
871 # The Access Control List (ACL) placed on a newly-created (non-user)
872 # mailbox that does not have a parent mailbox.
874 #defaultacl: anyone lrs
876 # The pathname of the news spool directory. Only used if the partition-news
877 # configuration option is set.
879 #newsspool: <no default>
881 # Prefix to be prepended to newsgroup names to make the corresponding IMAP
886 # If set to a value of zero or higher, users have their INBOX folders
887 # created upon a successful login event or upon lmtpd(8) message
888 # delivery if autocreate_post is enabled, provided their INBOX did
889 # not yet already exist.
891 # The user's quota is set to the value if it is greater than zero,
892 # otherwise the user has unlimited quota.
894 # Note that quota is specified in kilobytes.
896 #autocreate_quota: -1
898 # Include notations in the protocol telemetry logs indicating the number
899 # of seconds since the last command or response.
903 # Number of seconds to pause after a successful plaintext login. For systems
904 # that support strong authentication, this permits users to perceive a cost
905 # of using plaintext passwords.
907 #plaintextloginpause: 0
909 # The pathname of srvtab file containing the server's private key.
910 # This option is passed to the SASL library and overrides its default
915 # The list of remote realms whose users may log in using cross-realm
916 # authentications. Seperate each realm name by a space. This option is
917 # only used when the server is compiled with Kerberos authentication.
921 # If enabled, any authentication identity which has a rights on a user's
922 # INBOX may log in as that user. This option is only used when the server
923 # is compiled with Kerberos authentication.
927 # If enabled, lmtpd attempts to only write one copy of a message per
928 # partition and create hard links, resulting in a potentially large
931 #singleinstancestore: yes
933 # If enabled, lmtpd will suppress delivery of a message to a mailbox
934 # if a message with the same message-id (or resent-message-id) is
935 # recorded as having already been delivered to the mailbox. Records
936 # the mailbox and message-id/resent-message-id of all successful
939 #duplicatesuppression: yes
941 # If enabled, lmtpd rejects messages with 8-bit characters in the
942 # headers. Otherwise, 8-bit characters are changed to `X'. (A proper
943 # soultion to non-ASCII characters in headers is offered by RFC 2047
944 # and its predecessors.)
948 # Maximum incoming LMTP message size. If set, lmtpd will reject
949 # messages larger than maxmessagesize bytes. The default is to allow
950 # messages of any size.
952 #maxmessagesize: <unlimited>
954 # Userid used to deliver messages to shared folders. For example, if
955 # set to "bb", email sent to "bb+shared.blah" would be delivered to
956 # the "shared.blah" folder. By default, an email address of
957 # "+shared.blah" would be used.
960 # If enabled at compile time, this specifies a URL to reply when
961 # Netscape asks the server where the mail administration HTTP server
962 # is. The default is a site at CMU with a hopefully informative
963 # message; administrators should set this to a local resource with
964 # some information of greater use.
966 #netscapeurl: http://andrew2.andrew.cmu.edu/cyrus/imapd/netscapeadmin.html
968 # Notifyd(8) method to use for "MAIL" notifications. If not set,
969 # "MAIL" notifications are disabled.
971 #mailnotifier: <no default>
973 # Notifyd(8) method to use for "SIEVE" notifications. If not set,
974 # "SIEVE" notifications are disabled.
976 # This method is only used when no method is specified in the script.
978 #sievenotifier: <no default>
980 # If enabled, lmtpd will look for Sieve scripts in user's home
981 # directories: ~user/.sieve.
983 sieveusehomedir: false
985 # If sieveusehomedir is false, this directory is searched for Sieve scripts.
986 # The active Sieve script is s called "default", placed in the users sieve
987 # sieve directory (ie. /var/imap/sieve/u/user).
989 sievedir: /var/imap/sieve
991 # The pathname of the sendmail executable. Sieve uses sendmail for
992 # sending rejections, redirects and vaca- tion responses.
994 #sendmail: /usr/sbin/sendmail
996 # Username that is used as the 'From' address in rejection MDNs
999 #postmaster: postmaster
1001 # If enabled, the partitions will also be hashed, in addition to the hashing
1002 # done on configuration directories. This is recommended if one partition has
1003 # a very bushy mailbox tree.
1005 #hashimapspool: false
1007 # Maximum size (in kilobytes) any sieve script can be, enforced at
1008 # submission by timsieved(8).
1010 #sieve_maxscriptsize: 32
1012 # Maximum number of sieve scripts any user may have, enforced at
1013 # submission by timsieved(8).
1015 #sieve_maxscripts: 5
1017 # The cyrusdb backend to use for mailbox annotations.
1018 # Allowed values: skiplist, twoskip
1020 #annotation_db: twoskip
1022 # The cyrusdb backend to use for the duplicate delivery suppression
1024 # Allowed values: skiplist, sql, twoskip
1026 #duplicate_db: twoskip
1028 # The cyrusdb backend to use for the mailbox list.
1029 # Allowed values: skiplist, twoskip
1031 #mboxlist_db: twoskip
1033 # The cyrusdb backend to use for the pts cache.
1034 # Allowed values: skiplist, twoskip
1036 #ptscache_db: twoskip
1038 # The cyrusdb backend to use for the seen state.
1039 # Allowed values: flat, skiplist, twoskip
1041 #seenstate_db: twoskip
1043 # The cyrusdb backend to use for the imap status cache.
1044 # Allowed values: skiplist, sql, twoskip
1046 #statuscache_db: twoskip
1048 # The cyrusdb backend to use for the subscriptions list.
1049 # Allowed values: flat, skiplist, twoskip
1051 #subscription_db: flat
1053 # Maximum SSF (security strength factor) that the server will allow a
1054 # client to negotiate.
1056 #sasl_maximum_layer: 256
1058 # The minimum SSF that the server will allow a client to negotiate. A
1059 # value of 1 requires integrity protection; any higher value requires
1060 # some amount of encryption.
1062 #sasl_minimum_layer: 0
1064 # The mechanism used by the server to verify plaintext passwords. Possible
1065 # values include "auxprop" or "saslauthd"
1067 sasl_pwcheck_method: auxprop
1069 # If enabled, the SASL library will automatically create authentication
1070 # secrets when given a plaintext password. See the SASL documentation.
1072 #sasl_auto_transition: no
1074 # Whitespace separated list of mechanisms to allow (e.g. 'plain otp').
1075 # Used to restrict the mechanisms to a subset of the installed
1076 # plugins. The default is all available.
1078 #sasl_mech_list: cram-md5 digest-md5
1080 # Location of the opiekeys file
1082 #sasl_opiekeys: /etc/opiekeys
1084 # File containing the global certificate used for ALL services (imap,
1087 #tls_server_cert: <none>
1089 # File containing the private key belonging to the global server
1092 #tls_server_key: <none>
1094 # File containing one or more Certificate Authority (CA) certificates.
1096 #tls_client_ca_file: <none>
1098 # Path to directory with certificates of CAs.
1100 #tls_client_ca_dir: <none>
1102 # The cyrusdb backend to use for the TLS cache.
1103 # Allowed values: skiplist, sql, twoskip
1105 #tls_sessions_db: twoskip
1107 # The length of time (in minutes) that a TLS session will be cached
1108 # for later reuse. The maximum value is 1440 (24 hours), the default.
1109 # A value of 0 will disable session caching.
1111 #tls_session_timeout: 1440
1113 # The right that a user needs to delete a mailbox.
1117 # Unix domain socket that lmtpd listens on, used by deliver(8).
1119 #lmtpsocket: /var/imap/socket/lmtp
1121 # Unix domain socket that idled listens on.
1123 #idlesocket: /var/imap/socket/idle
1125 # Unix domain socket that the new mail notification daemon listens on.
1127 #notifysocket: /var/imap/socket/notify
1133 [FILE:966:files/imapd.in]
1136 # Start or stop cyrus-imapd
1137 # $FreeBSD: head/mail/cyrus-imapd32/files/imapd.in 472520 2018-06-16 06:42:34Z ume $
1139 # PROVIDE: cyrus_imapd imap
1144 # Define these cyrus_imapd_* variables in one of these files:
1146 # /etc/rc.conf.local
1147 # /etc/rc.conf.d/cyrus_imapd
1149 # DO NOT CHANGE THESE DEFAULT VALUES HERE
1151 [ -z "$cyrus_imapd_enable" ] && cyrus_imapd_enable="NO" # Enable imapd
1152 #cyrus_imapd_program="%%PREFIX%%/cyrus/libexec/master" # Location of imapd
1153 [ -z "$cyrus_imapd_flags" ] && cyrus_imapd_flags="-d" # Flags to imapd program
1158 rcvar=cyrus_imapd_enable
1159 command="%%PREFIX%%/cyrus/libexec/master"
1160 pidfile="/var/run/cyrus-master.pid"
1161 required_files="%%PREFIX%%/etc/cyrus.conf %%PREFIX%%/etc/imapd.conf"
1162 stop_postcmd="cyrus_imapd_poststop"
1163 extra_commands="reload"
1165 cyrus_imapd_poststop() {
1166 /bin/rm -f ${pidfile}
1169 load_rc_config $name
1173 [FILE:744:files/pkg-deinstall-primary.in]
1176 # $FreeBSD: head/mail/cyrus-imapd32/files/pkg-deinstall.in 411341 2016-03-18 11:39:18Z ume $
1177 # Created by: hetzels@westbend.net
1181 PKG_BATCH=${BATCH:=NO}
1182 CYRUS_USER=${CYRUS_USER:=%%CYRUS_USER%%}
1185 # Modify the 'cyrus' user created from the cyrus-sasl port
1188 modify_cyrus_user() {
1191 if [ -x /usr/sbin/nologin ]; then
1192 shell=/usr/sbin/nologin
1193 elif [ -x /sbin/nologin ]; then
1200 if ! ${PW} mod user ${USER} -d "${uhome}" -s "${shell}"; then
1201 echo "*** Failed to update user \`${USER}'."
1203 echo "*** Updated user \`${USER}'."
1217 [FILE:791:files/pkg-install-primary.in]
1220 # $FreeBSD: head/mail/cyrus-imapd32/files/pkg-install.in 411341 2016-03-18 11:39:18Z ume $
1224 PKG_BATCH=${BATCH:=NO}
1225 PKG_PREFIX=${PKG_PREFIX:=%%PREFIX%%}
1226 CYRUS_USER=${CYRUS_USER:=%%CYRUS_USER%%}
1229 # Modify the 'cyrus' user created from the cyrus-sasl port
1232 modify_cyrus_user() {
1236 uhome=${PKG_PREFIX}/cyrus
1238 if ! ${PW} mod user ${USER} -d "${uhome}" -s "${shell}"; then
1239 echo "*** Failed to update user \`${USER}'."
1241 echo "*** Updated user \`${USER}'."
1251 if grep 'sieve' /etc/services; then
1255 echo "** Please add an entry for the sieve protocol (4190/tcp)"
1256 echo " to /etc/services"
1263 [FILE:192:files/pkg-message-primary.in]
1264 To setup mail spool, modify %%PREFIX%%/etc/imapd.conf appropriately,
1265 then run %%PREFIX%%/cyrus/sbin/mkimap.
1266 To run Cyrus IMAPd from startup, add cyrus_imapd_enable="YES" in your