2019-08-15 just compile. 
diff -x '*.swp' -x '.git*' -x '*.orig' -x '*.rej' -Naur 10.19-0/FreeFileSync/Source/ui/small_dlgs.cpp 10.19-1/FreeFileSync/Source/ui/small_dlgs.cpp
--- 10.3-0/FreeFileSync/Source/ui/small_dlgs.cpp	2019-12-27 07:56:06.714625467 -0500
+++ 10.19-1/FreeFileSync/Source/ui/small_dlgs.cpp	2019-12-27 08:41:43.498308243 -0500
@@ -1546,7 +1546,7 @@
     //setMainInstructionFont(*m_staticTextMain);
 
     m_bitmapActivation->SetBitmap(getResourceImage(L"internet"));
-    m_textCtrlOfflineActivationKey->ForceUpper();
+    //m_textCtrlOfflineActivationKey->ForceUpper();
 
     m_textCtrlLastError           ->ChangeValue(lastErrorMsg);
     m_textCtrlManualActivationUrl ->ChangeValue(manualActivationUrl);
diff -Naur -x '*.orig' -x '*.rej' 10.3-0/wx+/grid.cpp 10.3-2/wx+/grid.cpp
--- 10.3-0/wx+/grid.cpp	2018-08-07 05:03:34.000000000 -0400
+++ 10.3-2/wx+/grid.cpp	2018-08-08 19:24:56.849445102 -0400
@@ -1176,7 +1176,9 @@
             {
                 if (overlapPix != 0)
                 {
-                    const double scrollSpeed = wnd_.ToDIP(overlapPix) * mouseDragSpeedIncScrollU; //unit: [scroll units / sec]
+                    // Fedora 28 does not have wxGTK 3.1.1 yet. This probably breaks HiDPI usage
+                    //const double scrollSpeed = wnd_.ToDIP(overlapPix) * mouseDragSpeedIncScrollU; //unit: [scroll units / sec]
+                    const double scrollSpeed = overlapPix * mouseDragSpeedIncScrollU; //unit: [scroll units / sec]
                     toScroll += scrollSpeed * deltaSecs;
                 }
                 else
diff -Naur 10.13-0/FreeFileSync/Source/base/ffs_paths.cpp 10.13-1/FreeFileSync/Source/base/ffs_paths.cpp
--- 10.13-0/FreeFileSync/Source/base/ffs_paths.cpp	2019-06-14 20:23:07.615661499 -0400
+++ 10.18-1/FreeFileSync/Source/base/ffs_paths.cpp	2019-11-20 08:55:38.553446634 -0500
@@ -80,8 +80,8 @@
 
         //OS standard path (XDG layout): ~/.config/FreeFileSync
         //wxBug: wxStandardPaths::GetUserDataDir() does not honor FileLayout_XDG flag
-        wxStandardPaths::Get().SetFileLayout(wxStandardPaths::FileLayout_XDG);
-        const Zstring cfgFolderPath = appendSeparator(utfTo<Zstring>(wxStandardPaths::Get().GetUserConfigDir())) + "FreeFileSync";
+        // Many distros do not have wxGTK 3.1.1 which is the dev branch.
+        const Zstring cfgFolderPath = appendSeparator(utfTo<Zstring>(wxStandardPaths::Get().GetUserConfigDir())) + appendSeparator(utfTo<Zstring>(".config")) + "FreeFileSync";
 
         try //create the config folder if not existing + create "Logs" subfolder while we're at it
         {
diff --git a/FreeFileSync/Source/ui/command_box.cpp b/FreeFileSync/Source/ui/command_box.cpp
index 6e769bb..ce6110b 100644
--- a/FreeFileSync/Source/ui/command_box.cpp
+++ b/FreeFileSync/Source/ui/command_box.cpp
@@ -130,7 +130,9 @@ void CommandBox::setValueAndUpdateList(const wxString& value)

     //this->Clear(); -> NO! emits yet another wxEVT_COMMAND_TEXT_UPDATED!!!
     wxItemContainer::Clear(); //suffices to clear the selection items only!
-    this->Append(items);
+    for (const wxString& item : items)
+        this->Append(item);
+

     //this->SetSelection(wxNOT_FOUND); //don't select anything
     ChangeValue(value); //preserve main text!
diff --git a/FreeFileSync/Source/ui/folder_history_box.cpp b/FreeFileSync/Source/ui/folder_history_box.cpp
index 2b824b1..a17ea2f 100644
--- a/FreeFileSync/Source/ui/folder_history_box.cpp
+++ b/FreeFileSync/Source/ui/folder_history_box.cpp
@@ -90,7 +90,8 @@ void FolderHistoryBox::setValueAndUpdateList(const wxString& folderPathPhrase)

     //this->Clear(); -> NO! emits yet another wxEVT_COMMAND_TEXT_UPDATED!!!
     wxItemContainer::Clear(); //suffices to clear the selection items only!
-    this->Append(dirList);
+    for (const wxString& dir : dirList)
+        this->Append(dir);

     //this->SetSelection(wxNOT_FOUND); //don't select anything
     ChangeValue(folderPathPhrase); //preserve main text!