diff --git a/Makefile.in b/Makefile.in index e8a86b1..e38672f 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1769,6 +1769,8 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ +RM_BIN = @RM_BIN@ +RSYNC_BIN = @RSYNC_BIN@ SASLFLAGS = @SASLFLAGS@ SED = @SED@ SET_MAKE = @SET_MAKE@ diff --git a/README.md b/README.md index 0208a03..2408791 100644 --- a/README.md +++ b/README.md @@ -85,7 +85,7 @@ The latest development code is on the branch called 'master', and the latest code destined for the stable release is on the branch 'cyrus-imapd-$major.$minor'. So the current -stable release is called cyrus-imapd-2.5 +stable release is called cyrus-imapd-3.0 Unlike releases, the git repository doesn't have a pre-built ./configure script. You need to generate it with autoreconf: @@ -97,7 +97,7 @@ If you need to build a local copy of the docs current to the version of the code, these need to be built: see doc/README.docs -Read through doc/html/imap/developer.html for more detailed instructions on building and contributing. The latest version is online at http://www.cyrusimap.org/imap/developer.html +Read through doc/html/imap/developer.html for more detailed instructions on building and contributing. The latest version is online at https://www.cyrusimap.org/imap/developer.html How to install Cyrus libraries from git source ============================================== @@ -155,7 +155,7 @@ outstanding bugs. Old bugs can be found at https://bugzilla.cyrusimap.org/ -Our guide at http://www.cyrusimap.org/feedback-bugs.html has all the +Our guide at https://www.cyrusimap.org/support.html has all the information about how to contact us and how best to get your change accepted. Licensing Information @@ -169,7 +169,7 @@ Whether you have a success story to share, or a bug to file, or a request for help or a feature to add or some documentation to contribute or you'd just like to say hi, we want to hear from you! See -http://www.cyrusimap.org/feedback.html for various ways you can get hold +https://www.cyrusimap.org/support.html for various ways you can get hold of us. diff --git a/VERSION b/VERSION index a909317..778bf95 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.0.10 +3.0.11 diff --git a/config.h.in b/config.h.in index ca5d54e..62705e2 100644 --- a/config.h.in +++ b/config.h.in @@ -493,6 +493,12 @@ /* Define to the version of this package. */ #undef PACKAGE_VERSION +/* Path to 'rm' binary */ +#undef RM_BIN + +/* Path to 'rsync' binary */ +#undef RSYNC_BIN + /* ShapeLib Version */ #undef SHAPELIB_VERSION diff --git a/configure b/configure index c759a86..8ceaf2d 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for cyrus-imapd 3.0.10. +# Generated by GNU Autoconf 2.69 for cyrus-imapd 3.0.11. # # Report bugs to . # @@ -590,8 +590,8 @@ # Identity of this package. PACKAGE_NAME='cyrus-imapd' PACKAGE_TARNAME='cyrus-imapd' -PACKAGE_VERSION='3.0.10' -PACKAGE_STRING='cyrus-imapd 3.0.10' +PACKAGE_VERSION='3.0.11' +PACKAGE_STRING='cyrus-imapd 3.0.11' PACKAGE_BUGREPORT='https://github.com/cyrusimap/cyrus-imapd/issues' PACKAGE_URL='https://www.cyrusimap.org' @@ -756,6 +756,8 @@ XAPIAN_CXXFLAGS HAVE_CXX11 XAPIAN_CONFIG +RSYNC_BIN +RM_BIN USE_SPHINX_FALSE USE_SPHINX_TRUE USE_SQUAT_FALSE @@ -1025,6 +1027,8 @@ CPP LT_SYS_LIBRARY_PATH CXXCPP +RM_BIN +RSYNC_BIN XAPIAN_CONFIG YACC YFLAGS @@ -1599,7 +1603,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures cyrus-imapd 3.0.10 to adapt to many kinds of systems. +\`configure' configures cyrus-imapd 3.0.11 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1671,7 +1675,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of cyrus-imapd 3.0.10:";; + short | recursive ) echo "Configuration of cyrus-imapd 3.0.11:";; esac cat <<\_ACEOF @@ -1807,6 +1811,8 @@ LT_SYS_LIBRARY_PATH User-defined run-time library search path. CXXCPP C++ preprocessor + RM_BIN Location of rm + RSYNC_BIN Location of rsync XAPIAN_CONFIG Location of xapian-config YACC The `Yet Another Compiler Compiler' implementation to use. @@ -1916,7 +1922,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -cyrus-imapd configure 3.0.10 +cyrus-imapd configure 3.0.11 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2692,7 +2698,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by cyrus-imapd $as_me 3.0.10, which was +It was created by cyrus-imapd $as_me 3.0.11, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3186,9 +3192,9 @@ program_prefix=${target_alias}- -CYRUS_IMAPD_SERIES=`echo 3.0.10 | cut -d- -f1 | cut -d. -f1-2` -CYRUS_IMAPD_REVISION=`echo 3.0.10 | cut -d- -f1 | cut -d. -f3` -CYRUS_IMAPD_PATCH=`echo 3.0.10 | cut -d- -f2-` +CYRUS_IMAPD_SERIES=`echo 3.0.11 | cut -d- -f1 | cut -d. -f1-2` +CYRUS_IMAPD_REVISION=`echo 3.0.11 | cut -d- -f1 | cut -d. -f3` +CYRUS_IMAPD_PATCH=`echo 3.0.11 | cut -d- -f2-` @@ -3800,7 +3806,7 @@ # Define the identity of the package. PACKAGE='cyrus-imapd' - VERSION='3.0.10' + VERSION='3.0.11' cat >>confdefs.h <<_ACEOF @@ -19871,6 +19877,110 @@ if test "x$enable_xapian" != xno ; then + # Extract the first word of "rm", so it can be a program name with args. +set dummy rm; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_RM_BIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $RM_BIN in + [\\/]* | ?:[\\/]*) + ac_cv_path_RM_BIN="$RM_BIN" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_RM_BIN="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +RM_BIN=$ac_cv_path_RM_BIN +if test -n "$RM_BIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RM_BIN" >&5 +$as_echo "$RM_BIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test -z "$RM_BIN"; then : + + as_fn_error $? "Can't find the 'rm' binary" "$LINENO" 5 + +fi + +cat >>confdefs.h <<_ACEOF +#define RM_BIN "$RM_BIN" +_ACEOF + + + + # Extract the first word of "rsync", so it can be a program name with args. +set dummy rsync; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_RSYNC_BIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $RSYNC_BIN in + [\\/]* | ?:[\\/]*) + ac_cv_path_RSYNC_BIN="$RSYNC_BIN" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_RSYNC_BIN="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +RSYNC_BIN=$ac_cv_path_RSYNC_BIN +if test -n "$RSYNC_BIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RSYNC_BIN" >&5 +$as_echo "$RSYNC_BIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test -z "$RSYNC_BIN"; then : + + as_fn_error $? "Can't find the 'rsync' binary" "$LINENO" 5 + +fi + +cat >>confdefs.h <<_ACEOF +#define RSYNC_BIN "$RSYNC_BIN" +_ACEOF + + + # Extract the first word of "xapian-config", so it can be a program name with args. set dummy xapian-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 @@ -27525,7 +27635,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by cyrus-imapd $as_me 3.0.10, which was +This file was extended by cyrus-imapd $as_me 3.0.11, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -27596,7 +27706,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -cyrus-imapd config.status 3.0.10 +cyrus-imapd config.status 3.0.11 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 18049ec..285c755 100644 --- a/configure.ac +++ b/configure.ac @@ -557,6 +557,20 @@ [AS_HELP_STRING([--enable-xapian], [enable Xapian support])],, [enable_xapian=no]) if test "x$enable_xapian" != xno ; then + AC_ARG_VAR(RM_BIN, [Location of rm]) + AC_PATH_PROG(RM_BIN, [rm], []) + AS_IF([test -z "$RM_BIN"],[ + AC_MSG_ERROR([Can't find the 'rm' binary]) + ]) + AC_DEFINE_UNQUOTED([RM_BIN], ["$RM_BIN"], [Path to 'rm' binary]) + + AC_ARG_VAR(RSYNC_BIN, [Location of rsync]) + AC_PATH_PROG(RSYNC_BIN, [rsync], []) + AS_IF([test -z "$RSYNC_BIN"],[ + AC_MSG_ERROR([Can't find the 'rsync' binary]) + ]) + AC_DEFINE_UNQUOTED([RSYNC_BIN], ["$RSYNC_BIN"], [Path to 'rsync' binary]) + AC_ARG_VAR(XAPIAN_CONFIG, [Location of xapian-config]) AC_PATH_PROG(XAPIAN_CONFIG, xapian-config, []) if test -z "$XAPIAN_CONFIG"; then diff --git a/cunit/charset.testc b/cunit/charset.testc index 039973f..ac4753e 100644 --- a/cunit/charset.testc +++ b/cunit/charset.testc @@ -620,7 +620,7 @@ char *s; static const char STR_RFC5051[] = {0xc7, 0x84, 0}; static const char RES_RFC5051[] = {'D', 'z', 0xcc, 0x8c, 0}; - int flags = 0; /* super complient */ + int flags = 0; /* super compliant */ charset_t cs; cs = charset_lookupname("utf-8"); diff --git a/cunit/quota.testc b/cunit/quota.testc index 8544278..90e739b 100644 --- a/cunit/quota.testc +++ b/cunit/quota.testc @@ -432,13 +432,13 @@ quota_diff[QUOTA_STORAGE] = 10*1024; quota_diff[QUOTA_MESSAGE] = 2; quota_diff[QUOTA_ANNOTSTORAGE] = 1*1024; - r = quota_update_useds(NULL, quota_diff, 0); - CU_ASSERT_EQUAL(r, IMAP_QUOTAROOT_NONEXISTENT); - - r = quota_update_useds("", quota_diff, 0); - CU_ASSERT_EQUAL(r, IMAP_QUOTAROOT_NONEXISTENT); - - r = quota_update_useds(QUOTAROOT_NONEXISTANT, quota_diff, 0); + r = quota_update_useds(NULL, quota_diff, NULL); + CU_ASSERT_EQUAL(r, IMAP_QUOTAROOT_NONEXISTENT); + + r = quota_update_useds("", quota_diff, NULL); + CU_ASSERT_EQUAL(r, IMAP_QUOTAROOT_NONEXISTENT); + + r = quota_update_useds(QUOTAROOT_NONEXISTANT, quota_diff, NULL); CU_ASSERT_EQUAL(r, IMAP_QUOTAROOT_NONEXISTENT); /* set limits */ @@ -454,7 +454,7 @@ #define TESTCASE(d0, d1, d2, e0, e1, e2) { \ static const quota_t diff[QUOTA_NUMRESOURCES] = { d0, d1, d2 }; \ static const quota_t expused[QUOTA_NUMRESOURCES] = { e0, e1, e2 }; \ - r = quota_update_useds(QUOTAROOT, diff, 0); \ + r = quota_update_useds(QUOTAROOT, diff, NULL); \ CU_ASSERT_EQUAL(r, 0); \ memset(&q2, 0, sizeof(q2)); \ q2.root = QUOTAROOT; \ @@ -491,6 +491,13 @@ /* underflow is prevented */ TESTCASE(-50*1024, -10, -5*1024, 0, 0, 0); + + /* XXX we call quota_update_useds() with a NULL mailbox, which + * XXX will crash in some circumstances (see comment inline), but + * XXX our tests don't crash... which means we're missing tests + * XXX for the codepath that depends on mboxname! + * XXX https://github.com/cyrusimap/cyrus-imapd/issues/2808 + */ #undef TESTCASE } diff --git a/cunit/search_expr.testc b/cunit/search_expr.testc index e029609..c75b7d1 100644 --- a/cunit/search_expr.testc +++ b/cunit/search_expr.testc @@ -324,16 +324,16 @@ /* YOUNGER in seconds ago */ /* Inexplicably, the RFC defines that *both* YOUNGER and OLDER * include the specified second */ - //time_push_fixed(DATE1_MID_TIME); - //TESTCASE("older 0\r\n", - //"(and (le internaldate "DATE1_MID"))"); - //TESTCASE("older 43200\r\n", - //"(and (le internaldate "DATE1_BEGIN"))"); - //TESTCASE("younger 0\r\n", - //"(and (ge internaldate "DATE1_MID"))"); - //TESTCASE("younger 43200\r\n", - //"(and (ge internaldate "DATE1_BEGIN"))"); - //time_pop(); + time_push_fixed(DATE1_MID_TIME); + TESTCASE("older 0\r\n", + "(and (le internaldate "DATE1_MID"))"); + TESTCASE("older 43200\r\n", + "(and (le internaldate "DATE1_BEGIN"))"); + TESTCASE("younger 0\r\n", + "(and (ge internaldate "DATE1_MID"))"); + TESTCASE("younger 43200\r\n", + "(and (ge internaldate "DATE1_BEGIN"))"); + time_pop(); /* * Search criteria from RFC 5257 diff --git a/doc/README.xapian b/doc/README.xapian index 71aaeed..cae935c 100644 --- a/doc/README.xapian +++ b/doc/README.xapian @@ -51,7 +51,7 @@ cyrus.conf: -START { +DAEMON { # run a rolling squatter squatter cmd="squatter -R" } diff --git a/doc/html/.buildinfo b/doc/html/.buildinfo index affa407..aa5f612 100644 --- a/doc/html/.buildinfo +++ b/doc/html/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 211c659827ef1dfccd3b5e777a3fec33 +config: a761281db2d3788532ca920866f31271 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/doc/html/_sources/imap/developer/compiling.txt b/doc/html/_sources/imap/developer/compiling.txt index 2ddedc1..97c1222 100644 --- a/doc/html/_sources/imap/developer/compiling.txt +++ b/doc/html/_sources/imap/developer/compiling.txt @@ -76,7 +76,10 @@ `perl-devel`_, perl-dev, perl-devel, "no", "Perl development headers to allow building binary perl libraries. Needs version 5+. Configure option: ``--with-perl``" + `perl(Pod::POM::View::Restructured)`_,,,, "Perl library to generate man pages. This has to be available to the system-wide perl interpreter, found by ``which``: ``./configure --with-perl`` is not honoured." + `python(Sphinx)`_,,,, "Python library needed for building the documentation" `valgrind`_, valgrind, valgrind, "no", "Performance and memory testing." + `xxd`_,,,, "For rebuilding the _js.h files, for CalDAV and CardDAV support." SASL Authentication ################### @@ -137,6 +140,7 @@ :widths: 20,15,15,5,45 SSL certificates, ssl-cert-dev, mod_ssl, "no", "Used if you're installing SSL certificates" + `ClamAV`_,,,, Used by **cyr_virusscan**. `net-snmp`_, libsnmp-dev, net-snmp-devel, "no", "version 4.2 or higher" `openldap`_, libldap2-dev, openldap-devel, "no", "Development headers to enable **ptloader** to interface with LDAP directly, for canonification of login usernames to mailbox names, @@ -145,30 +149,40 @@ Configure option: ``--with-ldap``" `tcp_wrappers`_, tcp_wrappers, xx, "no" - `transfig`_, transfig, xx, "no" + `transfig`_, transfig, xx, "no", "also known as fig2dev" + `pcre`_,,,, "PCRE 1 (or 8) - for regular expression matching" + `perl(Term::ReadLine)`_,,,, "Perl library needed by cyradm" `zlib`_, zlib1g-dev, zlib-devel, "no", "Compression support for httpd" + `libbrotli`_,,,, "Brotli compression support for httpd" `nghttp2`_, libnghttp2-dev, libnghttp2-devel, "no", "HTTP/2 support for httpd" +.. _ClamAV: https://www.clamav.net/ .. _CUnit: http://cunit.sourceforge.net/ .. _Cyrus SASL Plain: :ref:`Cyrus SASL ` -.. _Cyrus SASL MD5: :ref:`Cyrus SASL ` +.. _sasl binaries: :ref:`Cyrus SASL ` .. _lmdb: http://lmdb.tech/ .. _Kerberos: http://web.mit.edu/kerberos/www/ -.. _libical: http://freeassociation.sourceforge.net/ +.. _libbrotli: https://github.com/google/brotli +.. _libical: https://github.com/libical/libical/ .. _libxml: http://xmlsoft.org/ .. _mysql: http://www.mysql.com .. _mariadb: http://mariadb.org .. _net-snmp: http://net-snmp.sourceforge.net/ +.. _nghttp2: https://nghttp2.org/ .. _openldap: http://www.openldap.org/ +.. _pcre: http://www.pcre.org/ +.. _perl(Term::ReadLine): https://metacpan.org/pod/Term::ReadLine .. _perl(ExtUtils::MakeMaker): http://search.cpan.org/dist/ExtUtils-MakeMaker/ +.. _perl(Pod::POM::View::Restructured): https://metacpan.org/pod/Pod::POM::View::Restructured .. _perl-devel: http://www.perl.org/ .. _postgresql: http://www.postgresql.org/ +.. _python(Sphinx): https://www.sphinx-doc.org/ .. _tcp_wrappers: ftp://ftp.porcupine.org/pub/security/index.html .. _transfig: http://www.xfig.org/ .. _valgrind: http://www.valgrind.org/ .. _zlib: http://zlib.net/ -.. _nghttp2: https://nghttp2.org/ +.. _xxd: https://github.com/ConorOG/xxd/ Install tools for building @@ -225,12 +239,12 @@ Murder ###### - ```./configure --enable-murder`` + ``./configure --enable-murder`` Replication ########### - ```./configure --enable-replication`` + ``./configure --enable-replication`` Compile ------- diff --git a/doc/html/_sources/imap/developer/developer-testing.txt b/doc/html/_sources/imap/developer/developer-testing.txt index 8805aa3..ae51dab 100644 --- a/doc/html/_sources/imap/developer/developer-testing.txt +++ b/doc/html/_sources/imap/developer/developer-testing.txt @@ -30,14 +30,14 @@ .. code-block:: bash - sudo apt-get install libtest-unit-perl libconfig-inifiles-perl \ + sudo apt-get install libanyevent-perl libtest-unit-perl libconfig-inifiles-perl \ libdatetime-perl libbsd-resource-perl libxml-generator-perl \ libencode-imaputf7-perl libio-stringy-perl libnews-nntpclient-perl \ - libfile-chdir-perl libnet-server-perl libunix-syslog-perl \ + libfile-chdir-perl libfile-libmagic-perl libnet-server-perl libunix-syslog-perl \ libdata-uuid-perl libjson-xs-perl libdata-ical-perl libjson-perl \ libdatetime-format-ical-perl libtext-levenshteinxs-perl \ libmime-types-perl libdatetime-format-iso8601-perl libcal-dav-perl \ - libclone-perl + libclone-perl libstring-crc32-perl libnet-ldap-server-perl The quickest option for the rest is installing via CPAN, but you could build packages using dh-make-perl if that is preferred. diff --git a/doc/html/_sources/imap/developer/install-xapian.txt b/doc/html/_sources/imap/developer/install-xapian.txt index 3122f18..04a596e 100644 --- a/doc/html/_sources/imap/developer/install-xapian.txt +++ b/doc/html/_sources/imap/developer/install-xapian.txt @@ -37,6 +37,14 @@ Then follow on with the Cyrus :ref:`compilation instructions `, adding ``--enable-xapian`` to the flags to ``./configure``. +Additional dependencies required for Cyrus with Xapian support +============================================================== + +When building Cyrus with Xapian support enabled, the following additional +packages are required: + +* `rsync `_ (used when compacting databases) + .. _configuring-xapian: Configuring Xapian diff --git a/doc/html/_sources/imap/download/release-notes/2.5/x/2.5.13.txt b/doc/html/_sources/imap/download/release-notes/2.5/x/2.5.13.txt new file mode 100644 index 0000000..e5691c1 --- /dev/null +++ b/doc/html/_sources/imap/download/release-notes/2.5/x/2.5.13.txt @@ -0,0 +1,39 @@ +:tocdepth: 3 + +=============================== +Cyrus IMAP 2.5.13 Release Notes +=============================== + +.. IMPORTANT:: + + This is a bug-fix release in the `stable 2.5 series `_. + + Refer to the Cyrus IMAP 2.5.0 Release Notes for important information + about the 2.5 series, including upgrading instructions. + +Download via HTTPS: + + * https://github.com/cyrusimap/cyrus-imapd/releases/download/cyrus-imapd-2.5.13/cyrus-imapd-2.5.13.tar.gz + * https://github.com/cyrusimap/cyrus-imapd/releases/download/cyrus-imapd-2.5.13/cyrus-imapd-2.5.13.tar.gz.sig + +.. _relnotes-2.5.13-changes: + +Changes Since 2.5.12 +==================== + +Release changes +--------------- + +We’re trialing using the Github Releases feature. If you have trouble +downloading this release, please report this to the mailing lists. Thanks! + +Security fixes +-------------- + +* Fixed CVE-2019-11356: buffer overrun in httpd + +Bug fixes +--------- + +* Fixed: ptloader, ptexpire and ptdump now honour the ``ptscache_db_path`` + setting diff --git a/doc/html/_sources/imap/download/release-notes/3.0/x/3.0.11.txt b/doc/html/_sources/imap/download/release-notes/3.0/x/3.0.11.txt new file mode 100644 index 0000000..598c99c --- /dev/null +++ b/doc/html/_sources/imap/download/release-notes/3.0/x/3.0.11.txt @@ -0,0 +1,78 @@ +:tocdepth: 3 + +=============================== +Cyrus IMAP 3.0.11 Release Notes +=============================== + +.. IMPORTANT:: + + This is a bug-fix release in the stable 3.0 series. + + Refer to the Cyrus IMAP 3.0.0 Release Notes for important information + about the 3.0 series, including upgrading instructions. + +Download via HTTPS: + + * https://github.com/cyrusimap/cyrus-imapd/releases/download/cyrus-imapd-3.0.11/cyrus-imapd-3.0.11.tar.gz + * https://github.com/cyrusimap/cyrus-imapd/releases/download/cyrus-imapd-3.0.11/cyrus-imapd-3.0.11.tar.gz.sig + + +.. _relnotes-3.0.11-changes: + +Changes Since 3.0.10 +==================== + +Release changes +--------------- + +We're trialing using the Github Releases feature. If you have trouble downloading +this release, please report this to the mailing lists. Thanks! + +Data-loss bug fix (:issue:`2389`) +--------------------------------- + +This bug affects upgrades to all Cyrus IMAP 3.0.x releases prior to 3.0.11, +where mailboxes have existed from 2.3 and earlier. + +Specifically, mailboxes that either: + +* still have an index version less than 8, or +* previously had an index version less than 8, but were upgraded to a newer + index version by Cyrus IMAP 2.4 or 2.5, or +* previously had an index version less than 8, but were upgraded to a newer + index version by some earlier Cyrus IMAP 2.3.x versions (unknown which) + +may contain message records with an unitialised modseq of 0. + +Some later versions of 2.3.x (unknown which) would rewrite modseqs of 0 to 1 +while upgrading indexes. If one of these versions was used to upgrade the +index, then there will no longer be message records with a modseq of 0. + +This behaviour was removed during pre-2.4 refactors, so Cyrus IMAP 2.4 and +2.5 do not replace modseq of 0 when upgrading indexes. + +A new API introduced in Cyrus IMAP 3.0.0 resulted in index records with a +modseq of 0 being completely ignored (therefore invisible to users, and +apparently "missing"). This includes the `reconstruct` utility, which means +that attempting to fix the "missing messages" by running `reconstruct` will +ignore (and maybe remove) the existing index records, and then "rediscover" +the message files on disk and add new records for them (without the index-only +data from the old record, like seen state and other flags). + +Cyrus IMAP 3.0.11 no longer ignores these records. + +Bug fixes +--------- + +* Fixed :issue:`2777`: `rm` and `rsync` binary locations are now detected during + configure, rather than just hardcoded as `/bin/rm` and `/usr/bin/rsync` +* Many documentation enhancements (thanks Дилян Палаузов, Christoph Moench-Tegeder, + Xavier Guimard) +* Fixed :issue:`2795`: failing unit test on PPC (32-bit, Big Endian) +* Fixed :issue:`2817`: build failure with ICU 64 +* Fixed: removed old limit of 20 delayed-delete subfolders + (`mailing list discussion `_) +* Fixed :issue:`2831`: httpd version info footer formats LibXML version correctly + (thanks Дилян Палаузов) +* Fixed :issue:`2832`: httpd no longer crashes on timezone propfind for + nonexistent mailbox (thanks Дилян Палаузов) diff --git a/doc/html/_sources/imap/reference/admin/murder/murder-installation.txt b/doc/html/_sources/imap/reference/admin/murder/murder-installation.txt index df5b16a..ca6af9e 100644 --- a/doc/html/_sources/imap/reference/admin/murder/murder-installation.txt +++ b/doc/html/_sources/imap/reference/admin/murder/murder-installation.txt @@ -439,3 +439,10 @@ **Databases are never created on the frontends/slaves** Check to ensure that the mupdate slave process is started, (is prefork=1) + +**mupdate crashes with SIGSERV when using STARTTLS** + The OpenSSL code in Cyrus Imap is for single-threaded applications and + mupdate is a multi-threaded application. Do not encrypt the communication + with mupdate. See also the discussion “SIGSEGV in cyrus-imapd 3.0.7 mupdate” + on `cyrus-devel from July 2018 `_ + and https://github.com/cyrusimap/cyrus-imapd/issues/2774 . diff --git a/doc/html/_sources/imap/reference/manpages/configs/imapd.conf.txt b/doc/html/_sources/imap/reference/manpages/configs/imapd.conf.txt index 44a08ef..66b1518 100644 --- a/doc/html/_sources/imap/reference/manpages/configs/imapd.conf.txt +++ b/doc/html/_sources/imap/reference/manpages/configs/imapd.conf.txt @@ -2713,7 +2713,7 @@ When set, the Cyrus NNTP server will add the header(s) specified in the **newsaddheaders** option to each incoming usenet article. The added header(s) will contain email delivery addresses - corresponding to each relevent newsgroup. If not set, no headers + corresponding to each relevant newsgroup. If not set, no headers are added to usenet articles. .. endblob newspostuser @@ -3491,7 +3491,7 @@ When searching, should diacriticals be stripped from the search terms. The default is "true", a search for "hav" will match - "Håvard". This is not :rfc:`5051` complient, but it backwards + "Håvard". This is not :rfc:`5051` compliant, but it backwards compatible, and may be preferred by some sites. .. endblob search_skipdiacrit @@ -4497,7 +4497,7 @@ ``tls_versions:`` tls1_0 tls1_1 tls1_2 A list of SSL/TLS versions to not disable. Cyrus IMAP SSL/TLS starts - with all protocols, and substracts protocols not in this list. Newer + with all protocols, and subtracts protocols not in this list. Newer versions of SSL/TLS will need to be added here to allow them to get disabled. diff --git a/doc/html/_sources/imap/reference/manpages/systemcommands/ctl_backups.txt b/doc/html/_sources/imap/reference/manpages/systemcommands/ctl_backups.txt index 343b31a..3c972df 100644 --- a/doc/html/_sources/imap/reference/manpages/systemcommands/ctl_backups.txt +++ b/doc/html/_sources/imap/reference/manpages/systemcommands/ctl_backups.txt @@ -156,7 +156,7 @@ .. option:: -t [hours] - List stale backups only, that is, backups that have recieved no updates + List stale backups only, that is, backups that have received no updates in *hours*. If *hours* is unspecified, it defaults to 24. .. _ctl-backups-lock-options: diff --git a/doc/html/_sources/imap/reference/manpages/systemcommands/deliver.txt b/doc/html/_sources/imap/reference/manpages/systemcommands/deliver.txt index faf307b..671271f 100644 --- a/doc/html/_sources/imap/reference/manpages/systemcommands/deliver.txt +++ b/doc/html/_sources/imap/reference/manpages/systemcommands/deliver.txt @@ -41,7 +41,7 @@ .. option:: -d - Ignored for compatability with **/bin/mail**. + Ignored for compatibility with **/bin/mail**. .. option:: -r address diff --git a/doc/html/_sources/imap/reference/manpages/systemcommands/fud.txt b/doc/html/_sources/imap/reference/manpages/systemcommands/fud.txt index 78ad145..76b6239 100644 --- a/doc/html/_sources/imap/reference/manpages/systemcommands/fud.txt +++ b/doc/html/_sources/imap/reference/manpages/systemcommands/fud.txt @@ -28,7 +28,7 @@ **fud** |default-conf-text| **fud** will automatically proxy any and all FUD requests to the -appropriate backend server if it is runing on a Cyrus Murder frontend +appropriate backend server if it is running on a Cyrus Murder frontend machine. To set up the FUD daemon, add this to your cyrus.conf: @@ -118,7 +118,7 @@ 0 is not a standard IMAP ACL bit. **fud** is an experimental interface meant to provide information to -build a finger-like service around. Eventually it should be superceded +build a finger-like service around. Eventually it should be superseded by a more standards-based protocol. diff --git a/doc/html/_sources/imap/reference/manpages/systemcommands/imapd.txt b/doc/html/_sources/imap/reference/manpages/systemcommands/imapd.txt index 470abe6..e397782 100644 --- a/doc/html/_sources/imap/reference/manpages/systemcommands/imapd.txt +++ b/doc/html/_sources/imap/reference/manpages/systemcommands/imapd.txt @@ -39,7 +39,7 @@ message which IMAP-compliant clients are required to display. This option serves to annoy users mostly. Unfortunately clients tend to -connect far more frequently than is apparent, generating a seperate +connect far more frequently than is apparent, generating a separate server ALERT for each connection. Many clients do not display these properly, if they do anything with them at all. diff --git a/doc/html/_sources/imap/reference/manpages/systemcommands/master.txt b/doc/html/_sources/imap/reference/manpages/systemcommands/master.txt index 036e5f6..e702f95 100644 --- a/doc/html/_sources/imap/reference/manpages/systemcommands/master.txt +++ b/doc/html/_sources/imap/reference/manpages/systemcommands/master.txt @@ -56,7 +56,7 @@ .. option:: -j janitor full-sweeps per second - Sets the amount of times per second the janitor should sweep the + Sets the number of times per second the janitor should sweep the entire child table. Leave it at the default of 1 unless you have a really high fork rate (and you have not increased the child hash table size when you compiled Cyrus from its default of 10000 diff --git a/doc/html/_sources/imap/reference/manpages/systemcommands/nntpd.txt b/doc/html/_sources/imap/reference/manpages/systemcommands/nntpd.txt index e84a979..aa35af6 100644 --- a/doc/html/_sources/imap/reference/manpages/systemcommands/nntpd.txt +++ b/doc/html/_sources/imap/reference/manpages/systemcommands/nntpd.txt @@ -29,7 +29,7 @@ **nntpd** |default-conf-text| The optional ``newsprefix`` setting specifies a prefix to be prepended to newsgroup names to make the corresponding IMAP mailbox names. The optional ``newspostuser`` -setting specifies the special userid to be used when contructing the +setting specifies the special userid to be used when constructing the *To:* header address for following up to articles when read via IMAP. The optional ``newspeer`` setting specifies the fully qualified hostname of the upstream news server to which articles are fed. The optional diff --git a/doc/html/_sources/imap/reference/manpages/systemcommands/squatter.txt b/doc/html/_sources/imap/reference/manpages/systemcommands/squatter.txt index 9171dd7..02af8bb 100644 --- a/doc/html/_sources/imap/reference/manpages/systemcommands/squatter.txt +++ b/doc/html/_sources/imap/reference/manpages/systemcommands/squatter.txt @@ -8,7 +8,7 @@ **squatter** ============ -Create SQUAT indexes for mailboxes +Create SQUAT and Xapian indexes for mailboxes Synopsis ======== @@ -19,13 +19,13 @@ **squatter** [ **-C** *config-file* ] [**mode**] [**options**] [**source**] i.e.: - **squatter** [ **-C** *config-file* ] [**-v**] - **squatter** [ **-C** *config-file* ] [ **-a** ] [ **-i** ] [**-N** *name*] [**-S** *seconds*] [ **-r** ] *mailbox*... - **squatter** [ **-C** *config-file* ] [ **-a** ] [ **-i** ] [**-N** *name*] [**-S** *seconds*] [ **-r** ] **-u** *user*... - **squatter** [ **-C** *config-file* ] **-R** [ **-n** *channel* ] [ **-d** ] - **squatter** [ **-C** *config-file* ] **-f** *synclogfile* - **squatter** [ **-C** *config-file* ] **-I** *file* - **squatter** [ **-C** *config-file* ] **-t** *srctier*... **-z** *desttier* [ **-F** ] [ **-T** *dir* ] [ **-X** ] [ **-o** ] + **squatter** [ **-C** *config-file* ] [ **-v** ] [ **-a** ] [ **-S** *seconds* ] + **squatter** [ **-C** *config-file* ] [ **-v** ] [ **-a** ] [ **-i** ] [ **-N** *name* ] [ **-S** *seconds* ] [ **-r** ] *mailbox*... + **squatter** [ **-C** *config-file* ] [ **-v** ] [ **-a** ] [ **-i** ] [ **-N** *name* ] [ **-S** *seconds* ] [ **-r** ] **-u** *user*... + **squatter** [ **-C** *config-file* ] [ **-v** ] [ **-a** ] **-R** [ **-n** *channel* ] [ **-d** ] [ **-S** *seconds* ] + **squatter** [ **-C** *config-file* ] [ **-v** ] [ **-a** ] **-f** *synclogfile* [ **-S** *seconds* ] + **squatter** [ **-C** *config-file* ] [ **-v** ] **-I** *file* + **squatter** [ **-C** *config-file* ] [ **-v** ] **-t** *srctier(s)*... **-z** *desttier* [ **-F** ] [ **-T** *dir* ] [ **-X** ] [ **-o** ] [ **-S** *seconds* ] [ **-u** *user*... ] @@ -47,21 +47,25 @@ of each message in a given mailbox. This index is used to significantly reduce IMAP SEARCH times on a mailbox. +**mode** is one of indexer, indexfrom (-I), search, rolling, synclog or compact. + By default, **squatter** creates an index of ALL messages in the mailbox, not just those since the last time that it was run. The **-i** option is used to select incremental updates. Any messages appended to the mailbox after **squatter** is run, will NOT be included in the index. To include new messages in the index, **squatter** must -be run again. +be run again, or on a regular basis via crontab, an entry in the EVENTS +section of :cyrusman:`cyrus.conf(5)` or use *rolling* mode (**-R**). In the first synopsis, **squatter** indexes all mailboxes. In the second synopsis, **squatter** indexes the specified mailbox(es). +The mailboxes are space-separated. In the third synopsis, **squatter** indexes the specified user(s) mailbox(es). -For any of those three source modes (default=all, mailbox, user) one +For the latter two index modes (mailbox, user) one may optionally specify **-r** to recurse from the specified start, or **-a** to limit action only to mailboxes which have the shared */vendor/cmu/cyrus-imapd/squat* annotation set to "true". @@ -86,7 +90,8 @@ expunged records (**-F**) in the process. The optional **-T** flag may be used to specify a directory to use for temporary files. The **-o** flag may be used to direct that a single index be copied, rather than -compressed, from *srctier* to *desttier*. +compacted, from *srctier* to *desttier*. The **-u** flag may be used +to restrict operation to the specified user(s). For all modes, the **-S** option may be specified, causing squatter to pause *seconds* seconds after each mailbox, to smooth loads. @@ -201,34 +206,42 @@ some very fast filesystem, like an SSD or tmpfs. This option may not work with all search engines, but it's only effect is to speed up initial indexing. + Xapian only. |v3-new-feature| .. option:: -t srctier... - In compact mode, the source tier(s) for the compacted indices. - At least one source tier must be specified in compact mode. + In compact mode, the comma separated source tier(s) for the compacted + indices. At least one source tier must be specified in compact mode. + Xapian only. |v3-new-feature| .. option:: -u Extra options refer to usernames (e.g. foo@bar.com) rather than - mailbox names. + mailbox names. Usernames are space-separated. |v3-new-feature| .. option:: -v - Increase the verbosity of progress/status messages. + Increase the verbosity of progress/status messages. Sometimes additional messages + are emitted on the terminal with this option and the messages are unconditionally sent + to syslog. Sometimes messages are sent to syslog, only if -v is provided. In rolling and + synclog modes, -vv sends even more messages to syslog. .. option:: -X Reindex all the messages before compacting. This mode reads all the lists of messages indexed by the listed tiers, and re-indexes them into a temporary database before compacting that into place. + Xapian only. + |v3-new-feature| .. option:: -z desttier In compact mode, the destination tier for the compacted indices. This must be specified in compact mode. + Xapian only. |v3-new-feature| Examples @@ -302,13 +315,13 @@ History ======= -Support for additional search enginges was added in version 3.0. +Support for additional search engines was added in version 3.0. The following command-line switches were added in version 3.0: .. parsed-literal:: - **-R -u -d -O -F -A** + **-F -R -X -d -f -o -u** The following command-line settings were added in version 3.0: diff --git a/doc/html/_sources/imap/reference/manpages/usercommands/installsieve.txt b/doc/html/_sources/imap/reference/manpages/usercommands/installsieve.txt index 32b0d00..022dd60 100644 --- a/doc/html/_sources/imap/reference/manpages/usercommands/installsieve.txt +++ b/doc/html/_sources/imap/reference/manpages/usercommands/installsieve.txt @@ -34,7 +34,7 @@ .. option:: -v name - View script with the given name. The script if retrieved sucessfully + View script with the given name. The script if retrieved successfully is output to standard output. .. option:: -l @@ -51,7 +51,7 @@ .. option:: -i file Install a file onto the server. If a script with the same name - already exists on the server it is overwritten. Upon sucessfully + already exists on the server it is overwritten. Upon successfully putting the script on the server the script is set active. If *file* has the extension .script it is chopped when put on the server since sieve names may not contain a '.'. diff --git a/doc/html/contribute.html b/doc/html/contribute.html index 166d892..e24bdd0 100644 --- a/doc/html/contribute.html +++ b/doc/html/contribute.html @@ -8,7 +8,7 @@ - We need your help — Cyrus IMAP 3.0.10 (stable) documentation + We need your help — Cyrus IMAP 3.0.11 (stable) documentation @@ -37,7 +37,7 @@ - + @@ -747,7 +747,7 @@
    -
  • Docs v3.0.10 (stable) »
  • +
  • Docs v3.0.11 (stable) »
  • Developers »
  • @@ -812,7 +812,7 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/html/imap/download/release-notes/2.5/x/2.5.2.html b/doc/html/imap/download/release-notes/2.5/x/2.5.2.html index 47963fc..88e0afe 100644 --- a/doc/html/imap/download/release-notes/2.5/x/2.5.2.html +++ b/doc/html/imap/download/release-notes/2.5/x/2.5.2.html @@ -8,7 +8,7 @@ - Cyrus IMAP 2.5.2 Release Notes — Cyrus IMAP 3.0.10 (stable) documentation + Cyrus IMAP 2.5.2 Release Notes — Cyrus IMAP 3.0.11 (stable) documentation @@ -37,7 +37,7 @@ - + @@ -747,7 +747,7 @@
      -
    • Docs v3.0.10 (stable) »
    • +
    • Docs v3.0.11 (stable) »
    • Download »
    • @@ -844,7 +844,7 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/html/imap/download/release-notes/3.0/x/3.0.2.html b/doc/html/imap/download/release-notes/3.0/x/3.0.2.html index f0136d3..4da537a 100644 --- a/doc/html/imap/download/release-notes/3.0/x/3.0.2.html +++ b/doc/html/imap/download/release-notes/3.0/x/3.0.2.html @@ -8,7 +8,7 @@ - Cyrus IMAP 3.0.2 Release Notes — Cyrus IMAP 3.0.10 (stable) documentation + Cyrus IMAP 3.0.2 Release Notes — Cyrus IMAP 3.0.11 (stable) documentation @@ -37,10 +37,10 @@ - + - + @@ -747,7 +747,7 @@ @@ -877,7 +877,7 @@