Home > ownCloud > Status ownCloud Desktop Syncing

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 🙂

[1] Klaas’ WIP branch csync

Categories: ownCloud Tags: , , ,
  1. Mark
    February 18, 2012 at 00:52

    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,)?

    • dragotin
      February 18, 2012 at 15:24

      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.

  2. gustaf
    February 18, 2012 at 01:07

    looking forward of seeing more updates!

    good work!

  3. Andre
    February 18, 2012 at 12:59

    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.

    • dragotin
      February 18, 2012 at 15:33

      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.

  4. mutlu
    February 18, 2012 at 17:07

    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?

  5. jmaspons
    February 20, 2012 at 00:01

    For KDE integration it would be great to sync the nepomuk metadata associated with the files. Is this feasible?

  6. Mark
    February 26, 2012 at 10:49

    It would be cool, if passwords/kwallet, booksmarks, metadata, contacts and feeds could be synced between different computers.

  7. Christian Isla
    April 4, 2012 at 14:24

    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.


    Christian Isla

  8. will
    July 17, 2012 at 14:34

    Hello there !
    thanks for the great job!

    Did you publish/commit the little owncloud patch that would allow the PROPPATCH ?


  1. March 5, 2012 at 13:50

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: