Michel's Proprietary Patches [Was: Cyrus 2.3.16 \Seen flag problem]

Sébastien Michel seb2lille at gmail.com
Thu Jun 9 13:37:53 EDT 2011

2011/4/22 Adam Tauno Williams <awilliam at opengroupware.us>

> On Fri, 2011-04-22 at 15:38 +0200, Julien Coloos wrote:
> > However we think that a better way would be to split at attachment
> > level instead of body level, it could be possible to save base64
> > overhead, permit de-duping and do data compression (i.e on PDF or
> > Office). May be it would be nice to add an http/webdav daemon to Cyrus
> > to give direct access to the attachments...
> Pretty wild, and very cool.  I know one of the challenges I see is
> integrating with mail to the same level one can with proprietary
> packages like Exchange, Google, etc...  While at the same time being
> 'standard'.  [And I've developed a WebDAV server, so always interested
> in WebDAV stuff]
> > - RFC 5423 - Internet Message Store Events is mostly implemented to
> > send external notifications. We add an activemq plugin to notifyd to
> > send JMS notifications.
> Really?!  We are a Cyrus shop and make use of AMQP.  I'd love to see
> this patch [for my own selfish uses].

below a first list of patch already published in the Cyrus's bugzilla or
discussed in the devel mailing list. I don't list those already applied in
cyrus stream.

- PATCH_COPYFILE_TIMES               See

- PATCH_DISPLAYNAME                 Implements RFC 5957. See

- PATCH_DUMMY                                Adds dummy backend to disable
some table. See this thread:



- PATCH_LMTP_PROXY                  See

- PATCH_OUTLOOK_IDLE                 Workaround for Outlook that doesn't
handle timeout on IDLE. See
http://bugzilla.cyrusimap.org/show_bug.cgi?id=3396  )

- PATCH_RANDOMPARTITION              Creates mailbox on most fitting
partition. See http://bugzilla.cyrusimap.org/bugzilla3/show_bug.cgi?id=3374


- PATCH_SRS                         Implements Sender Rewrite Scheme (proof
of concept, we never deployed this patch) See


a second list of patches that may interest some people.

- PATCH_ACTIVEMQ            Adds activemq connector to notifyd

- PATCH_COMPILE_SIEVES      Compile sieve on mailbox access or lmtp delivery
when upgrading from 2.2 or earlier (avoid use of masssievec)

- PATCH_EVENT                       Enables notification on mailbox event
(subpart of event defined in RFC 5423 - Internet Message Store Events)

- PATCH_IPURGE                      Adds command line options to ipurge

- PATCH_MURDER              Adds some security controls to Cyrus proxy : IP
concurrency limit, IP blacklist, ...

- PATCH_POOLSQL              SQL connection pool inspired by Postfix's

- PATCH_QUOTAMESSAGE Limits the number of emails per folder. Should be
better to implement the whole QUOTA standard (RFC 2087)

- PATCH_SERVICENAME          Logs warning when administrator defines a
service in cyrus.conf that contains '_' in its name. Should be better to fix
the issue

- PATCH_SOFTSHUTDOWN      Graceful shutdown on SIGUSR1

- PATCH_SOLR     Full text search with Solr (is still in development)

- PATCH_STAGEFILENAME       Makes file names in .stage directory unique over

- PATCH_MYSQL_PROXY           Enables murderless Cyrus proxy with the
addition of plugins to mysql backend

A final list which includes bulk patches : some useful but break RFC or are
non standard. Or some just less interesting or need more rewrite to be less
specific :

- PATCH_ADVANCED_SHAREDSEEN Allows the administrator to see \Seen flags of
the mailbox's owner (useful with STATUS command)

- PATCH_ALWAYSIGNOREQUOTA   Always Ignore quota on LMTP delivery

- PATCH_APPENDSIZE          Limits the size of mail delivered by IMAP APPEND

- PATCH_BACKTRACE                   Logs backtrace on abnormal exit when
system core dump is not enabled

- PATCH_DISABLEADMINONMBOX  Remove RFC 2086 compliance : user is not admin
on their own mailbox namespace

- PATCH_EXTENDEDSIEVE                Adds some non standard variable and
keywords to sieve: DateinInterval, DateInPeriodicity, GMTDateInPeriodicity
et GMTDateInInterval. UpdateHeader, AddHeader et RemoveFromHeader. etc

- PATCH_EXTERNSTORAGE               Core implementation of our hierarchical
storage that splits in two parts emails (header / body) depending on their
size. Should be better to extract attachments from messages

- PATCH_EXTERNSTORAGE_FILESYSTEM    Store body on local filesystem

- PATCH_EXTERNSTORAGE_WEBDAV   Store body on webdav server

- PATCH_FOOLSTUPIDCLIENTS           Extends foolstupidclients

- PATCH_HIDE_CAPA                    Adds option to hide IMAP capabilities

- PATCH_LIMIT_NAME_SIZE             Fix a size limit to folder name (255

- PATCH_QUOTADEFAULT         Allows logical quota in quota management
(breaks QUOTA extension)

- PATCH_SOCKET_TIMEOUT               Allows POP and IMAP timeout shorter
than defined in RFC

- PATCH_SPAM                         Don't send MessageNew notification for

- PATCH_UNDERSCOREDOMAINBUGFIX      Allows underscore in the domain part of
Lots of them need to be adapted to run on Cyrus 2.4 or next 2.5 because of
huge amount of (good) code refactoring by Bron. Some of them need to be
rewritten and more tested because we don't use all Cyrus's features.

We suggest to select a few patches (2/3) we might rework before submit them
and continue by iterations (we have a clone of cyrus master on github:
https://github.com/worldline-messaging/cyrus-imapd.). We will probably ask
for some suggestion or advice to redesign some patches the better possible.
Feel free to indicate which patch may interest any of you.
We will start with PATCH_EVENT and PATCH_MYSQL_PROXY.

Do you think if this list of patches can interest people of the cyrus-user's
ML ?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.andrew.cmu.edu/pipermail/cyrus-devel/attachments/20110609/7b0142df/attachment.html 

More information about the Cyrus-devel mailing list