Commit c70959ca c70959cac82e02e7c6e8d72c21815e0f2ebc4088 by Sergey Poznyakoff

Revise TODO.

1 parent 435f1918
Showing 1 changed file with 65 additions and 93 deletions
GNU mailutils TODO list. 2008-08-20
GNU mailutils TODO list. 2010-12-01
Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010 Free
Software Foundation, Inc.
* Configuration callback functions should not modify node->tag and node->label.
* Provide a generic way to store UID, UIDNEXT and UIDVALIDITY in mailboxes.
* Debug handling in cfg vs. argp
* prog_stream: find a way to initialize start directory value and environment
* Fix folder_imap_list in libproto/imap/folder.c
* stream: associate with input location (mu_locus_t or the like).
* Documentation
* redo the support of the default user email and mail domain.
* Review the code and use mu_vartab_* and mu_kwd_* functions where
necessary.
* use the above in message_stream.
* mailbox
* eliminate uses of strtok(_r)
** Generic search interface
* mail: rewrite I/O support using streams.
** Locking
* redo debugging & logging support the way it is implemented in dico/mailfromd
*** Implement a read/write locker_lock() flag so that when MU_LOCKER_WRONLY
is set in the locker flags, only write locks actually lock the file,
read locks don't do anything.
* re-implement imap4 client (in progress)
* re-implement nntp client
* properties:
** implement libproperty - a library of various storage backends for mu_property_t.
** consider a possibility of typed properties (integer, unsigned, string, ...)
* vacation: link with libproperty when it is ready
* remove libmu_auth, rewrite mu_auth support via mu_property_t
* filter interface: need API to send line wrap length
See reset_line_length in examples/base64.c, libmailutils/tests/fltst.c
and mu/filter.c.
* locale-dependent variant of mu_rfc2047_decode
See rfc2047_decode_wrapper in frm/common.c for a prototype.
* observer: allow for procedure-data closures
See frm/common.c (near line 425).
* sieve.scm is exempted from installcheck.
See guimb/scm/Makefile.am for a discussion.
* lib/mailcap.c: rewrite using streams
* mu_address_createv: pass hints as in mu_address_create_hint?
* fix Python support
*** what kind of locking should mh use? See FIXME in mbx_mh.c
* fix C++ support
*** why does mimetest fail on a symlink, but succeed on a dotlocked file?
* redo libraries as loadable modules (where possible)
*** implement a force unlock mode... so that when a mailbox
is closed or destroyed it can make sure that the lock
is definitely gone.
* move obsolete interfaces to libmu-compat:
** mailboxes don't remember whether or not they've been opened
argcv
vartab
** does IMAP do an EXAMINE instead of a select if the mailbox is being
opened readonly? Does list return whether a mailbox is readonly?
Check against CMUs anon server, it is a read-only mailbox.
* Configuration callback functions should not modify node->tag and node->label.
** mu_cpystr - the size_t* size outputs only give strlen(), not the
actual length?
Sam Roberts:
My recollection is that when you give a buffer to output APIs, you give
the total size. But the size_t* that returns the required size, returns
the required size, minus the NUL. The units are different, in a sense.
* mailbox
** need code to find a "real" envelope from... an actual email address
that DSNs can be sent to.
** Generic search interface
** need to be able to map some addresses (like mail to "root") to a
user for the box, a la nullmailer, perhaps
Sam Roberts:
If you have a really simple workstation with a basic mail system,
you may want mail.local to deliver all email addressed to "root" and
"postmaster", etc., to a particular user, like yourself.
Sergey Poznyakoff:
In short, that is kind of aliasing support. We have aliasing support
in MH, possibly it could be used in libmailbox as well.
** Locking
** mailer_t: the SMTP mailer isn't as fully implemented as the sendmail
mailer.
*** Implement a read/write locker_lock() flag so that when MU_LOCKER_WRONLY
is set in the locker flags, only write locks actually lock the file,
read locks don't do anything.
** make the smtp mailer calls usable standalone, as well as url based,
and use them in mail.remote.
*** reportedly mimetest fail on a symlink, but succeed on a dotlocked file?
** support AUTH=anonymous (imap://cyrus.andrew.cmu.edu/archive.info-cyrus)
* mu_cpystr - revise the use of.
** filter_trans needs readline method.
* support AUTH=anonymous (imap://cyrus.andrew.cmu.edu/archive.info-cyrus)
* pop3
* mail aliasing support in libmailutils
** pop3d_readline - should this use select(), avoid the race condition,
and touch the lockfile in time intervals smaller than MU_LOCKER_EXPIRE_TIME?
Use code from MH.
* imap4d
** Check interaction with various imap clients. Currently tested with:
mail (from mailutils itself), mutt, pine, netscape, mozilla.
mail (from mailutils itself), mutt, pine, netscape, mozilla,
thunderbird, roundcube.
** Better support of multi-access mailbox
** Better support of multi-access mailboxes?
** implement charsets in search: 1 SEARCH CHARSET ISO-8859-2 TEXT ...
......@@ -102,55 +117,12 @@ The framework is implemented. Needs extensive testing.
* Mime.types API is available in mimeview. Do we need to move it to
libmailbox?
* examples
** unify the mbox-* and mimetest examples with messages, it would be nice
to have a general purpose tool
* mh -- see mh/TODO
* sieve
** run as daemon, sieveing mail on arrival (need interface for notification
of message arrival, this is supported by imap, but we'll have to fake
for pop and local spools my polling, why can't you select() on a unix
file?)
* utilities
** mimeview: support nametemplate
** all
* Testsuite:
Tcl is not able to handle binary data properly. This makes impossible
to test some aspects of MU functionalities. Following testcases are
affected:
** mailbox/testsuite/mailbox/base64.exp
The ability of the test program to read given file instead of the
stdin is used to override the issue.
** mailbox/testsuite/mailbox/encode2047.exp
Input data are represented in octal format (see
mailbox/testsuite/Encode2047).
** mailbox/testsuite/mailbox/argcv.exp
The affected testcase is not run (see mailbox/testsuite/Argcv and
search for FIXME).
* add nightly build
* add more features
* optimize everything
* test everything
Local variables:
mode: outline
......