[Owncloud] Compiling the client

Klaas Freitag freitag at owncloud.com
Thu Jun 14 06:42:04 UTC 2012


On 13.06.2012 21:53, Jono wrote:
Hey Jono,

> Thanks for your response. I found the compiling problem to be that
> DefineOptions.cmake had LOG_TO_CALLBACK set to OFF. Now I have the
> client running.
Cool, thanks for mentioning, and sorry that I forgot... Will try to make 
that more smooth.

> A little background. I wrote a Dropbox like system last year:
> https://github.com/jonocodes/mybox
Ah, interesting.

> It has some similarities to mirall, but one difference is it is a
> client and server which coordinate syncs over socket communication so
> there is no polling.
>
> I recently found csync while looking for a new sync backend to use in
> mybox. Which is why I am looking at how mirall does it.
>
> What are the plans you mentioned to make server sync more efficient?
Well, thats basically what you have: Use the servers capabilities of 
having knowledge about all files. csync is a bit inefficient (for the 
WebDAV case) because of the lots of directory listings which it does. 
Each of them is a PROPFIND which takes it's time and loads the server.

A first step for more efficiency could be to get all information about 
all files in one request (utilizing onwClouds file cache) and provide 
use that data. That is a nice example as that would be a good 
performance boost without reinventing everything - which I am not a 
friend of ;-)

Another great improvement will be to use some kind of server push to get 
to know about changes on the server to avoid polling.

The first problem we need to solve is the requirement of csync to have 
syncronized times on both machines. While that technically is a good 
requirement many users complain about. We need to change that.

> Too bad I did not know about your project earlier. Sounds like we were
> working in parallel at the same time on similar things. I probably
> would have joined you in the beginning, and perhaps I still can be of
> help. We'll see. Maybe it is time for me to get back into C++.

Yeah, that would be great! While csync is written in C (which is hard 
for cross platform) We're using C++ and Qt [1] in mirall. That is a 
really is a great toolkit which makes C++ smooth and with literally 
breathtaking cross platform capabilities. If you haven't worked with it 
yet, I promise you will love it.

Best regards,

Klaas

[1] http://www.qt-project.org
>
> On Wed, Jun 13, 2012 at 11:01 AM, Klaas Freitag<freitag at owncloud.com>  wrote:
>> On 13.06.2012 16:42, Jono wrote:
>> Hi Jono,
>>
>>
>>>
>>> Bit of a cmake noob. I followed the directions here:
>>> http://owncloud.org/dev/sync-clients/linux-build/
>>>
>>> but I am getting this error:
>>> mirall/src/mirall/application.cpp:336: undefined reference to
>>> `csync_set_log_callback'
>>
>> You probably forgot to switch to the dav branch of csync.
>>
>>
>>> Also general question about how syncs get coordinated. From looking at
>>> the code it seems that the linux client uses inotify to watch the
>>> local folder for modifications. If it is in windows, it will poll the
>>> local folder. Am I right?
>>
>> Yes, for now.  That is subject to change as Win and MacOS also have
>> something like inotify.
>>
>>
>>> And for detecting changes on the server, it seems to poll as well.
>>
>> Also for the time being, there are also plans to make that more effecient.
>>
>>
>>> Do the 'client' developers hang in the owncloud IRC?
>>
>> 'They' do, occasionally. Seek out for dragotin ;-)
>>
>> regards,
>>
>> Klaas
>> _______________________________________________
>> Owncloud mailing list
>> Owncloud at kde.org
>> https://mail.kde.org/mailman/listinfo/owncloud
> _______________________________________________
> Owncloud mailing list
> Owncloud at kde.org
> https://mail.kde.org/mailman/listinfo/owncloud




More information about the Owncloud mailing list