<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Free Software</title>
	<atom:link href="http://dragotin.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://dragotin.wordpress.com</link>
	<description>and what I was thinking about</description>
	<lastBuildDate>Fri, 25 May 2012 16:24:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='dragotin.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/a2c3468ee75dac23bcaac29dfd09b4fe?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Free Software</title>
		<link>http://dragotin.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://dragotin.wordpress.com/osd.xml" title="Free Software" />
	<atom:link rel='hub' href='http://dragotin.wordpress.com/?pushpress=hub'/>
		<item>
		<title>ownCloud 4 and ownCloud Client 1.0.2 released</title>
		<link>http://dragotin.wordpress.com/2012/05/22/owncloud-4-and-owncloud-client-1-0-2-released/</link>
		<comments>http://dragotin.wordpress.com/2012/05/22/owncloud-4-and-owncloud-client-1-0-2-released/#comments</comments>
		<pubDate>Tue, 22 May 2012 07:57:19 +0000</pubDate>
		<dc:creator>dragotin</dc:creator>
				<category><![CDATA[ownCloud]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[Release]]></category>
		<category><![CDATA[desktop client]]></category>
		<category><![CDATA[owncloud]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://dragotin.wordpress.com/?p=111</guid>
		<description><![CDATA[It&#8217;s release day today: This morning, ownCloud 4 was released! With a very cool set of features it&#8217;s even more useful and again more fun to use. Along with that I am happy to let you know that we also released the ownCloud Desktop Client in version 1.0.2. It is a maintenance release with a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dragotin.wordpress.com&#038;blog=31325229&#038;post=111&#038;subd=dragotin&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s release day today: This morning, <a href="http://owncloud.org/owncloud-4-release-annoucement/">ownCloud 4</a> was released! With a very cool set of <a href="http://owncloud.org/features/">features</a> it&#8217;s even more useful and again more fun to use.</p>
<p><img src="http://owncloud.org/wp-content/uploads/2012/05/mac-e1337366410716.png" alt="ownCloud Client on MacOS" align="left" style="float:left;margin-right:20px;margin-bottom:10px;" /> Along with that I am happy to let you know that we also released the ownCloud Desktop Client in <a href="http://owncloud.org/sync-clients/releases/">version 1.0.2</a>. </p>
<p>It is a maintenance release with a couple of important bugfixes, such as the cross platform <a href="http://dragotin.wordpress.com/2012/05/10/cross-platform-again/">filename encoding problem</a> I was already talking about. Apart from that big blocker a couple of smaller, but annoying problems were fixed. Also the GUI was polished, text changes here and there and a new icon set that looks more cool and more like ownCloud.</p>
<p>Version 1.0.2 is also the version that is released on all big desktop platforms the first time. Now we also offer a <a href="http://download.owncloud.com/download/ownCloudClientSetup-1.0.2.dmg">dmg for MacOSX</a> as well as a <a href="http://download.owncloud.com/download/owncloud-client-1.0.2-setup.exe">Windows Installer</a> and <a href="http://software.opensuse.org/download/package?project=isv:ownCloud:community&amp;package=owncloud-client">packages</a> for the major Linux distributions. Have fun!</p>
<p>If you want to talk about ownCloud, file synchronization or such, we have a booth on <a href="http://www.linuxtag.org/2012/">Linuxtag in Berlin</a> and I will be there. I am looking forward to meeting you.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dragotin.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dragotin.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dragotin.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dragotin.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dragotin.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dragotin.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dragotin.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dragotin.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dragotin.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dragotin.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dragotin.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dragotin.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dragotin.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dragotin.wordpress.com/111/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dragotin.wordpress.com&#038;blog=31325229&#038;post=111&#038;subd=dragotin&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dragotin.wordpress.com/2012/05/22/owncloud-4-and-owncloud-client-1-0-2-released/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e1cbb82e662e028daa3ad707d716ef1c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dragotin</media:title>
		</media:content>

		<media:content url="http://owncloud.org/wp-content/uploads/2012/05/mac-e1337366410716.png" medium="image">
			<media:title type="html">ownCloud Client on MacOS</media:title>
		</media:content>
	</item>
		<item>
		<title>Cross platform again</title>
		<link>http://dragotin.wordpress.com/2012/05/10/cross-platform-again/</link>
		<comments>http://dragotin.wordpress.com/2012/05/10/cross-platform-again/#comments</comments>
		<pubDate>Thu, 10 May 2012 19:01:55 +0000</pubDate>
		<dc:creator>dragotin</dc:creator>
				<category><![CDATA[ownCloud]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[encoding]]></category>
		<category><![CDATA[owncloud]]></category>
		<category><![CDATA[win32]]></category>

		<guid isPermaLink="false">http://dragotin.wordpress.com/?p=74</guid>
		<description><![CDATA[Writing cross platform code is easy nowadays. You use Qt, implement stuff, and it compiles and runs almost everywhere. I also enjoy that in my work on the ownCloud desktop client. But, as you know, there is the other part in the client called csync. Its the syncing engine underneath. And that does not build [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dragotin.wordpress.com&#038;blog=31325229&#038;post=74&#038;subd=dragotin&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Writing cross platform code is easy nowadays. You use <a href="http://qt-project.org/">Qt</a>, implement stuff, and it compiles and runs almost everywhere. I also enjoy that in my work on the ownCloud desktop client. But, as you know, there is the other part in the client called <a href="http://csync.org">csync</a>. Its the syncing engine underneath. And that does not build up on Qt, but is plain C. Adventure starts here.</p>
<p><a title="This bug" href="http://bugs.owncloud.org/thebuggenie/owncloud/issues/oc-478">This bug</a> took me on an interesting (well&#8230;) journey into what cross platform really means.It is about a complex thing like filenames containing special characters, my favorite example is the directory &#8220;Übergröße&#8221;. Directories and files like this could not successfully be synced with the latest client.</p>
<p>Windows does not utf8 by default. As far as I understood it, it does a local encoding by default. If you use normal C functions to access the filesystem, something like readdir or so, you get the names in that encoding. But, because that caused problems in some point, there is another set of functions which often start with _w (for example _wreaddir) and that has an interface to deal with <a href="http://en.wikipedia.org/wiki/Wide_character">wide characters</a>. This is the way to internationalization.</p>
<p>So what needs to be done is to use the wide character implementations everywhere where you deal with filenames (in my case). That, in turn, requires to use wchar_t instead of normal char. But that again requires a lot of #ifdef _WIN32, if its done the naive way at every place it needs to be done. I learned that typedef helps here and a meta type is defined called _TCHAR. And also for all the needed functions, meta functions are defined which are replaced by tricky defines depending on the platform. For example _treaddir becomes readdir on linux and _wreaddir on win32, while _TCHAR becomes wchar_t on Win and char on linux. The code is written using the meta types to not poison it too much with platform ifdefs.</p>
<p>But that is only the first step. Wide character is not utf8! And since utf8 should be used within the software all over, a conversion from wide character to utf8 and back is needed whenever the file system is accessed. Thankfully from csyncs nature, these places are quite nicely concentrated.</p>
<p>All that combines into a <a href="http://git.csync.org/users/freitag/csync.git/commit/?h=dav&amp;id=9ec8d7082272c6b36ef6884bb977a4386c745e8d">larger patch</a>. And now the &#8220;Übergröße&#8221; folder can be synced correctly from Windows to Linux and back. Great.</p>
<p>What can we learn from that? Well, easy, and once again: If you have no Qt, you&#8217;re alone. Better don&#8217;t let that happen. If you have Qt, be happy and aware of what it does for you <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dragotin.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dragotin.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dragotin.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dragotin.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dragotin.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dragotin.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dragotin.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dragotin.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dragotin.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dragotin.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dragotin.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dragotin.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dragotin.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dragotin.wordpress.com/74/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dragotin.wordpress.com&#038;blog=31325229&#038;post=74&#038;subd=dragotin&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dragotin.wordpress.com/2012/05/10/cross-platform-again/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e1cbb82e662e028daa3ad707d716ef1c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dragotin</media:title>
		</media:content>
	</item>
		<item>
		<title>ownCloud Client 1.0.1</title>
		<link>http://dragotin.wordpress.com/2012/04/26/owncloud-client-1-0-1/</link>
		<comments>http://dragotin.wordpress.com/2012/04/26/owncloud-client-1-0-1/#comments</comments>
		<pubDate>Thu, 26 Apr 2012 11:56:43 +0000</pubDate>
		<dc:creator>dragotin</dc:creator>
				<category><![CDATA[ownCloud]]></category>
		<category><![CDATA[mirall]]></category>
		<category><![CDATA[oCC]]></category>
		<category><![CDATA[owncloud]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://dragotin.wordpress.com/?p=53</guid>
		<description><![CDATA[This week we prepared another ownCloud sync client (oCC) release for you. oCC is released together with csync 0.50.5, the underlying library on which shoulders oCC stands. Find packages for your distribution. Only a couple of weeks after the first release we could come up with a quite long changelog, larger than for a maintainance [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dragotin.wordpress.com&#038;blog=31325229&#038;post=53&#038;subd=dragotin&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This week we prepared another <a href="http://www.owncloud.org">ownCloud</a> <a href="http://owncloud.org/sync-clients">sync client (oCC)</a> release for you. oCC is released together with <a href="//csync.org">csync</a> 0.50.5, the underlying library on which shoulders oCC stands. Find packages for <a href="http://software.opensuse.org/download/package?project=isv:ownCloud:community&amp;package=owncloud-client">your distribution</a>.</p>
<p><a href="http://dragotin.files.wordpress.com/2012/04/icon-128_2.png"><img class="alignleft size-full wp-image-64" title="icon-128_2" src="http://dragotin.files.wordpress.com/2012/04/icon-128_2.png?w=600" alt="ownCloud Logo"   /></a>Only a couple of weeks after the first release we could come up with a quite long <a href="http://owncloud.org/sync-clients/releases">changelog</a>, larger than for a maintainance release.</p>
<p>First and foremost, oCC now supports SSL connections and does not store passwords any more, well, in clear text in a config file. Still there is no strong encryption for the password in (as that&#8217;s a non trivial if not impossible thing) but its not clear text any more, so accidents should not longer happen. For those who really care and put security over convenience there now is the option to not store the password at all but provide it at startup. The whole password storage will get more attention soon, I did some work on that already, also using kwallet, more on that in another post.</p>
<p>The whole start process of oCC, which is more complex as it might seem as libcsync expects a nice environment with a verified connection to the ownCloud, was cleaned and matured. I had to learn about <a href="http://qt-project.org/doc/qt-4.8/QNetworkAccessManager.html">QNAM</a> but now we seem to be friends.</p>
<p>Efforts also went into the following areas:</p>
<ul>
<li>Error handling: People got confused about error messages from oCC which were not accurate here and than. I added more fine granular error reporting to libcsync so that oCC now can give even more helpful error messages.</li>
<li>MacOSX: On the sprint weekend in Stuttgart, we made good progress on that platform, will also soon get a release. Domme got the most out of cmake to get dmg image building going, thanks, you rock!</li>
<li>Qt 4.6: As usual one has to learn that current distributions ship not so current Qt versions. Thanks to Thomas, he put quite some effort in porting back to Qt 4.6 &#8211; so that Debians friends can also use oCC now.</li>
<li>Packages: Check out the <a href="https://build.opensuse.org/project/packages?project=isv:ownCloud:community">community repo</a> on <a href="http://www.open-build-service.org/">OBS</a>: We now can provide packages for way more platforms including Ubuntu and Debian. Still your help would be appreciated in maintaining.</li>
</ul>
<p>Speaking about the recent <a href="http://blog.karlitschek.de/2012/04/what-weekend.html">sprint in Stuttgart</a>: It was great to be there, ownCloud has an open, friendly and welcoming community in which you really feel the spirit of working on something new and interesting with cool potential. I really enjoy being here,. Thanks guys for all your work and feedback <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dragotin.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dragotin.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dragotin.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dragotin.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dragotin.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dragotin.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dragotin.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dragotin.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dragotin.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dragotin.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dragotin.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dragotin.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dragotin.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dragotin.wordpress.com/53/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dragotin.wordpress.com&#038;blog=31325229&#038;post=53&#038;subd=dragotin&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dragotin.wordpress.com/2012/04/26/owncloud-client-1-0-1/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e1cbb82e662e028daa3ad707d716ef1c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dragotin</media:title>
		</media:content>

		<media:content url="http://dragotin.files.wordpress.com/2012/04/icon-128_2.png" medium="image">
			<media:title type="html">icon-128_2</media:title>
		</media:content>
	</item>
		<item>
		<title>CSync and Mirall Development Setup</title>
		<link>http://dragotin.wordpress.com/2012/03/22/csync-and-mirall-development-setup/</link>
		<comments>http://dragotin.wordpress.com/2012/03/22/csync-and-mirall-development-setup/#comments</comments>
		<pubDate>Thu, 22 Mar 2012 20:43:29 +0000</pubDate>
		<dc:creator>dragotin</dc:creator>
				<category><![CDATA[ownCloud]]></category>
		<category><![CDATA[cross compile]]></category>
		<category><![CDATA[csync]]></category>
		<category><![CDATA[mingw]]></category>
		<category><![CDATA[mirall]]></category>
		<category><![CDATA[owncloud]]></category>

		<guid isPermaLink="false">http://dragotin.wordpress.com/?p=29</guid>
		<description><![CDATA[people were asking how to set up a development setup for the syncing client we are working on to sync local files to ownCloud and vice versa currently, work title mirall. While a website about it is not yet finished, I try to summarize it here. There are some hacks here and there but that&#8217;s [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dragotin.wordpress.com&#038;blog=31325229&#038;post=29&#038;subd=dragotin&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><div id="attachment_48" class="wp-caption alignleft" style="width: 102px"><a href="http://dragotin.files.wordpress.com/2012/03/kbagger_part.png"><img src="http://dragotin.files.wordpress.com/2012/03/kbagger_part.png?w=92&h=300" alt="A KDE bagger" title="bagger" width="92" height="300" class="size-medium wp-image-48" /></a><p class="wp-caption-text">Build it!</p></div><br />
people were asking how to set up a development setup for the syncing client we are working on to sync local files to <a href="http://owncloud.org">ownCloud</a> and vice versa currently, work title mirall. While a website about it is not yet finished, I try to summarize it here. There are some hacks here and there but that&#8217;s how I do it today. It will improve over time. Note that this is about a real development setup, not for a production build.</p>
<p>Linux and Windows development should go in parallel as easy as possible.</p>
<p><strong>Building CSync</strong></p>
<p>To build mirall, csync must be built first. CSync is hosted in its <a href="http://git.csync.org/projects/csync.git/">upstream git repo</a> and there is also my <a href="http://git.csync.org/users/freitag/csync.git/log/?h=dav">development branch</a> which holds the latest changes.</p>
<p><a href="http://dragotin.files.wordpress.com/2012/03/buildoc_dirs.png"><img class="alignright size-full wp-image-31" title="Build directories" src="http://dragotin.files.wordpress.com/2012/03/buildoc_dirs.png?w=600" alt="Overview of Build Directory setup."   /></a>Clone the csync branch into a directory. In parallel to the cloned <code>csync</code> dir, create a new directory <code>buildcsync</code> as a cmake build dir. Change into <code>buildcsync</code> and call cmake like this:</p>
<p><code>cmake -DCMAKE_BUILD_TYPE="Debug" ../csync</code></p>
<p>and watch its output. You probably have to fulfill some dependencies, make sure to install all the needed devel packages. You will need log4c, iniparser, sqlite3 and for the modules libssh, libsmbclient and neon for the ownCloud module. Once cmake succeeds, call make to build it. So far relaxed for Linux.</p>
<p>To build csync for Windows, there are a couple of possibilities. The one I chose was to cross compile with mingw under <a href="http://www.opensuse.org">openSUSE</a>. That way I can build for all on one devel machine under my prefered system. </p>
<p>For that, I installed the cross compile and mingw32 packages from the <a href="http://build.opensuse.org">openSUSE Build Service</a>, which really demonstrates power here. I used the <a href="http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_12.1">mingw repository</a>. Kudos at this point to Dominik Schmidt, a <a href="http://www.tomahawk-player.org/splash">Tomahawk developer</a>, who helped me a lot to set all up and to all people who work in OBS to maintain the mingw repo. </p>
<p>Basically the cross compiler and libs (eg. packages <code>mingw32-cross-gcc</code>, <code>mingw32-gcc-c++</code> and <code>mingw32-cross-cpp</code>) and the dependencies for the software to build have to be installed from the mingw repo. An action item is left to dig which in detail.</p>
<p>After installation you should have some mingw32-tools such as <code>mingw32-cmake</code> which should be used to build for win.</p>
<p>Now create a directory win and within that again buildcsync. In there, start <code>cmake</code>  with </p>
<p><code>mingw32-cmake -DCMAKE_BUILD_TYPE="Debug" -DWITH_LOG4C=OFF ../../csync</code></p>
<p>That should do it. I did not find log4c for Win32, so I disabled it in the cmake call.<br />
Now build it with <code>mingw32-make</code> and see if it creates a dll in the src subdir and csync.exe in the client dir.</p>
<p><strong>Building mirall</strong></p>
<p>For <a href="http://gitorious.org/owncloud/mirall" title="mirall">mirall</a>, it works similar. Mirall uses Qt and is C++, so again a lot of packages to install. Make again sure to have the mingw32-qt packages, for example <code>mingw32-libqt4-devel</code> and more. </p>
<p>However, there are two caveats with mirall:</p>
<ul>
<li>the current development state of mirall needs the latest devel version of csync which<br />
we just built. I tweaked the CMakefile that way that if the mirall- and csync and build*<br />
folders are in the same directory, the csync is found by mirall cmake in the parallel dir.<br />
So I do not have to install the devel version of csync in my system.</li>
<li>to build mirall for windows, it must be made sure that cmake finds the mingw32 Qt tools like moc. Since there is also the Linux moc in the system, this can confuse.<br />
Domme pointed me to a script that sets some variables correct values to prevent mixing:<br />
<code><br />
 cat ../docmake.sh<br />
 # %_mingw32_qt4_platform          win32-g++-cross</p>
<p> export QT_BINDIR=/usr/bin<br />
 export BIN_PRE=i686-w64-mingw32</p>
<p> /usr/bin/mingw32-cmake \<br />
        -DCMAKE_BUILD_TYPE="Debug" \<br />
        -DQMAKESPEC=win32-g++-cross \<br />
        -DQT_MKSPECS_DIR:PATH=/usr/i686-w64-mingw32/sys-root/mingw/share/qt4/mkspecs \<br />
        -DQT_QT_INCLUDE_DIR=/usr/i686-w64-mingw32/sys-root/mingw/include \<br />
        -DQT_PLUGINS_DIR=/usr/i686-w64-mingw32/sys-root/mingw/lib/qt4/plugins \<br />
        -DQT_QMAKE_EXECUTABLE=${QT_BINDIR}/${BIN_PRE}-qmake \<br />
        -DQT_MOC_EXECUTABLE=${QT_BINDIR}/${BIN_PRE}-moc \<br />
        -DQT_RCC_EXECUTABLE=${QT_BINDIR}/${BIN_PRE}-rcc \<br />
        -DQT_UIC_EXECUTABLE=${QT_BINDIR}/${BIN_PRE}-uic \<br />
        -DQT_DBUSXML2CPP_EXECUTABLE=${QT_BINDIR}/qdbusxml2cpp \<br />
        -DQT_DBUSCPP2XML_EXECUTABLE=${QT_BINDIR}/qdbuscpp2xml ../../mirall<br />
</code>
</li>
</ul>
<p>With that setup I can build both the Linux and Windows version quite easily. There is still a lot to be solved, such as automatted packaging and such. CMake as usual is a great help.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dragotin.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dragotin.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dragotin.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dragotin.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dragotin.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dragotin.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dragotin.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dragotin.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dragotin.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dragotin.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dragotin.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dragotin.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dragotin.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dragotin.wordpress.com/29/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dragotin.wordpress.com&#038;blog=31325229&#038;post=29&#038;subd=dragotin&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dragotin.wordpress.com/2012/03/22/csync-and-mirall-development-setup/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e1cbb82e662e028daa3ad707d716ef1c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dragotin</media:title>
		</media:content>

		<media:content url="http://dragotin.files.wordpress.com/2012/03/kbagger_part.png?w=92" medium="image">
			<media:title type="html">bagger</media:title>
		</media:content>

		<media:content url="http://dragotin.files.wordpress.com/2012/03/buildoc_dirs.png" medium="image">
			<media:title type="html">Build directories</media:title>
		</media:content>
	</item>
		<item>
		<title>On the road&#8230;</title>
		<link>http://dragotin.wordpress.com/2012/03/16/on-the-road/</link>
		<comments>http://dragotin.wordpress.com/2012/03/16/on-the-road/#comments</comments>
		<pubDate>Fri, 16 Mar 2012 15:17:58 +0000</pubDate>
		<dc:creator>dragotin</dc:creator>
				<category><![CDATA[ownCloud]]></category>
		<category><![CDATA[CeBIT]]></category>
		<category><![CDATA[Chemnitz]]></category>
		<category><![CDATA[csync]]></category>
		<category><![CDATA[owncloud]]></category>
		<category><![CDATA[win32]]></category>

		<guid isPermaLink="false">http://dragotin.wordpress.com/?p=22</guid>
		<description><![CDATA[Busy times currently as we&#8217;re heading to releases of ownCloud. The syncing client I am working on plays a role for that and thus I was doing a lot of work on csync upstream and mirall to get that going. Meanwhile I succeeded to get mirall running under Win32, it was quite an experience for [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dragotin.wordpress.com&#038;blog=31325229&#038;post=22&#038;subd=dragotin&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Busy times currently as we&#8217;re heading to releases of <a href="http://www.owncloud.org">ownCloud</a>. The syncing client I am working on plays a role for that and thus I was doing a lot of work on csync upstream and mirall to get that going. Meanwhile I succeeded to get mirall running under Win32, it was quite an experience for me digging through the mud of various compilers and environments and the different understandings of C standards, especially since csync is plain C and never run on Win32 before.</p>
<p>Last week I have been on CeBIT for a day, which is a huge and busy event. We had a nice preview running there with syncing between the web client and the desktop clients on Windows and Linux, as well as on an Android device. That already worked quite ok, nevertheless I got quite some bug reports since then. And I still have to work with csync upstream to get patches in there before we&#8217;re ready for a public beta.</p>
<p>This weekend I will be at the <a href="http://chemnitzer.linux-tage.de/2012/">Chemnitzer Linuxtage</a> together with friends from the <a href="http://www.opensuse.org">openSUSE</a> project. I will show some ownCloud syncing there as well, so if you like show up at the openSUSE booth for a demo and a chat <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dragotin.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dragotin.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dragotin.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dragotin.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dragotin.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dragotin.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dragotin.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dragotin.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dragotin.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dragotin.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dragotin.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dragotin.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dragotin.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dragotin.wordpress.com/22/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dragotin.wordpress.com&#038;blog=31325229&#038;post=22&#038;subd=dragotin&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dragotin.wordpress.com/2012/03/16/on-the-road/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e1cbb82e662e028daa3ad707d716ef1c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dragotin</media:title>
		</media:content>
	</item>
		<item>
		<title>Status ownCloud Desktop Syncing</title>
		<link>http://dragotin.wordpress.com/2012/02/17/status-owncloud-desktop-syncing/</link>
		<comments>http://dragotin.wordpress.com/2012/02/17/status-owncloud-desktop-syncing/#comments</comments>
		<pubDate>Fri, 17 Feb 2012 16:24:26 +0000</pubDate>
		<dc:creator>dragotin</dc:creator>
				<category><![CDATA[ownCloud]]></category>
		<category><![CDATA[csync]]></category>
		<category><![CDATA[mirall]]></category>
		<category><![CDATA[owncloud]]></category>
		<category><![CDATA[status]]></category>

		<guid isPermaLink="false">http://dragotin.wordpress.com/?p=11</guid>
		<description><![CDATA[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 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dragotin.wordpress.com&#038;blog=31325229&#038;post=11&#038;subd=dragotin&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It has been a busy week where I was working on the ownCloud Desktop sync client. As described in my <a title="last post" href="http://kfreitag.tumblr.com/post/17319346374/desktop-syncing-with-owncloud" target="_blank">last post</a> this will be based on a <a title="csync homepage" href="http://www.csync.org/" target="_blank">csync</a> module to handle <a title="ownCloud homepage" href="http://www.owncloud.org" target="_blank">ownCloud</a> as well as mirall, a Qt based desktop client to sync.</p>
<p>That involved basically three things: A csync module, a patch in ownCloud and work on mirall.</p>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<p>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 <a title="Klaas' work repo mirall" href="https://github.com/dragotin/mirall/commits/master" target="_blank">work repository</a> but I promise to move it to the ownCloud repo on gitorious soon.</p>
<p>So far for now, if you have suggestions for me I&#8217;d love to hear them.  Thanks <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>[1] <a title="Klaas' WIP branch csync" href="http://git.csync.org/users/freitag/csync.git/log/?h=dav" target="_blank">Klaas&#8217; WIP branch csync</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dragotin.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dragotin.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dragotin.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dragotin.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dragotin.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dragotin.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dragotin.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dragotin.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dragotin.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dragotin.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dragotin.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dragotin.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dragotin.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dragotin.wordpress.com/11/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dragotin.wordpress.com&#038;blog=31325229&#038;post=11&#038;subd=dragotin&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dragotin.wordpress.com/2012/02/17/status-owncloud-desktop-syncing/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e1cbb82e662e028daa3ad707d716ef1c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dragotin</media:title>
		</media:content>
	</item>
	</channel>
</rss>
