Ravenports generated: 10 Feb 2024 22:55
[ravenports.git] / bucket_33 / cyrus-imapd
1 # Buildsheet autogenerated by ravenadm tool -- Do not edit.
2
3 NAMEBASE=               cyrus-imapd
4 VERSION=                3.8.1
5 KEYWORDS=               mail
6 VARIANTS=               standard
7 SDESC[standard]=        High-performance mail store with IMAP support
8 HOMEPAGE=               https://www.cyrusimap.org/
9 CONTACT=                nobody
10
11 DOWNLOAD_GROUPS=        main
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
14 DF_INDEX=               1
15 SPKGS[standard]=        complete
16                         primary
17                         tools
18                         dev
19                         man
20                         docs
21                         examples
22
23 OPTIONS_AVAILABLE=      none
24 OPTIONS_STANDARD=       none
25
26 BUILD_DEPENDS=          xapian-core:dev:standard
27                         libnghttp2:dev:standard
28                         icu:dev:standard
29                         brotli:dev:standard
30                         krb5:dev:standard
31 BUILDRUN_DEPENDS=       cyrus-sasl:primary:standard
32                         icu:primary:standard
33                         jansson:single:standard
34                         xapian-core:primary:standard
35                         rsync:single:standard
36                         krb5:primary:standard
37                         libnghttp2:primary:standard
38                         libical:single:standard
39                         brotli:primary:standard
40 EXRUN[tools]=           cyrus-imapd:primary:standard
41
42 USERS=                  cyrus
43 GROUPS=                 cyrus
44 USERGROUP_SPKG=         primary
45
46 USES=                   cpe gmake libtool perl pkgconfig ssl:openssl11
47                         shebangfix bison sqlite zlib zstd pcre mbsdfix
48 GNOME_COMPONENTS=       libxml2
49
50 LICENSE=                BSD4CLAUSE:primary
51 LICENSE_FILE=           BSD4CLAUSE:{{WRKSRC}}/COPYING
52 LICENSE_SCHEME=         solo
53
54 CPE_PRODUCT=            imapd
55 CPE_VENDOR=             cyrus
56 FPC_EQUIVALENT=         mail/cyrus-imapd32
57 SHEBANG_FILES=          imap/promdatagen
58                         tools/config2header
59                         tools/masssievec
60                         tools/mkimap
61                         perl/sieve/scripts/*.pl
62                         imap/cyr_cd.sh
63
64 MUST_CONFIGURE=         gnu
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}}
71                         --with-com_err
72                         --with-openssl={{OPENSSLBASE}}
73                         --with-perl={{PERL}}
74                         --with-gss_impl=mit
75                         --enable-autocreate
76                         --enable-idled
77                         --enable-murder
78                         --enable-squat
79                         --enable-xapian
80                         --enable-gssapi={{LOCALBASE}}
81                         --enable-http
82                         --disable-backup
83                         --disable-replication
84                         --with-mysql=no
85                         --with-pgsql=no
86                         --with-snmp=no
87                         --with-clamav=no
88                         --with-jmap=no
89
90 SINGLE_JOB=             yes
91
92 INSTALL_TARGET=         install-strip
93 INSTALL_REQ_TOOLCHAIN=  yes
94 MANDIRS=                {{PREFIX}}/cyrus/man
95 SOVERSION=              0.0.0
96 RC_SUBR=                imapd:primary
97 SUB_FILES=              pkg-message-primary
98                         pkg-install-primary
99                         pkg-deinstall-primary
100                         cyrus-imapd-man.conf
101 SUB_LIST=               CYRUS_USER=cyrus
102                         CYRUS_GROUP=cyrus
103
104 post-patch:
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
112         ${REINPLACE_CMD} \
113                 -e 's|$$(mandir)/\(man[1358]\)|${PREFIX}/cyrus/man/\1|g' \
114                 ${WRKSRC}/Makefile.in
115
116 post-install:
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
132         # documentation
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
137
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
143 technologies.
144
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
151 protocols.
152
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
157 hierarchies.
158
159
160 [FILE:57:descriptions/desc.tools]
161 This package contains the cyrus IMAP binaries and tools.
162
163
164 [FILE:103:distinfo]
165 4fa02511329f2ce19635a2f2926ce72526fd9a95d6666ebd9da2475e57b53cc2     14194377 cyrus-imapd-3.8.1.tar.gz
166
167
168 [FILE:311:manifests/plist.primary]
169 lib/
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%%
180
181
182 [FILE:1149:manifests/plist.tools]
183 %%SITE_ARCH%%/Cyrus/IMAP.pm
184 %%SITE_ARCH%%/Cyrus/IMAP/
185  Admin.pm
186  Shell.pm
187 %%SITE_ARCH%%/Cyrus/SIEVE/managesieve.pm
188 %%SITE_ARCH%%/auto/Cyrus/Annotator/Daemon/.packlist
189 %%SITE_ARCH%%/auto/Cyrus/IMAP/
190  .packlist
191  IMAP.so
192 %%SITE_ARCH%%/auto/Cyrus/SIEVE/managesieve/
193  .packlist
194  managesieve.so
195 %%SITE_PERL%%/Cyrus/Annotator/
196  AnnotateInlinedCIDs.pm
197  Daemon.pm
198  Message.pm
199 bin/
200  cyradm
201  httptest
202  imtest
203  installsieve
204  lmtptest
205  mupdatetest
206  nntptest
207  pop3test
208  sieveshell
209  sivtest
210  smtptest
211  synctest
212 cyrus/libexec/
213  fud
214  httpd
215  idled
216  imapd
217  lmtpd
218  lmtpproxyd
219  master
220  mupdate
221  notifyd
222  pop3d
223  pop3proxyd
224  promstatsd
225  proxyd
226  ptloader
227  smmapd
228  timsieved
229 cyrus/sbin/
230  arbitron
231  chk_cyrus
232  ctl_conversationsdb
233  ctl_cyrusdb
234  ctl_deliver
235  ctl_mboxlist
236  ctl_zoneinfo
237  cvt_cyrusdb
238  cvt_xlist_specialuse
239  cyr_buildinfo
240  cyr_cd.sh
241  cyr_dbtool
242  cyr_deny
243  cyr_df
244  cyr_expire
245  cyr_info
246  cyr_ls
247  cyr_pwd
248  cyr_synclog
249  cyr_userseen
250  cyr_virusscan
251  cyrdump
252  dav_reconstruct
253  deliver
254  ipurge
255  masssievec
256  mbexamine
257  mbpath
258  mbtool
259  mkimap
260  ptdump
261  ptexpire
262  quota
263  reconstruct
264  relocate_by_id
265  sievec
266  sieved
267  squatter
268  tls_prune
269  unexpunge
270 etc/man.d/cyrus-imapd.conf
271
272
273 [FILE:817:manifests/plist.dev]
274 include/cyrus/
275  acl.h
276  arrayu64.h
277  assert.h
278  auth.h
279  auth_pts.h
280  bitvector.h
281  bloom.h
282  bsearch.h
283  bufarray.h
284  charset.h
285  chartable.h
286  command.h
287  crc32.h
288  cyr_lock.h
289  cyr_qsort_r.h
290  cyrusdb.h
291  dynarray.h
292  glob.h
293  gmtoff.h
294  hash.h
295  hashset.h
296  hashu64.h
297  imapopts.h
298  imapurl.h
299  imclient.h
300  imparse.h
301  iostat.h
302  iptostring.h
303  libcyr_cfg.h
304  lsort.h
305  map.h
306  mappedfile.h
307  mkgmtime.h
308  mpool.h
309  murmurhash2.h
310  nonblock.h
311  parseaddr.h
312  procinfo.h
313  retry.h
314  rfc822tok.h
315  seqset.h
316  signals.h
317  smallarrayu64.h
318  sqldb.h
319  strarray.h
320  strhash.h
321  stristr.h
322  times.h
323  tok.h
324  vparse.h
325  wildmat.h
326  xmalloc.h
327 include/cyrus/sieve/
328  sieve_err.h
329  sieve_interface.h
330 lib/
331  libcyrus.so
332  libcyrus_com_err.so
333  libcyrus_imap.so
334  libcyrus_min.so
335  libcyrus_sieve.so
336 lib/pkgconfig/
337  libcyrus.pc
338  libcyrus_imap.pc
339  libcyrus_min.pc
340  libcyrus_sieve.pc
341
342
343 [FILE:1108:manifests/plist.man]
344 %%PERL5_MAN1%%/cyradm.1.gz
345 %%PERL5_MAN3%%/
346  Cyrus::Annotator::Daemon.3.gz
347  Cyrus::Annotator::Message.3.gz
348  Cyrus::IMAP.3.gz
349  Cyrus::IMAP::Admin.3.gz
350  Cyrus::IMAP::Shell.3.gz
351  Cyrus::SIEVE::managesieve.3.gz
352 cyrus/man/man1/
353  httptest.1.gz
354  imtest.1.gz
355  installsieve.1.gz
356  lmtptest.1.gz
357  mupdatetest.1.gz
358  nntptest.1.gz
359  pop3test.1.gz
360  sieveshell.1.gz
361  sivtest.1.gz
362  smtptest.1.gz
363 cyrus/man/man3/imclient.3.gz
364 cyrus/man/man5/
365  cyrus.conf.5.gz
366  imapd.conf.5.gz
367  krb.equiv.5.gz
368 cyrus/man/man8/
369  arbitron.8.gz
370  backupd.8.gz
371  chk_cyrus.8.gz
372  ctl_backups.8.gz
373  ctl_conversationsdb.8.gz
374  ctl_cyrusdb.8.gz
375  ctl_deliver.8.gz
376  ctl_mboxlist.8.gz
377  ctl_zoneinfo.8.gz
378  cvt_cyrusdb.8.gz
379  cyr_backup.8.gz
380  cyr_buildinfo.8.gz
381  cyr_dbtool.8.gz
382  cyr_deny.8.gz
383  cyr_df.8.gz
384  cyr_expire.8.gz
385  cyr_info.8.gz
386  cyr_synclog.8.gz
387  cyr_virusscan.8.gz
388  deliver.8.gz
389  fud.8.gz
390  httpd.8.gz
391  idled.8.gz
392  imapd.8.gz
393  ipurge.8.gz
394  lmtpd.8.gz
395  master.8.gz
396  mbexamine.8.gz
397  mbpath.8.gz
398  mbtool.8.gz
399  notifyd.8.gz
400  pop3d.8.gz
401  quota.8.gz
402  reconstruct.8.gz
403  restore.8.gz
404  smmapd.8.gz
405  squatter.8.gz
406  timsieved.8.gz
407  tls_prune.8.gz
408  unexpunge.8.gz
409
410
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
414
415
416 [FILE:1327:patches/patch-configure]
417 Index: configure
418 diff -u configure.orig configure
419 --- configure.orig      2023-09-11 02:33:23 UTC
420 +++ configure
421 @@ -26032,7 +26032,7 @@ if ${ac_cv_lib_gssapi_gss_unwrap+:} fals
422    $as_echo_n "(cached) " >&6
423  else
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.  */
429  
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
439
440
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
446
447 This is required for libxml2 2.12.0 and above.
448 ---
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 +
454  imap/xcal.c             | 1 +
455  6 files changed, 8 insertions(+)
456
457 --- imap/ctl_zoneinfo.c
458 +++ imap/ctl_zoneinfo.c
459 @@ -57,6 +57,7 @@
460  #include <sys/types.h>
461  
462  #include <libical/ical.h>
463 +#include <libxml/parser.h>
464  #include <libxml/tree.h>
465  
466  #include "annotate.h" /* for strlist functionality */
467 --- imap/http_dav.c
468 +++ imap/http_dav.c
469 @@ -93,6 +93,7 @@
470  #include "imap/imap_err.h"
471  
472  #include <errno.h>
473 +#include <libxml/parser.h>
474  #include <libxml/uri.h>
475  
476  static const struct dav_namespace_t {
477 --- imap/http_dav_sharing.c
478 +++ imap/http_dav_sharing.c
479 @@ -59,6 +59,8 @@
480  #include "imap/http_err.h"
481  #include "imap/imap_err.h"
482  
483 +#include <libxml/parser.h>
484 +
485  #define DAVNOTIFICATION_CONTENT_TYPE \
486      "application/davnotification+xml; charset=utf-8"
487  
488 --- imap/http_ischedule.c
489 +++ imap/http_ischedule.c
490 @@ -52,6 +52,8 @@
491  
492  #include <libical/ical.h>
493  
494 +#include <libxml/parser.h>
495 +
496  #include "global.h"
497  #include "httpd.h"
498  #include "http_caldav_sched.h"
499 --- imap/vcard_support.c
500 +++ imap/vcard_support.c
501 @@ -42,6 +42,7 @@
502   */
503  
504  #include <config.h>
505 +#include <libxml/parser.h>
506  #include <libxml/tree.h>
507  
508  #include "vcard_support.h"
509 --- imap/xcal.c
510 +++ imap/xcal.c
511 @@ -47,6 +47,7 @@
512  #include <stddef.h> /* for offsetof() macro */
513  #include <syslog.h>
514  
515 +#include <libxml/parser.h>
516  #include <libxml/tree.h>
517  
518  #include "global.h"
519
520
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           */
531  };
532  
533
534
535 [FILE:452:patches/patch-imap__httpd.h]
536 --- imap/httpd.h.orig   2023-09-11 01:23:52 UTC
537 +++ imap/httpd.h
538 @@ -289,7 +289,7 @@ typedef int (*encode_proc_t)(struct tran
539  
540  /* Meta-data for response body (payload & representation headers) */
541  struct resp_body_t {
542 -    ulong len;                          /* Content-Length   */
543 +    unsigned long len;                  /* Content-Length   */
544      struct range *range;                /* Content-Range    */
545      struct {
546          const char *fname;
547
548
549 [FILE:1367:patches/patch-imap_tls.c]
550 --- imap/tls.c.orig     2023-09-11 01:23:52 UTC
551 +++ imap/tls.c
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)
559  
560      const char *tls_versions = config_getstring(IMAPOPT_TLS_VERSIONS);
561  
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;
567  #else
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)
575  
576      SSL_CTX_set_options(c_ctx, off);
577      SSL_CTX_set_info_callback(c_ctx, apps_ssl_info_callback);
578
579
580 [FILE:594:patches/patch-imtest__imtest.c]
581 --- imtest/imtest.c.orig        2023-09-11 01:23:52 UTC
582 +++ imtest/imtest.c
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);
592  
593
594
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
600  
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)
605  {
606      return qsort_r_compar(a, b, qsort_r_thunk);
607  }
608  
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 *),
612                            void *thunk)
613  {
614      qsort_r_thunk = thunk;
615
616
617 [FILE:863:patches/patch-lib__imapoptions]
618 --- lib/imapoptions.orig        2023-09-11 01:23:52 UTC
619 +++ lib/imapoptions
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. */
623  
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. */
628  
629 @@ -2616,7 +2616,7 @@ product version in the capabilities
630     For backward compatibility, if no unit is specified, seconds is
631     assumed. */
632  
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
636     scripts. */
637  
638
639
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
644 +++ lib/libcyr_cfg.c
645 @@ -52,7 +52,7 @@
646  #include "xmalloc.h"
647  #include "util.h"
648  
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))
653  #else
654
655
656 [FILE:325:patches/patch-lib_byteorder.h]
657 --- lib/byteorder.h.orig        2023-08-30 01:28:01 UTC
658 +++ lib/byteorder.h
659 @@ -49,7 +49,7 @@
660  
661  #if defined(__linux__) || defined(__OpenBSD__)
662  #  include <endian.h>
663 -#elif defined(__FreeBSD__) || defined(__NetBSD__)
664 +#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__)
665  #  include <sys/endian.h>
666  #endif
667  
668
669
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
673 @@ -33,7 +33,7 @@
674  #endif
675  
676  #if !defined(HAVE_GLIBC_QSORT_R) && \
677 -       (defined(__FreeBSD__) || defined(__DragonFly__) || defined(__APPLE__))
678 +       (defined(__APPLE__))
679  #define HAVE_BSD_QSORT_R
680  #endif
681  
682
683
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)
690  
691 +#undef roundup
692  /* calculate padding size */
693  static size_t roundup(size_t record_size, int howfar)
694  {
695
696
697 [FILE:308:patches/patch-lib_util.c]
698 --- lib/util.c.orig     2023-09-11 01:23:52 UTC
699 +++ lib/util.c
700 @@ -1055,6 +1055,7 @@ EXPORTED int parsehex(const char *p, con
701  
702  /* buffer handling functions */
703  
704 +#undef roundup
705  #ifdef HAVE_DECLARE_OPTIMIZE
706  static inline size_t roundup(size_t size)
707      __attribute__((pure, always_inline, optimize("-O3")));
708
709
710 [FILE:1207:patches/patch-tools__mkimap]
711 Index: tools/mkimap
712 diff -u tools/mkimap.orig tools/mkimap
713 --- tools/mkimap.orig   2023-08-30 01:28:01 UTC
714 +++ tools/mkimap
715 @@ -75,6 +75,9 @@ sub read_conf {
716  
717  $imapdconf = shift || "/etc/imapd.conf";
718  
719 +$cyrus_user = $ENV{CYRUS_USER} || "%%CYRUS_USER%%";
720 +$cyrus_group = $ENV{CYRUS_GROUP} || "%%CYRUS_GROUP%%";
721 +
722  push @configs, $imapdconf;
723  
724  while ($conf = shift @configs) {
725 @@ -87,6 +90,7 @@ $d = $confdir;
726  
727  print "configuring $d...\n";
728  
729 +mkdir $d, 0755;
730  chdir $d or die "couldn't change to $d";
731  
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: $!";
736  
737 +system "/usr/sbin/chown -R $cyrus_user:$cyrus_group .";
738 +
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";
746  }
747  
748  print "done\n";
749
750
751 [FILE:29:files/cyrus-imapd-man.conf.in]
752 MANPATH %%PREFIX%%/cyrus/man
753
754
755 [FILE:11294:files/imapd.conf]
756 #
757 # $FreeBSD: head/mail/cyrus-imapd32/files/imapd.conf 435817 2017-03-10 02:05:01Z ume $
758 #
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
762
763 # The pathname of the IMAP configuration directory
764 #
765 configdirectory: /var/imap
766
767 # The partition name used by default for new mailboxes
768 #
769 #defaultpartition: default
770
771 # The directory for the different partitions
772 #
773 partition-default: /var/spool/imap
774
775 # Use the UNIX separator character '/' for delimiting levels of
776 # mailbox hierarchy.  The default is to use the netnews separator
777 # character '.'.
778 #unixhierarchysep: yes
779
780 # Use the alternate IMAP namespace, where personal folders reside at
781 # the same level in the hierarchy as INBOX.
782 #
783 #altnamespace: yes
784
785 # If using the alternate IMAP namespace, the prefix for the other
786 # users namespace.  The hierarchy delimiter will be automatically
787 # appended.
788 #
789 #userprefix: Other Users
790
791 # If using the alternate IMAP namespace, the prefix for the shared
792 # namespace.  The hierarchy delimiter will be automatically appended.
793 #
794 #sharedprefix: Shared Folders
795
796 # The umask value used by various Cyrus IMAP programs
797 #
798 #umask: 077
799
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.
803 #
804 #servername: <result returned by gethostname(2)>
805
806 # Whether to allow anonymous logins
807 #
808 #allowanonymouslogin: no
809
810 # Allow the use of cleartext passwords on the wire.
811 #
812 #allowplaintext: yes
813
814 # The percent  of  quota  utilization  over  which  the server generates
815 # warnings.
816 #
817 #quotawarn: 90
818
819 # The length of the IMAP server's inactivity autologout timer, in minutes.
820 # The  minimum  value  is  30,  the default.
821 #
822 #timeout: 30
823
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).
829 #
830 #imapidlepoll: 60
831
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.
835 #
836 #imapidresponse: yes
837
838 # Set the length of the POP server's inactivity autologout timer, in
839 # minutes.  The minimum value is 10, the default.
840 #
841 #poptimeout: 10
842
843 # Set the minimum amount of time the server forces users to wait between 
844 # successive POP logins, in  minutes.  The default is 0.
845 #
846 #popminpoll: 0
847
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.
855 #
856 #popexpiretime: 0
857
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
861 # "admin" instances.
862 #
863 #admins: <none>
864
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.
868 #
869 #proxyservers: <none>
870
871 # The Access Control List (ACL) placed on a newly-created (non-user)
872 # mailbox that does not have a parent mailbox.
873 #
874 #defaultacl: anyone lrs
875
876 # The pathname of the news spool directory.  Only used if the partition-news
877 # configuration option is set.
878 #
879 #newsspool: <no default>
880
881 # Prefix to be prepended to newsgroup names to make the corresponding IMAP
882 # mailbox names.
883 #
884 #newsprefix: <none>
885
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.
890 #
891 # The user's quota is set to the value if it is greater than zero,
892 # otherwise the user has unlimited quota.
893 #
894 # Note that quota is specified in kilobytes.
895 #
896 #autocreate_quota: -1
897
898 # Include notations in the protocol telemetry logs indicating the number
899 # of seconds since the last command or response.
900 #
901 #logtimestamps: no
902
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.
906 #
907 #plaintextloginpause: 0
908
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
911 # setting.
912 #
913 #srvtab: /etc/srvtab
914
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.
918 #
919 #loginrealms: <none>
920
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.
924 #
925 #loginuseacl: no
926
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
929 # disk savings.
930 #
931 #singleinstancestore: yes
932
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
937 # deliveries.
938 #
939 #duplicatesuppression: yes
940
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.)
945 #
946 #reject8bit: no
947
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.
951 #
952 #maxmessagesize: <unlimited>
953
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.
958 #postuser: <none>
959
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.
965 #
966 #netscapeurl: http://andrew2.andrew.cmu.edu/cyrus/imapd/netscapeadmin.html
967
968 # Notifyd(8) method to use for "MAIL" notifications.  If not set,
969 # "MAIL" notifications are disabled.
970 #
971 #mailnotifier: <no default>
972
973 # Notifyd(8) method to use for "SIEVE" notifications.  If not set,
974 # "SIEVE" notifications are disabled.
975 #
976 # This method is only used when no method is specified in the script.
977 #
978 #sievenotifier: <no default>
979
980 # If enabled, lmtpd will look for Sieve scripts in user's home
981 # directories: ~user/.sieve.
982 #
983 sieveusehomedir: false
984
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).
988 #
989 sievedir: /var/imap/sieve
990
991 # The pathname of the sendmail executable.  Sieve uses sendmail for
992 # sending rejections, redirects and vaca- tion responses.
993 #
994 #sendmail: /usr/sbin/sendmail
995
996 # Username that is used as the 'From' address in rejection MDNs
997 # produced by sieve.
998 #
999 #postmaster: postmaster
1000
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.
1004 #
1005 #hashimapspool: false
1006
1007 # Maximum size (in kilobytes) any sieve script can be, enforced at
1008 # submission by timsieved(8).
1009 #
1010 #sieve_maxscriptsize: 32
1011
1012 # Maximum number of sieve scripts any user may have, enforced at
1013 # submission by timsieved(8).
1014 #
1015 #sieve_maxscripts: 5
1016
1017 # The cyrusdb backend to use for mailbox annotations.
1018 # Allowed values: skiplist, twoskip
1019 #
1020 #annotation_db: twoskip
1021
1022 # The cyrusdb backend to use for the duplicate delivery suppression
1023 # and sieve.
1024 # Allowed values: skiplist, sql, twoskip
1025 #
1026 #duplicate_db: twoskip
1027
1028 # The cyrusdb backend to use for the mailbox list.
1029 # Allowed values: skiplist, twoskip
1030 #
1031 #mboxlist_db: twoskip
1032
1033 # The cyrusdb backend to use for the pts cache.
1034 # Allowed values: skiplist, twoskip
1035 #
1036 #ptscache_db: twoskip
1037
1038 # The cyrusdb backend to use for the seen state.
1039 # Allowed values: flat, skiplist, twoskip
1040 #
1041 #seenstate_db: twoskip
1042
1043 # The cyrusdb backend to use for the imap status cache.
1044 # Allowed values: skiplist, sql, twoskip
1045 #
1046 #statuscache_db: twoskip
1047
1048 # The cyrusdb backend to use for the subscriptions list.
1049 # Allowed values: flat, skiplist, twoskip
1050 #
1051 #subscription_db: flat
1052
1053 # Maximum SSF (security strength factor) that the server will allow a
1054 # client to negotiate.
1055 #
1056 #sasl_maximum_layer: 256
1057
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.
1061 #
1062 #sasl_minimum_layer: 0
1063
1064 # The mechanism used by the server to verify plaintext passwords.  Possible
1065 # values include "auxprop" or "saslauthd"
1066 #
1067 sasl_pwcheck_method: auxprop
1068
1069 # If enabled,  the SASL library will automatically create authentication
1070 # secrets when given a plaintext password.  See the SASL documentation.
1071 #
1072 #sasl_auto_transition: no
1073
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.
1077 #
1078 #sasl_mech_list: cram-md5 digest-md5
1079
1080 # Location of the opiekeys file
1081 #
1082 #sasl_opiekeys: /etc/opiekeys
1083
1084 # File containing the global certificate used for ALL services (imap,
1085 # pop3, lmtp).
1086 #
1087 #tls_server_cert: <none>
1088
1089 # File containing the private key belonging to the global server
1090 # certificate.
1091 #
1092 #tls_server_key: <none>
1093
1094 # File containing one or more Certificate Authority (CA) certificates.
1095 #
1096 #tls_client_ca_file: <none>
1097
1098 # Path to directory with certificates of CAs.
1099 #
1100 #tls_client_ca_dir: <none>
1101
1102 # The cyrusdb backend to use for the TLS cache.
1103 # Allowed values: skiplist, sql, twoskip
1104 #
1105 #tls_sessions_db: twoskip
1106
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.
1110 #
1111 #tls_session_timeout: 1440
1112
1113 # The right that a user needs to delete a mailbox.
1114 #
1115 #deleteright: c
1116
1117 # Unix domain socket that lmtpd listens on, used by deliver(8).
1118 #
1119 #lmtpsocket: /var/imap/socket/lmtp
1120
1121 # Unix domain socket that idled listens on.
1122 #
1123 #idlesocket: /var/imap/socket/idle
1124
1125 # Unix domain socket that the new mail notification daemon listens on.
1126 #
1127 #notifysocket: /var/imap/socket/notify
1128
1129 #
1130 # EOF
1131
1132
1133 [FILE:966:files/imapd.in]
1134 #!/bin/sh
1135
1136 # Start or stop cyrus-imapd
1137 # $FreeBSD: head/mail/cyrus-imapd32/files/imapd.in 472520 2018-06-16 06:42:34Z ume $
1138
1139 # PROVIDE: cyrus_imapd imap
1140 # REQUIRE: DAEMON
1141 # BEFORE: mail
1142 # KEYWORD: shutdown
1143
1144 # Define these cyrus_imapd_* variables in one of these files:
1145 #       /etc/rc.conf
1146 #       /etc/rc.conf.local
1147 #       /etc/rc.conf.d/cyrus_imapd
1148 #
1149 # DO NOT CHANGE THESE DEFAULT VALUES HERE
1150 #
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
1154
1155 . /etc/rc.subr
1156
1157 name="cyrus_imapd"
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"
1164
1165 cyrus_imapd_poststop() {
1166         /bin/rm -f ${pidfile}
1167 }
1168
1169 load_rc_config $name
1170 run_rc_command "$1"
1171
1172
1173 [FILE:744:files/pkg-deinstall-primary.in]
1174 #!/bin/sh
1175 #
1176 # $FreeBSD: head/mail/cyrus-imapd32/files/pkg-deinstall.in 411341 2016-03-18 11:39:18Z ume $
1177 # Created by: hetzels@westbend.net
1178
1179 #set -vx
1180
1181 PKG_BATCH=${BATCH:=NO}
1182 CYRUS_USER=${CYRUS_USER:=%%CYRUS_USER%%}
1183
1184 #
1185 # Modify the 'cyrus' user created from the cyrus-sasl port
1186 #
1187
1188 modify_cyrus_user() {
1189         USER=${CYRUS_USER}
1190         PW=/usr/sbin/pw
1191         if [ -x /usr/sbin/nologin ]; then
1192                 shell=/usr/sbin/nologin
1193         elif [ -x /sbin/nologin ]; then
1194                 shell=/sbin/nologin
1195         else
1196                 shell=/nonexistent
1197         fi
1198         uhome=/nonexistent
1199
1200         if ! ${PW} mod user ${USER} -d "${uhome}" -s "${shell}"; then
1201                 echo "*** Failed to update user \`${USER}'."
1202         else
1203                 echo "*** Updated user \`${USER}'."
1204         fi
1205 }
1206
1207 case $2 in
1208         DEINSTALL)
1209                 ;;
1210         POST-DEINSTALL)
1211                 modify_cyrus_user
1212                 ;;
1213
1214 esac
1215
1216
1217 [FILE:791:files/pkg-install-primary.in]
1218 #!/bin/sh
1219 #
1220 # $FreeBSD: head/mail/cyrus-imapd32/files/pkg-install.in 411341 2016-03-18 11:39:18Z ume $
1221
1222 #set -vx
1223
1224 PKG_BATCH=${BATCH:=NO}
1225 PKG_PREFIX=${PKG_PREFIX:=%%PREFIX%%}
1226 CYRUS_USER=${CYRUS_USER:=%%CYRUS_USER%%}
1227
1228 #
1229 # Modify the 'cyrus' user created from the cyrus-sasl port
1230 #
1231
1232 modify_cyrus_user() {
1233         USER=${CYRUS_USER}
1234         PW=/usr/sbin/pw
1235         shell=/bin/csh
1236         uhome=${PKG_PREFIX}/cyrus
1237
1238         if ! ${PW} mod user ${USER} -d "${uhome}" -s "${shell}"; then
1239                 echo "*** Failed to update user \`${USER}'."
1240         else
1241                 echo "*** Updated user \`${USER}'."
1242         fi
1243 }
1244
1245 case $2 in
1246         PRE-INSTALL)
1247                 ;;
1248
1249         POST-INSTALL)
1250                 modify_cyrus_user
1251                 if grep 'sieve' /etc/services; then
1252                         echo
1253                 else
1254                         echo
1255                         echo "** Please add an entry for the sieve protocol (4190/tcp)"
1256                         echo "   to /etc/services"
1257                         echo
1258                 fi
1259                 ;;
1260 esac
1261
1262
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
1267 /etc/rc.conf.
1268