Status ownCloud Desktop Syncing
It has been a busy week where I was working on the ownCloud Desktop sync client. As described in my last post this will be based on a csync module to handle ownCloud as well as mirall, a Qt based desktop client to sync.
That involved basically three things: A csync module, a patch in ownCloud and work on mirall.
For csync, there needs to be a module that handles the connection to ownCloud, for code see [1]. ownCloud has a WebDAV interface, and its used for this. Csync requires the the implementation of a couple of POSIX functions such as opendir, readdir, closedir, stat and these kind of things. I did that using WebDAV equivalents.
Unfortunately one method is needed for the sync algorithms which has no equivalent in WebDAV, which is utime. utime sets the modification time of a file. csync needs that to fix the time after a file was copied to the other side. For that, I made a little patch to ownCloud to allow a PROPPATCH method on the modified time of a resource. That makes csync happy and working, but that also means that the module is not a general csync webdav module but a csync owncloud module. Named it accordingly.
The first action I started on mirall this time is a bit cleanup. First, I introduced a class to move all the code which loads, edits and monitors the folders out of the main application class, which was long overdue. That separates the sync folder management in mirall from the GUI stuff. Furthermore I added a few helper classes such as a config file class for mirall. Ah yes, a theming class was also added to handle the future two faces character of mirall easily, as said before mirall should either appear as traditional mirall client, or as ownCloud client. Duncan and me agreed to build that from one source, the theming class supports that.
Last but not least I polished the wizard in which a user connects to his ownCloud and added a test call that immediately evaluates the url and credentials. For the curious, the code is in my work repository but I promise to move it to the ownCloud repo on gitorious soon.
So far for now, if you have suggestions for me I’d love to hear them. Thanks
How far will the synclient be integrated into KDE? Will there be a Dolphin integration (showing graphical sync status, context menu allowing to create share link and add it to clipboard,)?
The plan is to do KDE integration optionally (HAVE_KDE-switch). I’d like to see as deep integration as possible, but I probably will need some suggestions both on the “what would be cool” side (beside the obvious) as well as on the “how to code it” side.
looking forward of seeing more updates!
good work!
Great, I’m really looking forward to Owncloud syncing. I’m currently often working on WebDAV directly, in the absence of any working sync.
I’m curious as to why PROPPATCH can’t set atime and mtime, could you elaborate? I thought the standard said that all properties must be modifiable.
Sabre DAV handles the getlastmodified property as a “protected property” after RFC4918. There it says: “Protected: SHOULD be protected because some clients may rely on the value for appropriate caching behavior, or on the value of the Last-Modified header to which this property is linked.” This is a valid reason, which we do not break. Csync uploads files to a tmp file and after that is finished, it moves to the original file name and afterwards sets the mtime to the one on the client side to indicate that the files are equal.
Nice! What I did not quite get, though, was what already works. Should we go ahead and test what you have done thus far? Or is it still too early?
For KDE integration it would be great to sync the nepomuk metadata associated with the files. Is this feasible?
It would be cool, if passwords/kwallet, booksmarks, metadata, contacts and feeds could be synced between different computers.
This is absolutely fantastic! I’ve been waiting a while for this and it’s brilliant. If you are looking for ‘cool’ or ‘suggestions’ (as noted above) . ; just really ‘nice-to-have’..
1. double clicking (or right click and select) on icon tray would be nice to bring me into sync folder.
2. directory status window (currently click on icon in tray) would be nice to see (if possible) a bar showing how much space of total is available up in the cloud.
Thanks,
Christian Isla
Hello there !
thanks for the great job!
Did you publish/commit the little owncloud patch that would allow the PROPPATCH ?
Will