Building Instructions

Get help for specific problems
Posts: 3
Joined: 3 Mar 2011

coderforlife

The source download has no building directions. Since you do not provide an official Fedora release it needs to be manually built. It has no INSTALL, README, or similar document to explain the dependencies and procedures for building from source. Additionally, it does not use cmake or ./configure which would provide some hints at to what dependencies are required. In fact we aren't even told which directory we should be going into to attempt a build. I have to guess that it is FreeFileSync/Source since there is a Makefile there, however that fails pretty quickly due to lack of dependencies (I am guessing).

As a side note, I (and probably everyone not invited) is not allowed to see your current source tree. My guess is that this is on purpose, but it seems strange to enable that for an open source project. I was hoping to find something a little better instructive there.

However, unlike most packages designed for Linux out there it does not use ./configure and has no
Posts: 3
Joined: 3 Mar 2011

coderforlife

For future reference, I was able to compile it using the following:

1. Run `sudo yum install gtk3-devel wxGTK3-devel`
2. Download FreeFileSync_*_Source.zip from downloads (where * is version number)
3. Download zenXml_*.zip from https://sourceforge.net/projects/zenxml/files/
4. Create a build folder (e.g. ffs-build)
5. Unzip FreeFileSync_*_Source.zip to the build folder
6. Create the folder zenXml in the build folder
7. Unzip zenXml_*.zip to the zenXml folder in the build folder
8. Edit FreeFileSync/Source/Makefile; replace gtk+-2.0 with gtk+-3.0 (2 places)
9. Edit zen/file_handling.cpp; replace SYMLINK_FOLLOW with ProcSymlink::FOLLOW (3 places)
10. Run `make BUILD=Launchpad` in FreeFileSync/Source
11. Run `sudo make install` in FreeFileSync/Source

Step 8 is needed since this code requires wx >=2.9 but on Fedora 20 GTK-2.0 only works with 2.8.12. GTK-3.0 works with wx 3.0 though.

Step 9 is needed because of copy-paste errors in the code. It looks like that code is only run when SELinux is detected, so it is possible that it was just never caught because it was never compiled on an SE-Linux-enabled system.

Developers: please at least correct the bug in step 9.
Posts: 3
Joined: 3 Mar 2011

coderforlife

Additionally it seems that somewhere in the combination of Fedora 20, wx 3.0, and Cinnamon desktop, the objects returned by wxSystemSettings::GetColour work when given to drawing functions but the red, green, and blue values cannot be queried (they always just return 0). I had to adjust custom_grid.cpp alternate row background colors to hardcode my wxSYS_COLOUR_WINDOW value because otherwise the rows just showed up nearly black. Additionally, adjusting lightness with the built-in ChangeLightness doesn't work either.

There are a few other display anomalies, probably more wx bugs (I see that the source code is littered with comments about wx bugs). Most of them deal with font sizes (usually text is drawn much larger than expected, for example the buttons on the Comparison settings page are HUGE and cannot be read, the test under the icons when clicking Synchronize without first doing a Compare are wrapped funny). Additionally, the little header bar for "Overview" and "Configuration" is essentially black and unreadable. The graphs while synchronizing are very strangely rendered, changing position frequently or not even drawing.