[Calypso] Calypso + SyncEvolution

Patrick Ohly patrick.ohly at gmx.de
Fri Feb 24 05:40:33 PST 2012


Hello!

I've tested SyncEvolution (development version, but should equally apply
to the latest stable 1.2.2) against Calypso 1f259a6 (the latest version
from git).

There were several problems. I have patches (attached) for the first
two, but not for the last one:

      * href not returned in PUT response even if the final path is
        different from the one requested by client.
      * Collection.my_items gets corrupted when creating a new item
        because first scan_files() adds the new Item, then scan_dir()
        adds it once more (duplicate entry).
      * "PROPFIND /private/calendar_1/" and
        "REPORT /private/calendar_1/" seem to end up accessing
        the /home/pohly/.config/calypso/calendars/private directory.

The last issue seems to come from the way how _collection is
implemented:

    @property
    def _collection(self):
        """The ``webdav.Collection`` object corresponding to the given path."""
        # ``self.path`` must be something like a posix path
        # ``normpath`` should clean malformed and malicious request paths
        attributes = posixpath.normpath(self.path.strip("/")).split("/")
        if len(attributes) >= 2:
            path = '/'.join(attributes[:-1])
            if not path in CollectionHTTPHandler.collections:
                CollectionHTTPHandler.collections[path] = webdav.Collection(path)
            return CollectionHTTPHandler.collections[path]

I haven't dug into the specific issue, but probably it comes from always
stripping the last path component. I'm surprised that this problem
doesn't break other clients. How is this code meant to work?

Note that some users and myself also tested SyncEvolution with Radicale.
It's said to work after fixing some issues in Radicale (still need to
check myself). I understand the reasons for forking Calypso, but I hope
that merging back the new features is under consideration. I'd prefer to
test and fix only one project, instead of two ;-}

-- 
Bye, Patrick Ohly
--  
Patrick.Ohly at gmx.de
http://www.estamos.de/

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Collection-avoid-adding-items-twice.patch
Type: text/x-patch
Size: 1038 bytes
Desc: not available
URL: </pipermail/calypso/attachments/20120224/ea25c50e/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-PUT-return-final-path-in-href.patch
Type: text/x-patch
Size: 2533 bytes
Desc: not available
URL: </pipermail/calypso/attachments/20120224/ea25c50e/attachment-0001.bin>


More information about the Calypso mailing list