From 94251520f942ce42252fe7719cde483efd28a3d5 Mon Sep 17 00:00:00 2001 From: ellie timoney Date: Mon, 22 May 2023 14:24:54 +1000 Subject: [PATCH 1/8] tools/config2header: rewrite command-line parser The old one pretended to support any VAR=value assignment, but would error on anything but CC because of 'use strict'. This rewrite still only permits CC (for now) but is easily expandable. --- tools/config2header | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/tools/config2header b/tools/config2header index d7bdb4c2e2..f54d36c1dd 100755 --- a/tools/config2header +++ b/tools/config2header @@ -44,23 +44,32 @@ require 5; use strict; use warnings; +# invoked by make like this: +#./tools/config2header CC="gcc" ./lib/imapopts.c ./lib/imapopts.h < ./lib/imapoptions + my $enum_size = 0; my @enum_values = (); -my $CC; -# -# Look for CC=xxx "assignments" in the argument list. -# -while ($#ARGV >= 0) { - last unless ($ARGV[0] =~ m/^(\S+)=(.*)$/); - eval "\$$1='$2';"; - die "$@" if ($@); +my %vars; +my %known_vars = map { $_ => 1 } qw(CC); + +# process command line arguments +while (scalar @ARGV) { + if ($ARGV[0] =~ m{^(\S+)=(.*)$}) { + # var=value + die "unrecognised variable $1" if not exists $known_vars{$1}; + die "missing value for $1" if not defined $2; + $vars{$1} = $2; shift @ARGV; + } + else { + last; + } } -my $use_gcc_extension = ($CC and $CC eq 'gcc'); +my $use_gcc_extension = (exists $vars{CC} and $vars{CC} eq 'gcc'); -die "wrong number of arguments" if ($#ARGV != 1); +die "wrong number of arguments" if scalar @ARGV != 2; my ($cfile, $hfile) = @ARGV; open CFILE, ">$cfile"; From 03a4070ae89b272bf0306f54e719dcdf5786f03a Mon Sep 17 00:00:00 2001 From: ellie timoney Date: Wed, 27 Nov 2024 16:07:38 +1100 Subject: [PATCH 2/8] tools/config2header: add --forbid-unreleased option and future support for any other --foo(=value) options --- tools/config2header | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/tools/config2header b/tools/config2header index f54d36c1dd..be3cf0d129 100755 --- a/tools/config2header +++ b/tools/config2header @@ -52,6 +52,8 @@ my @enum_values = (); my %vars; my %known_vars = map { $_ => 1 } qw(CC); +my %opts; +my %known_opts = map { $_ => 1 } qw(forbid-unreleased); # process command line arguments while (scalar @ARGV) { @@ -62,6 +64,12 @@ while (scalar @ARGV) { $vars{$1} = $2; shift @ARGV; } + elsif ($ARGV[0] =~ m{^--([-\w]+)(?:=(.*))?$}) { + # --option or --option=value + die "unrecognised option $ARGV[0]" if not exists $known_opts{$1}; + $opts{$1} = $2 // 1; + shift @ARGV; + } else { last; } @@ -158,13 +166,24 @@ sub parse_last_modified # "UNRELEASED" strings in lib/imapoptions with the version # number that is about to be released. # If you're not building a release, ignore it. :) + my $prefix; + + if ($opts{'forbid-unreleased'}) { + $prefix = -t STDERR ? "\033[31;1merror:\033[0m" : 'error:'; + } + else { + $prefix = -t STDERR ? "\033[33;1mwarning:\033[0m" : 'warning:', + } + my $w = join q{ }, "$0:", - -t STDERR ? "\033[33;1mwarning:\033[0m" : 'warning:', + $prefix, 'build contains UNRELEASED config options'; print STDERR "$w\n"; $__warned_unreleased ++; + + exit 1 if $opts{'forbid-unreleased'}; } return "0xFFFFFFFF"; From f7b98737383ada2d036db8bfe94c48445fbbba33 Mon Sep 17 00:00:00 2001 From: ellie timoney Date: Wed, 27 Nov 2024 11:21:26 +1100 Subject: [PATCH 3/8] WIP configure.ac: add --enable-release-checks option --- configure.ac | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/configure.ac b/configure.ac index 3b63ca9e29..9c91a40f9f 100644 --- a/configure.ac +++ b/configure.ac @@ -112,6 +112,16 @@ AC_SUBST(GCOV_CXXFLAGS) AC_SUBST(GCOV_LDFLAGS) AC_SUBST(GCOV_LIBS) +dnl enable stricter checks for preparing releases (disabled by default) +AC_ARG_ENABLE([release-checks], + [AS_HELP_STRING([--enable-release-checks], + [enable release checks])], + [], + [enable_release_checks=no] +) +AM_CONDITIONAL([ENABLE_RELEASE_CHECKS], + [test "x$enable_release_checks" = "xyes"]) + AC_ARG_WITH(login,,AC_MSG_ERROR([--with-login is no longer supported. Configure SASL appropriately instead.])) @@ -2602,4 +2612,5 @@ Build info: libm: $LIBM unit tests (cunit): $enable_unit_tests xxd: $XXD + release checks: $enable_release_checks " From 55c99449caf94398e96c041222a2df523e8c1da8 Mon Sep 17 00:00:00 2001 From: ellie timoney Date: Wed, 27 Nov 2024 16:07:57 +1100 Subject: [PATCH 4/8] Makefile.am: error for UNRELEASED imapopts with --enable-release-checks --- Makefile.am | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Makefile.am b/Makefile.am index 64cc78c146..6d0bda7ece 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1587,8 +1587,18 @@ lib/chartable.c: lib/mkchartable.pl lib/charset/unifix.txt \ lib/imapopts.h: lib/imapopts.c +if ENABLE_RELEASE_CHECKS + CFG2HDR_FORBID_UNRELEASED="--forbid-unreleased" +else + CFG2HDR_FORBID_UNRELEASED= +endif + lib/imapopts.c: lib/imapoptions tools/config2header - $(AM_V_GEN)$(top_srcdir)/tools/config2header CC="$(CC)" $(top_builddir)/lib/imapopts.c $(top_builddir)/lib/imapopts.h < $(top_srcdir)/lib/imapoptions + $(AM_V_GEN)$(top_srcdir)/tools/config2header \ + CC="$(CC)" $(CFG2HDR_FORBID_UNRELEASED) \ + $(top_builddir)/lib/imapopts.c \ + $(top_builddir)/lib/imapopts.h \ + < $(top_srcdir)/lib/imapoptions imap_cvt_xlist_specialuse_SOURCES = imap/mutex_fake.c imap/cvt_xlist_specialuse.c imap_cvt_xlist_specialuse_LDADD = $(LD_UTILITY_ADD) From 54fef36d328caed93d44804a68a345f18d83c1ca Mon Sep 17 00:00:00 2001 From: ellie timoney Date: Wed, 27 Nov 2024 13:24:57 +1100 Subject: [PATCH 5/8] configure.ac: error for missing doc deps with --enable-release-checks --- configure.ac | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac index 9c91a40f9f..5a8d64af77 100644 --- a/configure.ac +++ b/configure.ac @@ -2284,6 +2284,11 @@ AS_IF( ) dnl documentation generation (sphinx, perl2rst, gitpython) +AC_DEFUN([WARN_DOCDEPS], [ + AM_COND_IF([ENABLE_RELEASE_CHECKS], + [AC_MSG_ERROR([No $1, cannot regenerate docs])], + [AC_MSG_WARN([No $1, won't be able to regenerate docs])]) +]) AC_ARG_VAR(SPHINX_BUILD, [Location of sphinx-build]) AC_ARG_WITH([sphinx-build], AS_HELP_STRING([--with-sphinx-build=(yes|no|PATH)], [Look for sphinx-build in PATH]), @@ -2294,12 +2299,12 @@ AS_CASE([$with_sphinx_build], [no], [SPHINX_BUILD=''], [*], [AC_PATH_PROG(SPHINX_BUILD, sphinx-build, [], [$with_sphinx_build])]) AS_IF([test -z "$SPHINX_BUILD"], - [AC_MSG_WARN([No sphinx-build, won't be able to regenerate docs])]) + [WARN_DOCDEPS([sphinx-build])]) AC_SUBST([SPHINX_BUILD]) AX_PROG_PERL_MODULES([Pod::POM::View::Restructured], [have_ppvr=yes], - [AC_MSG_WARN([No Pod::POM::View::Restructured, won't be able to regenerate docs]) + [WARN_DOCDEPS([Pod::POM::View::Restructured]) have_ppvr=no ]) @@ -2311,8 +2316,7 @@ AS_CASE([$HAVE_PYMOD_GIT], AX_PYTHON_MODULE([git], [], [python3]) AS_CASE([$HAVE_PYMOD_GIT], [yes], [], - [*], [ - AC_MSG_WARN([GitPython not found, won't be able to regenerate docs])]) + [*], [WARN_DOCDEPS([GitPython])]) ]) AM_CONDITIONAL([HAVE_SPHINX_BUILD], From 2ae121b2e06dff76521a24253893f118c45288ae Mon Sep 17 00:00:00 2001 From: ellie timoney Date: Wed, 27 Nov 2024 14:27:36 +1100 Subject: [PATCH 6/8] configure.ac: error for changes files with --enable-release-checks --- configure.ac | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/configure.ac b/configure.ac index 5a8d64af77..b643c093b3 100644 --- a/configure.ac +++ b/configure.ac @@ -121,6 +121,13 @@ AC_ARG_ENABLE([release-checks], ) AM_CONDITIONAL([ENABLE_RELEASE_CHECKS], [test "x$enable_release_checks" = "xyes"]) +AM_COND_IF([ENABLE_RELEASE_CHECKS], [ + AC_MSG_CHECKING([for changes files hanging around]) + extra_changes_files=$(ls $srcdir/changes/next | grep -cv '0000-TEMPLATE') + AC_MSG_RESULT([$extra_changes_files]) + AS_IF([test $extra_changes_files -ne 0], + [AC_MSG_ERROR([found changes files hanging around])]) +]) AC_ARG_WITH(login,,AC_MSG_ERROR([--with-login is no longer supported. Configure SASL appropriately instead.])) From 697a7f95b12959633834e26ecfabbcfaa7aadba8 Mon Sep 17 00:00:00 2001 From: ellie timoney Date: Fri, 29 Nov 2024 10:33:47 +1100 Subject: [PATCH 7/8] docs: use --enable-release-checks when building release --- docsrc/imap/developer/releasing.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docsrc/imap/developer/releasing.rst b/docsrc/imap/developer/releasing.rst index a520e10367..d2aec50f40 100644 --- a/docsrc/imap/developer/releasing.rst +++ b/docsrc/imap/developer/releasing.rst @@ -149,7 +149,8 @@ anybody else pushes in the meantime, you will end up with a mess. 4. You will also be prompted to enter the pass phrase for your GPG key, do it. 5. Generate a configure script: ``autoreconf -i -s`` -6. Generate everything else: ``./configure --enable-maintainer-mode`` +6. Generate everything else, this time with release checks enabled: + ``./configure --enable-maintainer-mode --enable-release-checks`` 7. Create the distribution tarball: ``make distcheck`` (yes, again! this time will have the correct version, now that you've tagged it.) 8. If anything goes wrong up to here, delete the tag, fix the issue, and start From ed9b90e066078f9fc978c117fbd187c58d725e18 Mon Sep 17 00:00:00 2001 From: ellie timoney Date: Fri, 29 Nov 2024 10:28:54 +1100 Subject: [PATCH 8/8] JUNK NOMERGE remove changes/next files for testing --- changes/next/2997-allowspecialusesubfolder | 18 ------------- changes/next/calalarm-suppress | 21 --------------- changes/next/calalarmd_suppress_duplicates | 13 --------- .../next/caldav_alarm_supported_components | 18 ------------- changes/next/debug-slowio | 18 ------------- changes/next/deprecate_improved_mboxlist | 20 -------------- ...ate_sieve_sasl_send_unsolicited_capability | 13 --------- ...ayname_on_principal-property-search_report | 11 -------- changes/next/fatals-abort | 18 ------------- changes/next/global-lock | 26 ------------------ changes/next/groupracl | 22 --------------- changes/next/htmladminpage | 13 --------- .../next/http_caldav_proppatch_timezone_id | 16 ----------- changes/next/httpd_remove_digestmd5 | 11 -------- changes/next/imap-partial | 15 ----------- changes/next/imap-utf8-accept | 15 ----------- changes/next/imap_jmapaccess | 19 ------------- changes/next/imap_uint32 | 19 ------------- changes/next/lmtp-ratelimit | 27 ------------------- changes/next/master-babysit-retry | 19 ------------- changes/next/mboxgroups | 23 ---------------- changes/next/parseaddr_utf8_domain | 11 -------- changes/next/pop3k_remove_kpop | 15 ----------- changes/next/prom-usage-stats | 23 ---------------- changes/next/proxy_protocol | 22 --------------- changes/next/remove-cyrus-backups | 27 ------------------- changes/next/remove_imap_xmove | 14 ---------- changes/next/remove_krb4 | 8 ------ changes/next/replicaonly | 24 ----------------- changes/next/replicate-userflags | 18 ------------- changes/next/sieve-unicode-casemap | 14 ---------- changes/next/skipuser | 20 -------------- changes/next/toggleable-debug | 19 ------------- changes/next/xapian_add_messageid | 19 ------------- 34 files changed, 609 deletions(-) delete mode 100644 changes/next/2997-allowspecialusesubfolder delete mode 100644 changes/next/calalarm-suppress delete mode 100644 changes/next/calalarmd_suppress_duplicates delete mode 100644 changes/next/caldav_alarm_supported_components delete mode 100644 changes/next/debug-slowio delete mode 100644 changes/next/deprecate_improved_mboxlist delete mode 100644 changes/next/deprecate_sieve_sasl_send_unsolicited_capability delete mode 100644 changes/next/dispayname_on_principal-property-search_report delete mode 100644 changes/next/fatals-abort delete mode 100644 changes/next/global-lock delete mode 100644 changes/next/groupracl delete mode 100644 changes/next/htmladminpage delete mode 100644 changes/next/http_caldav_proppatch_timezone_id delete mode 100644 changes/next/httpd_remove_digestmd5 delete mode 100644 changes/next/imap-partial delete mode 100644 changes/next/imap-utf8-accept delete mode 100644 changes/next/imap_jmapaccess delete mode 100644 changes/next/imap_uint32 delete mode 100644 changes/next/lmtp-ratelimit delete mode 100644 changes/next/master-babysit-retry delete mode 100644 changes/next/mboxgroups delete mode 100644 changes/next/parseaddr_utf8_domain delete mode 100644 changes/next/pop3k_remove_kpop delete mode 100644 changes/next/prom-usage-stats delete mode 100644 changes/next/proxy_protocol delete mode 100644 changes/next/remove-cyrus-backups delete mode 100644 changes/next/remove_imap_xmove delete mode 100644 changes/next/remove_krb4 delete mode 100644 changes/next/replicaonly delete mode 100644 changes/next/replicate-userflags delete mode 100644 changes/next/sieve-unicode-casemap delete mode 100644 changes/next/skipuser delete mode 100644 changes/next/toggleable-debug delete mode 100644 changes/next/xapian_add_messageid diff --git a/changes/next/2997-allowspecialusesubfolder b/changes/next/2997-allowspecialusesubfolder deleted file mode 100644 index aeb329a6ea..0000000000 --- a/changes/next/2997-allowspecialusesubfolder +++ /dev/null @@ -1,18 +0,0 @@ -Description: - -Add configuration option to permit special-use subfolders - - -Config changes: - -allowspecialusesubfolder - - -Upgrade instructions: - -None - - -GitHub issue: - -https://github.com/cyrusimap/cyrus-imapd/issues/2995 diff --git a/changes/next/calalarm-suppress b/changes/next/calalarm-suppress deleted file mode 100644 index a1d38fd918..0000000000 --- a/changes/next/calalarm-suppress +++ /dev/null @@ -1,21 +0,0 @@ -Description: - -Touch file to suppress calalarmd processing - - -Config changes: - -Creates a new option: `caldav_alarm_suppress_file`, default null. -If configured, calalarmd will check for this file before processing -alarms, and skip this run while the file is present. - - -Upgrade instructions: - -You don't need to do anything. You can set this if you want to be able to -pause calalarmd at times. - - -GitHub issue: - -No issue was created for this. diff --git a/changes/next/calalarmd_suppress_duplicates b/changes/next/calalarmd_suppress_duplicates deleted file mode 100644 index 9932b2b91b..0000000000 --- a/changes/next/calalarmd_suppress_duplicates +++ /dev/null @@ -1,13 +0,0 @@ -Description: - -Suppress duplicate calendar alarms in calalarmd. - - -Config changes: - -calendar_suppress_duplicate_alarms - - -Upgrade instructions: - -This feature is enabled by default. diff --git a/changes/next/caldav_alarm_supported_components b/changes/next/caldav_alarm_supported_components deleted file mode 100644 index 9f83a6af72..0000000000 --- a/changes/next/caldav_alarm_supported_components +++ /dev/null @@ -1,18 +0,0 @@ -Description: - -Adds config option `caldav_alarm_support_components` to suppress alarms for all but select iCalendar component types. - - -Config changes: - -caldav_alarm_support_components - - -Upgrade instructions: - -None. - - -GitHub issue: - -Replaces pull request https://github.com/cyrusimap/cyrus-imapd/pull/3284 diff --git a/changes/next/debug-slowio b/changes/next/debug-slowio deleted file mode 100644 index 7398aaf23e..0000000000 --- a/changes/next/debug-slowio +++ /dev/null @@ -1,18 +0,0 @@ -Description: - -Optional I/O throttling, for testing - - -Config changes: - -debug_slowio - - -Upgrade instructions: - -None - - -GitHub issue: - -None diff --git a/changes/next/deprecate_improved_mboxlist b/changes/next/deprecate_improved_mboxlist deleted file mode 100644 index 8f3e2e8922..0000000000 --- a/changes/next/deprecate_improved_mboxlist +++ /dev/null @@ -1,20 +0,0 @@ -Description: - -The improved_mboxlist_sort option had no effect since v3.6. It is now deprecated. - -cyr_dbtool option -M/--improved-mboxlist-sort is removed. - - -Config changes: - -improved_mboxlist_sort is now deprecated. - - -Upgrade instructions: - -Remove improved_mboxlist_sort from imapd.conf. It has no effect and is now deprecated. - - -GitHub issue: - -https://github.com/cyrusimap/cyrus-imapd/pull/4559 diff --git a/changes/next/deprecate_sieve_sasl_send_unsolicited_capability b/changes/next/deprecate_sieve_sasl_send_unsolicited_capability deleted file mode 100644 index 1703489a5a..0000000000 --- a/changes/next/deprecate_sieve_sasl_send_unsolicited_capability +++ /dev/null @@ -1,13 +0,0 @@ -Description: - -Deprecate sieve_sasl_send_unsolicited_capability in lib/imapoptions and toggle its default. - -Config changes: - -This enables the RFC 5804 behaviour by default. The old behaviour - per -draft-martin-managesieve-08 - is not available anymore. - -GitHub issue: - -https://github.com/cyrusimap/cyrus-imapd/pull/3346 - diff --git a/changes/next/dispayname_on_principal-property-search_report b/changes/next/dispayname_on_principal-property-search_report deleted file mode 100644 index c267242c08..0000000000 --- a/changes/next/dispayname_on_principal-property-search_report +++ /dev/null @@ -1,11 +0,0 @@ -Description: - -The DAV:principal-property-search REPORT honours the previously set DAV:displayname property on matches - -Config changes: - -None - -Upgrade instructions: - -None diff --git a/changes/next/fatals-abort b/changes/next/fatals-abort deleted file mode 100644 index 147f303498..0000000000 --- a/changes/next/fatals-abort +++ /dev/null @@ -1,18 +0,0 @@ -Description: - -Adds an option for fatal errors to abort and produce a core dump. - - -Config changes: - -fatals_abort - - -Upgrade instructions: - -None - - -GitHub issue: - -None diff --git a/changes/next/global-lock b/changes/next/global-lock deleted file mode 100644 index b5be70038c..0000000000 --- a/changes/next/global-lock +++ /dev/null @@ -1,26 +0,0 @@ -Description: - -Add a way to freeze an entire server temporarily while taking snapshots or -similar. - - -Config changes: - -Adds a new config switch `global_lock` - if true (the default) then a new -global shared lock is taken before any exclusive lock is taken, and held -until all global locks are released - meaning that any command which wishes -to take a consistent snapshot can use the `cyr_withlock_run` command. - -Whether or not this setting is enabled, you can also use -`cyr_withlock_run --user` to run a command with a single user locked. - - -Upgrade instructions: - -There are no operational changes required; it just works once you're running -the new version. - - -GitHub issue: - -https://github.com/cyrusimap/cyrus-imapd/issues/1763 diff --git a/changes/next/groupracl b/changes/next/groupracl deleted file mode 100644 index 0b26fddfd6..0000000000 --- a/changes/next/groupracl +++ /dev/null @@ -1,22 +0,0 @@ -Description: - -Update mboxlist group: ACL handling to change raclmodseq - -This adds the 'raclmodseq' command as well, which is used by tests to -check that RACLs are updated as expected, and probably won't be used -by anything else! - - -Config changes: - -No config changes - if reverseacls are enabled, they'll also work with -group: acls now. - - -Upgrade instructions: - -No config changes - -GitHub issue: - -No github issue. diff --git a/changes/next/htmladminpage b/changes/next/htmladminpage deleted file mode 100644 index dbe4438f6b..0000000000 --- a/changes/next/htmladminpage +++ /dev/null @@ -1,13 +0,0 @@ -Description: - -The CalDAV and CardDAV HTML administration pages allow editing -the DAV:displayname and description properties. -For calendars also the color and order properties. - -Config changes: - -None - -Upgrade instructions: - -None \ No newline at end of file diff --git a/changes/next/http_caldav_proppatch_timezone_id b/changes/next/http_caldav_proppatch_timezone_id deleted file mode 100644 index 569109e4e3..0000000000 --- a/changes/next/http_caldav_proppatch_timezone_id +++ /dev/null @@ -1,16 +0,0 @@ -Description: - -Enable the calendar-timezone-id (RFC 7809) DAV property even if tzdist http module is disabled. - - -Config changes: - -None - -Upgrade instructions: - -None - -GitHub issue: - -None diff --git a/changes/next/httpd_remove_digestmd5 b/changes/next/httpd_remove_digestmd5 deleted file mode 100644 index 859f6d1c21..0000000000 --- a/changes/next/httpd_remove_digestmd5 +++ /dev/null @@ -1,11 +0,0 @@ -Description: - -Remove DIGEST-MD5 from httpd and imtest. - -Config changes: - -In imapd.conf remove sasl_mech_list: DIGEST-MD5 - -Upgrade instructions: - -None diff --git a/changes/next/imap-partial b/changes/next/imap-partial deleted file mode 100644 index 8e77937e1c..0000000000 --- a/changes/next/imap-partial +++ /dev/null @@ -1,15 +0,0 @@ - -Description: - -Adds support for IMAP PARTIAL (RFC 9394) and -INPROGRESS (RFC 9585) extensions - - -Config changes: - -None - - -Upgrade instructions: - -None diff --git a/changes/next/imap-utf8-accept b/changes/next/imap-utf8-accept deleted file mode 100644 index 8e0e908e30..0000000000 --- a/changes/next/imap-utf8-accept +++ /dev/null @@ -1,15 +0,0 @@ - -Description: - -Adds support for IMAP UTF8=ACCEPT (RFC 6855) - - -Config changes: - -This extension will only be advertised and supported if BOTH -'reject8bit' and 'munge8bit' are disabled - - -Upgrade instructions: - -None diff --git a/changes/next/imap_jmapaccess b/changes/next/imap_jmapaccess deleted file mode 100644 index b668ee4853..0000000000 --- a/changes/next/imap_jmapaccess +++ /dev/null @@ -1,19 +0,0 @@ - -Description: - -Adds support for IMAP JMAPACCESS (draft-ietf-extra-jmapaccess). - - -Config changes: - -Adds jmapaccess_url option. - - -Upgrade instructions: - -None. - - -GitHub issue: - -None. diff --git a/changes/next/imap_uint32 b/changes/next/imap_uint32 deleted file mode 100644 index a7520b691e..0000000000 --- a/changes/next/imap_uint32 +++ /dev/null @@ -1,19 +0,0 @@ - -Description: - -Support full 32-bit unsigned numbers in IMAP parser. - - -Config changes: - -None. - - -Upgrade instructions: - -None. - - -GitHub issue: - -None. diff --git a/changes/next/lmtp-ratelimit b/changes/next/lmtp-ratelimit deleted file mode 100644 index 235e017f85..0000000000 --- a/changes/next/lmtp-ratelimit +++ /dev/null @@ -1,27 +0,0 @@ -Description: - -Support user and lmtp rate limits in lmtp - - -Config changes: - -This changes the behaviour of the maxlogins_per_user and maxlogins_per_host -configuration options to limit each item per service, so 5 logins from a -host for imap won't also limit http logins. - -It also limits lmtp connections for delivery to a locked mailbox, -returning a 4xx code if additional connections are made that try to -deliver to the same mailbox if there are already N connections waiting. - - -Upgrade instructions: - -No config changes required, it's rare that you have more than one LMTP -connection waiting on a mailbox so it's very unlikely that existing -limits will affect lmtp - though you may want to double check that your -limits still make sense given that each service now has a separate count. - - -GitHub issue: - -If theres a github issue number for this, put it here. diff --git a/changes/next/master-babysit-retry b/changes/next/master-babysit-retry deleted file mode 100644 index 763be98b7f..0000000000 --- a/changes/next/master-babysit-retry +++ /dev/null @@ -1,19 +0,0 @@ -Description: - -master: retry all DAEMON block services and services with the 'babysit' flag forever - - -Config changes: - -No config changes - - -Upgrade instructions: - -Nothing required for upgrade. You may wish to add 'babysit' to a service, -which will not only ensure that there's always one forked, but if it dies -too frequently, it won't stay dead. - - -GitHub issue: - diff --git a/changes/next/mboxgroups b/changes/next/mboxgroups deleted file mode 100644 index 1a9d4e41c8..0000000000 --- a/changes/next/mboxgroups +++ /dev/null @@ -1,23 +0,0 @@ -Description: - -A new authentication backend which is like auth_unix but stores groups in -the mailboxes.db - - -Config changes: - -adds 'mboxgroups' as a possible value for the auth_mech config option -adds 'vnd.cmu.visibleUsers' to event_extra_params - - -Upgrade instructions: - -No changed needed - but you can use the mboxgroups backend if you want. - -The new capability 'XUSERGROUPS' will appear in imapd, and admins will -get the new commands GETUSERGROUP, SETUSERGROUP, and UNSETUSERGROUP. - - -GitHub issue: - -If theres a github issue number for this, put it here. diff --git a/changes/next/parseaddr_utf8_domain b/changes/next/parseaddr_utf8_domain deleted file mode 100644 index 2738e7b0ff..0000000000 --- a/changes/next/parseaddr_utf8_domain +++ /dev/null @@ -1,11 +0,0 @@ -Description: -Updates the email address parser to preserve non-ASCII characters -in the domain part. - - -Config changes: -None. - - -Upgrade instructions: -Reconstruct mailboxes with the -G option to force reparsing email headers. diff --git a/changes/next/pop3k_remove_kpop b/changes/next/pop3k_remove_kpop deleted file mode 100644 index ec8157e8fa..0000000000 --- a/changes/next/pop3k_remove_kpop +++ /dev/null @@ -1,15 +0,0 @@ -Description: - -Remove MIT Kerberized POP3 support - - -Config changes: - -None - -Upgrade instructions: - -Remove -k command line parameter when starting pop3d. - -GitHub issue: - diff --git a/changes/next/prom-usage-stats b/changes/next/prom-usage-stats deleted file mode 100644 index 679a6251d3..0000000000 --- a/changes/next/prom-usage-stats +++ /dev/null @@ -1,23 +0,0 @@ -Description: - -Increased granularity of Prometheus report frequency configuration. - - -Config changes: - -prometheus_update_freq -prometheus_service_update_freq -prometheus_master_update_freq -prometheus_usage_update_freq - - -Upgrade instructions: - -The Prometheus usage report will be turned off by default after upgrade. -This means that the "cyrus_usage_..." metrics will no longer be reported. -To turn this back on, set prometheus_usage_update_freq to a suitable duration. - - -GitHub issue: - -None diff --git a/changes/next/proxy_protocol b/changes/next/proxy_protocol deleted file mode 100644 index a8321bb87b..0000000000 --- a/changes/next/proxy_protocol +++ /dev/null @@ -1,22 +0,0 @@ - -Description: - -Add support for the HAProxy protocol. - -https://github.com/haproxy/haproxy/blob/master/doc/proxy-protocol.txt - - -Config changes: - -None. - - -Upgrade instructions: - -To enable support for the HAProxy protocol in imapd, pop3d, lmtpd, nntpd, httpd, or -timesieved, add the 'H' command line option to the service in cyrus.conf. - - -GitHub issue: - -None. diff --git a/changes/next/remove-cyrus-backups b/changes/next/remove-cyrus-backups deleted file mode 100644 index 04c202d963..0000000000 --- a/changes/next/remove-cyrus-backups +++ /dev/null @@ -1,27 +0,0 @@ -Description: - -The deprecated experimental Cyrus Backups feature has been removed. - - -Config changes: - -backuppartition-name -backup_compact_minsize -backup_compact_maxsize -backup_compact_work_threshold -backup_staging_path -backup_retention -backup_db -backup_db_path -backup_keep_previous - - -Upgrade instructions: - -Deployments that still rely on the deprecated experimental Cyrus Backup -feature should not upgrade to this version. - - -GitHub issue: - -None diff --git a/changes/next/remove_imap_xmove b/changes/next/remove_imap_xmove deleted file mode 100644 index b5dc196f71..0000000000 --- a/changes/next/remove_imap_xmove +++ /dev/null @@ -1,14 +0,0 @@ - -Description: - -Support for the legacy IMAP XMOVE command has been removed. - - -Config changes: - -None. - - -Upgrade instructions: - -None. diff --git a/changes/next/remove_krb4 b/changes/next/remove_krb4 deleted file mode 100644 index b9f60d3262..0000000000 --- a/changes/next/remove_krb4 +++ /dev/null @@ -1,8 +0,0 @@ -Description: - -Remove Kerberos 4 support - -Config changes: - -In imapd.conf srvtab is not valid anymore. -./configure does not accept --enable-krb5afspts , ptclient/afskrb.c works now only with KRB5. diff --git a/changes/next/replicaonly b/changes/next/replicaonly deleted file mode 100644 index 8ce1e80af8..0000000000 --- a/changes/next/replicaonly +++ /dev/null @@ -1,24 +0,0 @@ -Description: - -add 'replicaonly' config option that blocks all non-silent writes - -(Silent writes are those where the modseq is specified in the write, -so the highestmodseq doesn't get increased - these are the sort done -by sync_server) - -Config changes: - -the boolean config option `replicaonly` (default: false) can be set -to mark a server as only being a replica. This will stop calalarmd -from doing anything, and also deny any non-silent writes. - - -Upgrade instructions: - -No change required - you can keep running without setting this config -option on replicas, and they will behave as before (in particular, -you will still have to make sure not to run calalarmd on replicas). - -GitHub issue: - -none diff --git a/changes/next/replicate-userflags b/changes/next/replicate-userflags deleted file mode 100644 index fc0af4d3e0..0000000000 --- a/changes/next/replicate-userflags +++ /dev/null @@ -1,18 +0,0 @@ -Description: - -User-defined flags are now replicated even when not in use on any messages. - - -Config changes: - -None - - -Upgrade instructions: - -Nothing required - - -GitHub issue: - -None diff --git a/changes/next/sieve-unicode-casemap b/changes/next/sieve-unicode-casemap deleted file mode 100644 index 7be0962a34..0000000000 --- a/changes/next/sieve-unicode-casemap +++ /dev/null @@ -1,14 +0,0 @@ - -Description: - -Adds support for comparator-i;unicode-casemap (RFC 5051) to Sieve - - -Config changes: - -None - - -Upgrade instructions: - -None diff --git a/changes/next/skipuser b/changes/next/skipuser deleted file mode 100644 index c9918f5a88..0000000000 --- a/changes/next/skipuser +++ /dev/null @@ -1,20 +0,0 @@ -Description: - -Add a `skipuser-$userid` touchfile to sync directories - - -Config changes: - -None - - -Upgrade instructions: - -Nothing required. Once you've upgraded, you can touch a file in the sync/ -or sync/channel/ folder called 'skipuser-foo@example.com' which will skip any -replication for that named user. - - -GitHub issue: - -No github issue diff --git a/changes/next/toggleable-debug b/changes/next/toggleable-debug deleted file mode 100644 index 4a0238d9db..0000000000 --- a/changes/next/toggleable-debug +++ /dev/null @@ -1,19 +0,0 @@ -Description: - -Running processes can now have debug logging toggled on/off by sending -them SIGUSR1 - - -Config changes: - -debug - - -Upgrade instructions: - -Nothing required - - -GitHub issue: - -None diff --git a/changes/next/xapian_add_messageid b/changes/next/xapian_add_messageid deleted file mode 100644 index 54148b4f73..0000000000 --- a/changes/next/xapian_add_messageid +++ /dev/null @@ -1,19 +0,0 @@ -Description: - -Adds JMAP Email/query filter conditions `messageId`, `references` and `inReplyTo`. - -Config changes: - -None. - - -Upgrade instructions: - -It is recommended to rebuild the Xapian index to make use of these filter -conditions. Otherwise, email queries having these filter fall back to -reading the MIME headers from disk, resulting in slower search. - - -GitHub issue: - -None.