Author: B Stack Source: Original research Date: 2020-03-18 Message: Main patch to compile on Devuan using GTK3. BROKEN for FreeFileSync 10.21! This reintroduces the gtk-3 usage, because Debian/Devuan stopped packaging libwxgtk3.0-dev (which used gtk2) and only does libwxgtk3.0-gtk3-dev. However, by reintroducing the gtk3, it brings back the old gtk3 instability from my previous packaging effort: https://freefilesync.org/forum/viewtopic.php?t=4918. /mnt/public/packages/old/freefilesync/freefilesync-9.7-1.master.tgz. Upstream never replied, but did note in the source that gtk3 is inherently unstable. diff -x '*.swp' -x '.git*' -x '*.orig' -x '*.rej' -Naur 10.18-0/FreeFileSync/Source/Makefile 10.18-1/FreeFileSync/Source/Makefile --- 10.11-0/FreeFileSync/Source/Makefile 2019-04-12 08:05:57.000000000 -0400 +++ 10.18-1/FreeFileSync/Source/Makefile 2019-11-21 09:42:57.408243242 -0500 @@ -16,9 +16,10 @@ cxxFlags += `pkg-config --cflags libssh2` linkFlags += `pkg-config --libs libssh2` -cxxFlags += `pkg-config --cflags gtk+-2.0` +cxxFlags += `pkg-config --cflags gtk+-3.0` +linkFlags += `pkg-config --libs gtk+-3.0` #treat as system headers so that warnings are hidden: -cxxFlags += -isystem/usr/include/gtk-2.0 +cxxFlags += -isystem/usr/include/gtk-3.0 #support for SELinux (optional) SELINUX_EXISTING=$(shell pkg-config --exists libselinux && echo YES) diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/FreeFileSync/Source/RealTimeSync/Makefile 10.24-1/FreeFileSync/Source/RealTimeSync/Makefile --- 10.24-0/FreeFileSync/Source/RealTimeSync/Makefile 2020-05-17 18:30:59.289498093 -0400 +++ 10.24-1/FreeFileSync/Source/RealTimeSync/Makefile 2020-05-17 19:32:59.791394275 -0400 @@ -7,9 +7,10 @@ linkFlags += -s `wx-config --libs std, aui --debug=no` -lz -pthread #Gtk - support "no button border" -cxxFlags += `pkg-config --cflags gtk+-2.0` +cxxFlags += `pkg-config --cflags gtk+-3.0` +linkFlags += `pkg-config --libs gtk+-3.0` #treat as system headers so that warnings are hidden: -cxxFlags += -isystem/usr/include/gtk-2.0 +cxxFlags += -isystem/usr/include/gtk-3.0 cppFiles= cppFiles+=application.cpp diff -x '*.swp' -x '.git*' -x '*.orig' -x '*.rej' -Naur 10.18-0/wx+/dc.h 10.18-1/wx+/dc.h --- 10.18-0/wx+/dc.h 2019-11-21 08:24:23.967769384 -0500 +++ 10.18-1/wx+/dc.h 2019-11-21 09:42:12.779786504 -0500 @@ -54,7 +54,7 @@ #ifdef wxHAVE_DPI_INDEPENDENT_PIXELS //pulled from wx/window.h: https://github.com/wxWidgets/wxWidgets/blob/master/include/wx/window.h#L2029 return d; //e.g. macOS, GTK3 #else //https://github.com/wxWidgets/wxWidgets/blob/master/src/common/wincmn.cpp#L2865 - static_assert(GTK_MAJOR_VERSION == 2); + static_assert(GTK_MAJOR_VERSION == 3); //GTK2 doesn't properly support high DPI: https://freefilesync.org/forum/viewtopic.php?t=6114 //=> requires general fix at wxWidgets-level assert(wxTheApp); //only call after wxWidgets was initalized!