v2.3.10
* Disable retpoline migitations by default. These can cause severe
performance regressions, so they should be only enabled when
applicable.
* IMAP MOVE now commits transactions in batches of 1000 mails. This
helps especially with lazy_expunge when moving a lot of mails. It
mainly avoids situations where multiple IMAP sessions are running the
same MOVE command and duplicating the mails in the lazy_expunge folder.
With this change there can still be some duplication, but the MOVE
always progresses forward. Also if the MOVE fails at some point, the
changes up to the last 1000 mails are still committed instead of
rolled back. Note that the COPY command behavior hasn't changed,
because it is required by IMAP standard to be an atomic operation.
* IMAP EXPUNGE and CLOSE now expunges mails in batches of 1000 mails.
This helps especially with lazy_expunge when expunging a lot of mails
(e.g. millions) to make sure that the progress always moves forward
even if the process is killed.
* Autoexpunging now expunges mails in batches of 1000 mails. This helps
especially with lazy_expunge when expunging a lot of mails
(e.g. millions) to make sure that the progress always moves forward
even if the process is killed.
+ Add tool for generating sysreport called dovecot-sysreport.
This generates a bundle of information usually needed for support
requests.
+ Add support for the new IMAP \Important SPECIAL-USE flag (RFC 8457).
+ Add metric { group_by } setting. This allows automatically creating
new metrics based on the fields you want to group statistics by.
NOTE: This feature is considered experimental and syntax is subject
to change in future release.
+ auth: Support SCRAM-SHA-256 authentication mechanism.
+ imap: Support the new IMAP STATUS=SIZE extension.
+ Use TCP_QUICKACK to reduce latency for some TCP connections.
+ quota-status: Made the service more robust against erroneous use with
Postfix ACL policies other than smtpd_recipient_restrictions.
+ Add "revision" field support to imap_id_send setting. Using
"revision *" will send in IMAP ID command response the short commit
hash of the Dovecot git source tree HEAD (same as in dovecot --version).
+ IMAP ENVELOPE includes now all addresses when there are multiple
headers (From, To, Cc, etc.) The standard way of having multiple
addresses is to just list them all in a single header. It's
non-standard to have multiple headers. However, since MTAs allow these
mails to pass through and different software may handle them in
different ways, it's better from security point of view to show all
the addresses.
+ Event filters now support using "field_name=" to match a field that
doesn't exist or has an empty value. For example use "error=" to match
only events that didn't fail.
- acl: INBOX ACLs shouldn't apply for IMAP GETMETADATA/SETMETADATA
commands.
- cassandra: CASS_ERROR_SERVER_WRITE_FAILURE error should also be
treated as "uncertain write failure".
- dict-redis: Using quota_clone configured with dict-redis could have
crashed when Redis responded slowly.
- imap-hibernate: Communication trouble with imap-master leads to
segfault.
- imap-hibernate: Unhibernation retrying wasn't working.
- imap: Fixed auth lookup privilege problem when imap process was reused
and user was being un-hibernated.
- Fix potential crash when copying/moving mails within the same folder.
This happened only when there were a lot of fields in dovecot.index.cache.
- lib-index: Recreating dovecot.index.cache file could have crashed when
merging bitmask fields.
- lib-index: Using public/shared folders with INDEXPVT configured to use
private \Seen flags, trying to search seen/unseen in an empty folder
crashes with segfault.
- lib-mail: Large base64-encoded mails weren't decoded properly.
This could have affected searching/indexing mails and message snippet
generation.
- lib-mail: Message with only quoted text could have caused message
snippet to ignore its 200 character limit and return the entire
message. This was added also to dovecot.index.cache file, which
increased disk space and memory usage unnecessarily.
v2.3.9.2 regression (previous versions cached the quoted snippet as
empty). In a large mail quoted text could have become wrongly added
to the snippet, possibly mixed together with non-quoted text.
- lib-smtp: client could have assert-crashed if STARTTLS handshake
finished earlier than usually.
- lib-ssl-iostream: remove -static flag for lib-ssl-iostream linking to
prevent a compile issue.
- lib-storage: Mailbox synchronization may have assert-crashed in some
rare situations.
- lib-storage: mdbox didn't preserve date.saved with dsync.
- lib: Don't require EAI_{ADDRFAMILY,NODATA}, breaks FreeBSD
- master: Some services could respawn unthrottled if they crash during
startup.
- push-notification: Do not send push_notification_finished event if
nothing was done. This happens when mail transaction is started and
ended with no changes.
- quota-status: Addresses with special characters in the local part caused
problems in the interaction between Postfix and Dovecot. Postfix sent
its own internal representation in the recipient field, while Dovecot
expected a valid RFC5321 mailbox address.
- submission-login: SESSION was not correctly encoded field for the
XCLIENT command. Particularly, a '+' character introduced by the
session ID's Base64 encoding causes problems.
- submission: Fix submission_max_mail_size to work correctly on 32-bit
systems.
- submission: Trusted connections crashed in second connection's EHLO
if submission-login { service_count } is something else than 1 (which
is the default).
- submission: XCLIENT command was never used in the protocol exchange
with the relay MTA when submission_backend_capabilities is configured,
even when the relay MTA was properly configured to accept the XCLIENT
command.
3.31.1-r1
Various updates due to year change
Fix deprecated universal newline use in shell
Shell now uses pragma function_list to get list of functions for tab completion
Added constants:
SQLITE_DBCONFIG_TRUSTED_SCHEMA, SQLITE_DBCONFIG_LEGACY_FILE_FORMAT,
SQLITE_CONSTRAINT_PINNED, SQLITE_OK_SYMLINK, SQLITE_CANTOPEN_SYMLINK,
SQLITE_FCNTL_CKPT_DONE, SQLITE_OPEN_NOFOLLOW, SQLITE_VTAB_DIRECTONLY
20200225.1:
Patched Feb 2020 LTS branch with the bug fix for absl::Status::ErasePayload.
20200225:
Fix build on FreeBSD/powerpc
Add RISCV support to GetProgramCounter()
Add missing ABSL_HAVE_VDSO_SUPPORT conditional
Fix pointer format specifier in documentation
fix: Add support for more ARM processors detection
Use https links
Fix Conan builds
Always enable proper symbolize implementation on Windows
Fix spelling errors
Because gdal-lib depends unconditionally on geograpy/proj, which depends
unconditionally on sqlite3, it doesn't make sense dependency-wise to
conditionally omit sqlite3 support here.
Incompatible Changes
There are no changes intentionally incompatible with 5.30.0. If any
exist, they are bugs, and we request that you submit a report. See
"Reporting Bugs" below.
Modules and Pragmata
Updated Modules and Pragmata
* Compress::Raw::Bzip2 has been upgraded from version 2.084 to 2.089.
* Module::CoreList has been upgraded from version 5.20191110 to
5.20200314.
Configuration and Compilation
* GCC 10 is now supported by Configure.
Selected Bug Fixes
* printf() or sprintf() with the %n format no longer cause a panic on
debugging builds, or report an incorrectly cached length value when
producing "SVfUTF8" flagged strings.
* A memory leak in regular expression patterns has been fixed.
* A read beyond buffer in grok_infnan has been fixed.
* An assertion failure in the regular expression engine has been
fixed.
* "(?{...})" eval groups in regular expressions no longer
unintentionally trigger "EVAL without pos change exceeded limit in
regex".
Release to support API endpoint override.
New Features
Add api endpoint override. (#829)
Implementation Changes
Don't set http.redirect_codes if the attr doesn't exist and allow more httplib2 versions. (#841)
Vala 0.48.1
===========
* Various improvements and bug fixes:
- codegen:
+ Replace hard-coded "gsize" with resolved "size_t"
+ Add destroy of parameter in vfunc of delegate property setter [#919]
+ Inherit "array" attributes from (base/-interface) property
+ Inherit "delegate_target" from (base/-interface) parameter/property/method
+ Actually respect "delegate_target" attribute of method/parameter
+ Move ObjectTypeSymbol casting to GTypeModule
+ Factor out GValueModule and GLibValue into a separate source-files
+ Avoid symbol clashes with "va_*" from "stdarg.h"
- vala:
+ Fix search for Parameter.base_parameter
+ Real struct-type without type_id can't be used for GObject property [#921]
- codewriter: Output inner interface declarations [#918]
* Bindings:
- glib-2.0: Add missing "type_id"/"has_type_id" attributes to structs [#921]
- glib-2.0: Memory profiling ("g_mem_*") is deprecated since 2.46
- linux: Don't depend on GLib.Time when using POSIX profile
- gtk4: Update to 3.98+2da445f9
- poppler-glib: Update to 0.85
- vapi: Update GIR-based bindings
Overview of changes in GLib 2.64.1
==================================
* Fix memory monitor tests to only be installed if installed-tests are enabled,
and to be skipped if GObject-Introspection is too old (!1407)
* Bugs fixed:
- #1986 Socks5 Proxy: Authentication seems broken
- #1988 Socks5 Proxy: Wrong error returned when using no authentication
- !1407 Backport various patches from master to glib-2-64
- !1412 Backport SOCKS5 fixes to glib-2-64
* Translation updates:
- Dutch
- Italian
- Serbian
farstream 0.2.9 (March 11, 2020)
================================
- Add OPUS specific SDP OA negotiation to match RFC
- Switch VP8 to standard encoding name
- Removed MSN plugin, MSN Messenger is long dead
- Port away from deprecated libnice signals
- Bug fixes
Changes in dconf 0.36.0
=======================
- No changes since 0.35.1
Changes in dconf 0.35.1
=======================
- Writer service: avoid writing to disk and emitting changed signals
when write requests do not result in changes to the database (Daniel
Playfair Cal, !3)
- build: Drop redundant `install` key from `configure_file()` (Philip
Withnall, !53)
- build: Update abicheck.sh script to work with GCC 9 (Diego
Escalante Urello, !55)
- build: Update use of link_whole for meson-0.52 (Diego Escalante
Urello, !54)
changes for version 4.32 - 2020-01-24
(libev) fixed a bug introduced in 4.31 when timerfds and signalfds were used at the same time.
(libev) 0 is now allowed as requested event mask in io watchers.
(libev) once-per-minute wakeups will now be optimized away when timerfds are available
use the new ev_io_modify in EV::IO->events, instead of the potentially slower ev_io_set.
add a bunch of mutator methods, mostly untested(!): EV::Timer->repeat, EV::Periodic->offset, EV::Periodic->interval, EV::Periodic->reschedule_cb.
minor optimisations and bugfixes.
2020-03-13 Richard Russon <rich@flatcap.org>
* Features
- UI: add number of old messages to sidebar_format
- UI: support ISO 8601 calendar date
- UI: fix commands that don’t need to have a non-empty mailbox to be valid
- PGP: inform about successful decryption of inline PGP messages
- PGP: try to infer the signing key from the From address
- PGP: enable GPGMe by default
- Notmuch: use query as name for vfolder-from-query
- IMAP: add network traffic compression (COMPRESS=DEFLATE, RFC4978)
- Header cache: add support for generic header cache compression
* Bug Fixes
- Fix uncollapse_jump
- Only try to perform entire-thread on maildir/mh mailboxes
- Fix crash in pager
- Avoid logging single new lines at the end of header fields
- Fix listing mailboxes
- Do not recurse a non-threaded message
- Fix initial window order
- Fix leaks on IMAP error paths
- Notmuch: compose(attach-message): support notmuch backend
- Fix IMAP flag comparison code
- Fix $move for IMAP mailboxes
- Maildir: maildir_mbox_check_stats should only update mailbox stats if requested
- Fix unmailboxes for virtual mailboxes
- Maildir: sanitize filename before hashing
- OAuth: if 'login' name isn't available use 'user'
- Add error message on failed encryption
- Fix a bunch of crashes
- Force C locale for email date
- Abort if run without a terminal
* Changed Config
- `$crypt_use_gpgme` - Now defaults to 'yes' (enabled)
- `$abort_backspace` - Hitting backspace against an empty prompt aborts the prompt
- `$abort_key` - String representation of key to abort prompts
- `$arrow_string` - Use an custom string for arrow_cursor
- `$crypt_opportunistic_encrypt_strong_keys` - Enable encryption only when strong a key is available
- `$header_cache_compress_dictionary` - Filepath to dictionary for zstd compression
- `$header_cache_compress_level` - Level of compression for method
- `$header_cache_compress_method` - Enable generic hcache database compression
- `$imap_deflate` - Compress network traffic
- `$smtp_user` - Username for the SMTP server
* Translations
- 100% Lithuanian
- 81% Spanish
- 78% Russian
* Build
- Add libdebug
- Rename public headers to lib.h
- Create libcompress for compressed folders code
- Enable Cirrus CI for FreeBSD
* Code
- Refactor Windows and Dialogs
- Lots of code tidying
- Refactor: mutt_addrlist\_{search,write}
- Lots of improvements to the Config code
- Use Buffers more pervasively
- Unify API function naming
- Rename library shared headers
- Refactor libconn gui dependencies
- Refactor: init.[ch]
- Refactor config to use subsets
- Config: add path type
- Remove backend deps from the connection code
* Upstream
- Allow ~b ~B ~h patterns in send2-hook
- Rename smime oppenc mode parameter to get_keys_by_addr()
- Add $crypt_opportunistic_encrypt_strong_keys config var
- Fix crash when polling a closed ssl connection
- Turn off auto-clear outside of autocrypt initialization
- Add protected-headers="v1" to Content-Type when protecting headers
- Fix segv in IMAP postponed menu caused by reopen_allow
- Adding ISO 8601 calendar date
- Fix $fcc_attach to not prompt in batch mode
- Convert remaining mutt_encode_path() call to use struct Buffer
- Fix rendering of replacement_char when Charset_is_utf8
- Update to latest acutest.h