Re: [Evolution-hackers] Re: [Evolution] Sieve support



On Wed, 2003-07-30 at 16:08, Philip Van Hoof wrote:
On Sat, 2003-07-26 at 18:41, Philip Van Hoof wrote:


I want to know if somebody is taking a look at support for Sieve
serverside IMAP filtering scripts in Evolution and/or if it's perhaps
already supported at this moment in a development branch.

Trying not to put myself in the wrong direction I decided to ask about
this:

Am I correct if I say that /camel/providers/pop3 is where the POP3 stuff
is located? While I was reading the RFC of the sieve-protocol

Yep.

The question is, am I missing something? Shouldn't I start with copying
the pop3 provider for some reason? (Is there a better library in the
makes perhaps?)

I'm not sure it really makes sense to copy any provider, or to implement
it as a provider rather.  Providers provide objects to retrieve messages
(stores), and/or send them (transports).  It really sounds more like a
service provided on-top of a provider.  However it's done, it should
probably integrate at least in some way with the existing filter stuff
(even if that requires changes), e.g. through common interfaces/abstract
superclasses, etc.

Only being very rough here trying to describe what I mean ... but
basically some sort of OO design approach is desirable.

My plan/idea is to first create a library (like the protocols pop3 and
imap have) for the sieve protocol, then implement a very basic and
simple GUI (for example to get a list of all scripts, to delete a script
to add a script) and then fully integrate stuff with the filtering GUI's
of Evolution. Because I have a daytime job I suspect that by the time I
finish everything, the Exchange-filter support will have been added by
Ximian (meaning that the GUI's are the way the smart guys of Ximian want
it). I am hoping to then use that sieve-library of mine with some simple
GUI-modifications to the Exchange-filter support.

Does this sound like a good plan/idea? 

Does sieve go over its own tcp connection then?  (sorry i haven't really
looked into it for years).

I guess that basic idea is sound, although ... the 'library' could just
be some camel objects, if you want it well integrated.  And that could
be implemented more or less independent of whatever front-end api's are
exposed.  So it would be a good place to start.

I'd probably suggest in order, something like ...
 - a more or less independent impl for handling sieve protocol
 - some abstraction for rules, even if they're just opqaue text
 - some api on CamelStore to get access to the rules on a given server

Note that I do have a CVS-account on gnome but I will not be committing
anything to CVS before sending a (huge) patch-file to the mailinglist
and a strict "okay"-answer from the main developers of Evolution. 

Nod.  Note that we require copyright assignment for non-trivial patches
(if you haven't already).

Also note that if I will be the only person working on this
implementation, it will not be finished anytime soon (plus, I am also
working on a few other opensource projects as hobby). Again, are there
other people here who share the same idea and perhaps want to join the
effort of getting sieve supported in Evolution? (After looking at the
sources in filter/* I don't think that it's a impossible nor difficult
job. The sieve-protocol looks pretty easy and is very well documented).

Hopefully someone can help here.

ps. Evolution is a huge animal to get compiled. Are there tips/hints for
getting modules compiled and-or installed faster? I know that I don't
have to do `make clean` everytime, still it takes pretty long for the
build-scripts to complete everything. Even on my SMP-machine. If not, I
guess distcc will be an option (but I fear that it's mainly linking
thats taking long, and afaik does distcc not distribute link-jobs)

Some of the bits can be made/installed separately, e.g. you can
build/install camel (or even an individual provider) separately and it
will be picked up automatically.  That only takes a few seconds.  Having
an up-to-date development environment (libtool, etc) seemed to make it a
little quicker, but on the other hand i keep getting faster machines too
often.

Regards, 
 Michael






[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]