Hi - is there a post that depicts the steps to build (make, compile, install) free file sync?
I can't find anything here that describes how to do it.
Would you please provide instructions and dependencies on how to do it.
Thanks for your time.
Steve Dupuis
Ottawa, Canada
How do I build from source code bundle
- Posts: 2
- Joined: 23 May 2016
- Posts: 10
- Joined: 17 Aug 2016
Hi,
Somewhat belatedly but in case anyone else is searching, this works for me on Manjaro
Somewhat belatedly but in case anyone else is searching, this works for me on Manjaro
git clone https://aur.archlinux.org/freefilesync.git
cd freefilesync
makepkg
sudo cp pkg/freefilesync/usr/bin/FreeFileSync /usr/bin/
- Posts: 2
- Joined: 31 Oct 2016
Hi,
Obviously the spirit of the GPL is not met concerning the build info.
Well - I was forced to build from source, since I use the really cool tool "FreeFileSync" on my windows machines, and wanted to roll it out to my linux engine based on Open Suse 13.1. Unfortunately, the rpm does not install.
In this posting, I like to share my build experience to get FreeFileSync running from source.
Abstract:
-> I succeeded to build FileSync 8.2 - but failed for the recent 8.6
-> The prerequisites concerning compilers and library dependencies are totally unclear.
What I have found out:
- Compiler - it is neccessary, that the compiler supports "C14" -> Use at least Gcc4.9
- Libraries
"ZEN_XML" (incomplete contained in the FreeFileSync source distro)
gtk - unclear version (-> Reason, why 8.2 and not 8.6)
- Build
- Buildtarget is found in
------------------------------------
C14 compatible compiler - at least Gcc 4.9 is required.
The package can be obtained in the open suse build service for development, since openSUSE 13.1 does not support natively.
For installation hints, refer to unix.stackexchange.com/questions/197584/install-gcc4-9-on-opensuse-13-1
In short use the SUSE repository
And install the "g++-4.9" package.
To use the compiler, you have to call "g++-4.9" directly (instead of g++)
-> Patch the makefile in "FreeFileSync/Source/makefile" on lines 100 and 103 to use the g++-4.9
Exchange "g++" with "g++-4.9"
------------------------------------------------
Compilerflags for g++-4.9
Since this compiler is syntactically more strict than its predessors, the flag "-fpermissive" has to be added to the variable "CXXFLAGS" line 8/9
-------------------------------------------------------
ZEN::XML Library - another library of the same author.
Download from sourceforge sourceforge.net/projects/zenxml
Obviously it is the version 2.3
Unpack it, and copy the folders next to the folders "zen", "wx+", "FreeFileSync" in the folder of the archive.
In effect, a new directory "zenxml" is created.
-----------------------------------------------
gtk/wxGTK: Well, this is a problem, where I did not find a proper dependency solution.
My openSUSE 13.1 uses a gtk-2.0 but some of the API calls are obviously not supported.
So, essentially the file "FreeFileSync/Source/ui/small_dlgs.cpp" does not compile due to
I commented the line.
------------------------------------------------------------------
Note: In the 8.6, the file "FreeFileSync/Source/ui/main_dlg.cpp" is also not compiling.
-------------------
I would be happy, to get a dependency hint concerning the gtx issues -> "wxGrid", "SetTabBehaviour", "GetTopItem".
bye for now,
DrGuenter
Obviously the spirit of the GPL is not met concerning the build info.
Well - I was forced to build from source, since I use the really cool tool "FreeFileSync" on my windows machines, and wanted to roll it out to my linux engine based on Open Suse 13.1. Unfortunately, the rpm does not install.
In this posting, I like to share my build experience to get FreeFileSync running from source.
Abstract:
-> I succeeded to build FileSync 8.2 - but failed for the recent 8.6
-> The prerequisites concerning compilers and library dependencies are totally unclear.
What I have found out:
- Compiler - it is neccessary, that the compiler supports "C14" -> Use at least Gcc4.9
- Libraries
"ZEN_XML" (incomplete contained in the FreeFileSync source distro)
gtk - unclear version (-> Reason, why 8.2 and not 8.6)
- Build
cd FreeFileSync/Source
make
FreeFileSync/Build/FreeFileSync
C14 compatible compiler - at least Gcc 4.9 is required.
The package can be obtained in the open suse build service for development, since openSUSE 13.1 does not support natively.
For installation hints, refer to unix.stackexchange.com/questions/197584/install-gcc4-9-on-opensuse-13-1
In short use the SUSE repository
download.opensuse.org/repositories/devel:/gcc/openSUSE_13.1/ devel-gcc
To use the compiler, you have to call "g++-4.9" directly (instead of g++)
-> Patch the makefile in "FreeFileSync/Source/makefile" on lines 100 and 103 to use the g++-4.9
Exchange "g++" with "g++-4.9"
../Obj/FFS_GCC_Make_Release/ffs/src/%.o : %.cpp
mkdir -p $(dir $@)
g++-4.9 $(CXXFLAGS) -c $< -o $@
FreeFileSync: $(OBJECT_LIST)
g++-4.9 -o ../Build/$(APPNAME) $(OBJECT_LIST) $(LINKFLAGS)
Compilerflags for g++-4.9
Since this compiler is syntactically more strict than its predessors, the flag "-fpermissive" has to be added to the variable "CXXFLAGS" line 8/9
CXXFLAGS = -std=c++14 -pipe -DWXINTL_NO_GETTEXT_MACRO -I../.. -I../../zenXml -include "zen/i18n.h" -include "zen/warn_static.h" -Wall \
-O3 -DNDEBUG `wx-config --cxxflags --debug=no` -DZEN_LINUX [b]-pthread -fpermissive[/b]
ZEN::XML Library - another library of the same author.
Download from sourceforge sourceforge.net/projects/zenxml
Obviously it is the version 2.3
Unpack it, and copy the folders next to the folders "zen", "wx+", "FreeFileSync" in the folder of the archive.
In effect, a new directory "zenxml" is created.
-----------------------------------------------
gtk/wxGTK: Well, this is a problem, where I did not find a proper dependency solution.
My openSUSE 13.1 uses a gtk-2.0 but some of the API calls are obviously not supported.
So, essentially the file "FreeFileSync/Source/ui/small_dlgs.cpp" does not compile due to
m_gridCustomCommand->SetTabBehaviour(wxGrid::Tab_Leave);
ui/small_dlgs.cpp: In constructor ‘OptionsDlg::OptionsDlg(wxWindow*, xmlAccess::XmlGlobalSettings&)’:
ui/small_dlgs.cpp:797:26: error: ‘class wxGrid’ has no member named ‘SetTabBehaviour’
m_gridCustomCommand->SetTabBehaviour(wxGrid::Tab_Leave);
^
ui/small_dlgs.cpp:797:42: error: ‘Tab_Leave’ is not a member of ‘wxGrid’
m_gridCustomCommand->SetTabBehaviour(wxGrid::Tab_Leave);
I commented the line.
------------------------------------------------------------------
Note: In the 8.6, the file "FreeFileSync/Source/ui/main_dlg.cpp" is also not compiling.
ui/main_dlg.cpp:1046:68: error: ‘class wxListBox’ has no member named ‘GetTopItem’
globalSettings.gui.cfgFileHistFirstItemPos = m_listBoxHistory->GetTopItem();
I would be happy, to get a dependency hint concerning the gtx issues -> "wxGrid", "SetTabBehaviour", "GetTopItem".
bye for now,
DrGuenter
- Posts: 2
- Joined: 31 Oct 2016
Quick update ...
... I've just commented the uncompiling lines, and I succeeded FileSync 8.6 to build and run on openSUSE 13.1.
Cool stuff...
... I've just commented the uncompiling lines, and I succeeded FileSync 8.6 to build and run on openSUSE 13.1.
ui/small_dlgs.cpp:796
// m_gridCustomCommand->SetTabBehaviour(wxGrid::Tab_Leave);
ui/main_dlg.cpp:1046
// globalSettings.gui.cfgFileHistFirstItemPos = m_listBoxHistory->GetTopItem();
Cool stuff...