~james-page/ubuntu/raring/dovecot/autopkgtest

« back to all changes in this revision

Viewing changes to TODO

  • Committer: Package Import Robot
  • Author(s): James Page
  • Date: 2012-06-11 11:11:54 UTC
  • mfrom: (1.15.2) (4.1.27 sid)
  • Revision ID: package-import@ubuntu.com-20120611111154-678cwbdj6ktgsv1h
Tags: 1:2.1.7-1ubuntu1
* Merge from Debian unstable, remaining changes:
  + Add mail-stack-delivery package:
    - Update d/rules
    - d/control: convert existing dovecot-postfix package to a dummy
      package and add new mail-stack-delivery package.
    - Update maintainer scripts.
    - Rename d/dovecot-postfix.* to debian/mail-stack-delivery.*
    - d/mail-stack-delivery.preinst: Move previously installed backups and
      config files to a new package namespace.
    - d/mail-stack-delivery.prerm: Added to handle downgrades.
  + Use Snakeoil SSL certificates by default:
    - d/control: Depend on ssl-cert.
    - d/dovecot-core.postinst: Relax grep for SSL_* a bit.
  + Add autopkgtest to debian/tests/*.
  + Add ufw integration:
    - d/dovecot-core.ufw.profile: new ufw profile.
    - d/rules: install profile in dovecot-core.
    - d/control: dovecot-core - suggest ufw.
  + d/{control,rules}: enable PIE hardening.
  + d/dovecot-core.dirs: Added usr/share/doc/dovecot-core
  + Add apport hook:
    - d/rules, d/source_dovecot.py
  + Add upstart job:
    - d/rules, d/dovecot-core.dovecot.upstart, d/control,
      d/dovecot-core.dirs, dovecot-imapd.{postrm, postinst, prerm},
      d/dovecot-pop3d.{postinst, postrm, prerm}.
      d/mail-stack-deliver.postinst: Convert init script to upstart.
  + d/control: Added Pre-Depends: dpkg (>= 1.15.6) to dovecot-dbg to support
    xz compression in Ubuntu.
  + d/control: Demote dovecot-common Recommends: to Suggests: to prevent
    install of extra packages on upgrade.
  + d/patches/dovecot-drac.patch: Updated with version for dovecot >= 2.0.0.
  + d/control: Drop B-D on systemd.
* Dropped changes:
  + d/patches/fix-racey-restart.patch: part of 2.1.x, no longer required.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
 - doveadm fetch text mailbox <ns prefix> -> no replies, because
2
 
   mailbox_list_iter_init_namespaces() doesn't return ns prefixes
 
1
 - lmtp client/proxy: Handle multiline replies better
 
2
 - lib-ssl-iostream: Support ssl_protocols setting
 
3
 - recreate mailbox -> existing sessions log "indexid changed" error
 
4
 - add message/mime limits
 
5
 - imapc:
 
6
     - prefetching to THREAD and SORT
 
7
     - check all imap extensions and see if some don't work (condstore)
 
8
 - per-namespace imapc_* settings? create a way to "copy" a settings struct,
 
9
   so mail_storage_settings are copied to mail_namespace_settings. use the
 
10
   change tracking to figure out what settings are namespace-specific.
 
11
 
 
12
 - imap: list (special-use recursivematch) "" % doesn't work
 
13
 - passdb, userdb { username_format } that doesn't permanently change
 
14
   the username
 
15
 - mdbox/sdbox index rebuild -> quota rebuild?
 
16
 - solr separate attachments (patch)
 
17
 - sql connection pooling: Count lookup latencies, avoid servers with
 
18
   significantly higher latencies. optionally use the secondary server only
 
19
   as fallback
 
20
 - maildir_storage_sync_force() shouldn't do anything except find the new
 
21
   file, don't go expunging any more stuff or we could get recursively back to
 
22
   where we started, and stuff would break
 
23
 - imap: append/copy could trigger indexing (optionally)
 
24
 - fuzzy: be fuzzy about date/size
 
25
 - fix proxy_maybe=fqdn
 
26
 - mailbox list index:
 
27
    - with in-memory indexes be sure to refresh it more often
 
28
    - refreshing could refresh only the parts that are actually requested,
 
29
      e.g. %
 
30
    - mailbox_get_metadata(guid) could be optimized
 
31
    - virtual could use it to avoid keeping all mailboxes open
 
32
 - check:
 
33
    - dsyncing between two namespace separators is probably broken..
 
34
 - remove mail_deliver_session after all, do all the stuff transparently
 
35
   by hooking into mailbox_copy().
 
36
     - use this hook also to do the mail deduplication: 1) sort all destination
 
37
       users, 2) create mail_user only once for each user, 3) remember in
 
38
       src_mail the previously copied mail, 4) use that for mailbox_copy()ing
 
39
       to following recipients
 
40
 - notify_sync() could have "what changed" struct with old/new flags
 
41
 - maildir: copy dovecot-shared file from parent mailbox, not root.
 
42
 - if global ACL path points to a file instead of a directory, read all of
 
43
   them from there. support wildcards in names.
 
44
 
3
45
 - master passdb preserves userdb_* extra fields. should it preserve
4
46
   non-userdb_* extra fields too?
5
47
 - imap, pop3: if client init fails, wait a second or two before disconnecting
6
48
   client.
7
 
 - doveadm expunge parameter to delete empty mailboxes (for lazy-expunge)
8
49
 - doveadm search savedbefore 7d could be optimized in large mailboxes..
9
50
 - mdbox: storage rebuilding could log about changes it does
10
51
 - mdbox: broken extrefs header keeps causing index rebuilds
18
59
   from lib-index
19
60
 - dsync: if mailbox is renamed due to it being invalid, its subscription
20
61
   isn't renamed
21
 
 - LSUB shows subscribed namespace prefix as prefix/, also SUBSCRIBE adds the /
22
62
 - sql pool: if async query is pending and sync query is sent and there
23
63
   are no more empty connections, it should flush the async query first
24
64
 - NTLMv1 and LM should be disabled if disable_plaintext_auth=yes
25
65
 - SEARCH SENT*/HEADER/etc. doesn't seem optimized when using with TEXT/BODY
