[LINUX] 11.4 fails to build

Discuss new features and functions
Posts: 8
Joined: 10 Feb 2020

jooch

Hi,

I'm trying to build FFS 11.4 on Arch Linux, however i get the following error when compiling:
ui/folder_selector.cpp: In member function 'void fff::FolderSelector::onSelectFolder(wxCommandEvent&)':
ui/folder_selector.cpp:237:9: error: 'folderSelector' was not declared in this scope; did you mean 'FolderSelector'?
  237 |     if (folderSelector.ShowModal() != wxID_OK)
      |         ^~~~~~~~~~~~~~
      |         FolderSelector
compilation terminated due to -Wfatal-errors.
make: *** [Makefile:123: /ffs11.4/src/FreeFileSync/tmp_ffs/ffs/src/ui/folder_selector.cpp.o] Error 1
make: *** Waiting for unfinished jobs....
In file included from /usr/include/wx-3.0/wx/event.h:32,
                 from ui/gui_status_handler.h:11,
                 from ui/gui_status_handler.cpp:7:
/usr/include/wx-3.0/wx/meta/convertible.h: In instantiation of 'struct wxConvertibleTo<fff::StatusHandlerTemporaryPanel, wxEvtHandler>':
/usr/include/wx-3.0/wx/event.h:388:55:   required from 'class wxEventFunctorMethod<wxEventTypeTag<wxKeyEvent>, fff::StatusHandlerTemporaryPanel, wxKeyEvent, fff::StatusHandlerTemporaryPanel>'
/usr/include/wx-3.0/wx/event.h:3607:15:   required from 'void wxEvtHandler::Bind(const EventTag&, void (Class::*)(EventArg&), EventHandler*, int, int, wxObject*) [with EventTag = wxEventTypeTag<wxKeyEvent>; Class = fff::StatusHandlerTemporaryPanel; EventArg = wxKeyEvent; EventHandler = fff::StatusHandlerTemporaryPanel]'
ui/gui_status_handler.cpp:46:116:   required from here
/usr/include/wx-3.0/wx/meta/convertible.h:31:58: error: 'wxEvtHandler' is an inaccessible base of 'fff::StatusHandlerTemporaryPanel'
   31 |             sizeof(wxConvertibleTo_SizeHelper<D,B>::Match(static_cast<D*>(NULL)))
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated due to -Wfatal-errors.
make: *** [Makefile:122: /ffs11.4/src/FreeFileSync/tmp_ffs/ffs/src/ui/gui_status_handler.cpp.o] Error 1
==> ERROR: A failure occurred in build().
    Aborting...
Wx: 3.0.5.1
gcc: 10.2.0
cmake: 3.19.2

Any suggestions?
Posts: 306
Joined: 7 Jan 2018

bgstack15

I am surprised that even ArchLinux does not include whatever version of wxWidgets that Zenju uses. But then again, in this last release (11.4), he started using features I could not even find in the Internet documentation of wxWidgets.
Check out the patches that I use, including, particularly, revert_zenju_aggresive_upstreamisms.
Posts: 8
Joined: 10 Feb 2020

jooch

I am surprised that even ArchLinux does not include whatever version of wxWidgets that Zenju uses. But then again, in this last release (11.4), he started using features I could not even find in the Internet documentation of wxWidgets.
Check out the patches that I use, including, particularly, revert_zenju_aggresive_upstreamisms. bgstack15, 21 Dec 2020, 01:47
Glad to see I'm not the only one struggling with the aggressive upstreams (have you counted the number of times he commented fuck? He might even surpass Lewis Black :D )
Arch uses whatever libraries are marked as stable, the version Zenju is using (3.1.4) is not marked as stable yet and besides that the Wx team are months behind schedule. My best guess would be that it's a windows dev thing, where one just supplies the binary as end product and doesn't care about the build environment. Or maybe he's also member of the Wx dev team :P

In any case, those are some really nice pointers you supplied with that patch file. That is definitely going to help. Maybe I'll just try and build 11.1 instead, all hell broke loose with that one!
Posts: 8
Joined: 10 Feb 2020

jooch

Interesting, your patches were almost the same as mine, but i used sed for most of the patchwork and that caused some trouble. Fixed now, here's how mine looks:
https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=freefilesync

Also, i managed to fix some theme issues:
https://aur.archlinux.org/cgit/aur.git/tree/theme_fixes.patch?h=freefilesync
Posts: 306
Joined: 7 Jan 2018

bgstack15

Some of my patches started as the results of some sed commands. So far, all the Debian package examples I've seen store their changes as actual diff files and they don't use bare commands like sed in the build rules if they can help it. Debuild tends to undo its patches to the source (Debian tends to focus on doing a lot of work by hand) and sometimes sed cannot be easily undone.

For Arch packages, do you just totally reset the sources before rebuilding?
Posts: 306
Joined: 7 Jan 2018

bgstack15

Also, nice theming improvements! I guess I use generic themes that have not incurred a need to fix FreeFileSync. Next FreeFileSync version or rebuild (I do that infrequently, between FFS versions), I'll attempt to add your theme patch to my list.