26
66
 - dict sql: support ignoring some search key hierarchies (e.g. acl "anyone")
27
67
 
28
 
 - fts-solr: crashes if expunge is done while search is indexing
29
 
 - fts-solr: handle DELETE, RENAME. use mailbox GUIDs (optionally)
30
 
 
31
68
 - mdbox
32
69
    - dotlocking: cleanup should delete stale *.lock files
33
70
    - purging seems to be inefficient. run imaptest for a while, get >500
76
113
 - search: use mail_get_parts() only when it's already cached. if it's not,
77
114
   add it to cache afterwards.
78
115
 - move ssl proxying code to lib-master
79
 
 - proxy: verify ssl cert's cname
80
116
 - dict pooling
81
117
 
82
118
        /* currently non-external transactions can be applied multiple times,
98
134
   assertion failed: (file_offset >= log->head->saved_tail_offset)
99
135
 - virtual: If last message matching INTHREAD rule gets expunged, the rest of
100
136
   the thread doesn't go away
101
 
 - virtual: "Searched n% of the mailbox" gives broken numbers since
102
 
   ctx->seq jumps around. And why is it also returned when fts is enabled
103
 
   along with "Indexed n% of the mailbox"?
104
137
 - how do shared mailboxes work with plugins?
105
138
    - lazy-expunge, fts, etc.?
106
139
    - listescape+acl can't handle shared mailboxes with escape chars
129
162
   - recent_uids assert at least with mbox
130
163
 - quota fs: Should values returned by quota be divided by the actual
131
164
   filesystem block size instead of hardcoded DEV_BSIZE? not with AIX..
132
 
 - mailbox list fs: Listing subscriptions with children return options doesn't
133
 
   work unless iter_is_mailbox() returns the children flags
134
 
 - lucene: handle replacement chars?
135
165
 - squat:
136
 
   - support ORs
137
166
   - wrong indexid
138
167
   - fts_build_init() assertion failed: (last_uid < last_uid_locked)
139
168
   - is locking done right? it reads header without file being locked?
147
176
   - sasl bind + auth_bind=yes should probably be doing only sasl binds..
148
177
   - support multiple connections for doing auth binds
149
178
   - domain lookups which set the base for user lookup
150
 
   - same attribute can't be used for multiple values.
151
 
   - multiple attributes can't be merged to a single value.
152
 
   - multiple value could be joined with specified separator (per-field)
 
179
   - multiple ldap values could be joined into one field with specified
 
180
     separator (e.g. mail_access_groups=%{ldap:gidNumber:,})
153
181
   - implement something like:
154
182
       user_attrs {
155
183
         uid = %{ldap:uidNumber}
168
196
 
169
197
 - maildir
170
198
   - don't allow more than 26 keywords
171
 
   - physical separator could be configurable
172
 
   - lda+maildir: if new mails are in new/ or cur/ they're not added to
173
 
     dovecot-uidlist but newly saved mails are, so UIDs will be in wrong order
174
199
 
175
200
 - file_cache: we're growing the mmap in page size blocks, which is horribly
176
201
   slow if mremap() doesn't exist.
221
246
           - only after that we can remove the transaction log offset
222
247
             overwriting (otherwise we can get partial transactions in views)
223
248
 
224
 
 - lib-storage
225
 
    - x search charset asdf all -> should fail
226
 
 
227
249
 - login
228
250
    - Digest-MD5: support integrity protection, and maybe crypting. Do it
229
251
      through login process like SSL is done?
243
265
      untrusted computers. Maybe always send [ALERT] about the previous
244
266
      read-only login time with IP?
245
267
 
246
 
 - quota
247
 
    - if dovecot-uidlist can't be written, assume the new mails have UIDs 
248
 
      beginning from uidlist.next_uid. Whenever mails are expunged, overwrite
249
 
      the next_uid field with the current highest next_uid. Whenever we have
250
 
      assumed UIDs and uidlist gets updated, throw the client out with
251
 
      "inconsist mailbox".
252
 
 
253
268
 - ssl
254
269
    - add setting: ssl_options = bitmask. by default we enable all openssl
255
270
      workarounds, this could be used to disable some of them
260
275
    - message_search_init() could accept multiple search keywords so we
261
276
      wouldn't need to call it separately for each one (so we wouldn't need
262
277
      to parse the message multiple times).
263
 
    - could optionally support scanning inside file attachments and use
264
 
      plugins to extract text out of them (word, excel, pdf, etc. etc.)
265
278
    - Create our own extension: When searching with TEXT/BODY, return
266
279
      the message text surrounding the keywords just like web search engines
267
280
      do. like: SEARCH X-PRINT-MATCHES TEXT "hello" -> * SEARCH 1 "He said: