Author: bgstack15
Source: Original research
Last-Modified: 2026-03-29
Last-Version: 14.9
Message: Main patch to compile on Devuan. Updated with some improvements from bastif (Fab Stz)
--- a/FreeFileSync/Source/ffs_paths.cpp
+++ b/FreeFileSync/Source/ffs_paths.cpp
@@ -53,7 +53,7 @@ Zstring fff::getInstallDirPath()
 
 Zstring fff::getResourceDirPath()
 {
-    return appendPath(getProcessParentFolderPath(), Zstr("Resources"));
+    return Zstr("/usr/share/freefilesync/");
 }
 
 
--- a/FreeFileSync/Source/Makefile
+++ b/FreeFileSync/Source/Makefile
@@ -1,11 +1,11 @@
 CXX ?= g++
-exeName = FreeFileSync_$(shell arch)
+exeName = FreeFileSync
 
 CXXFLAGS += -std=c++23 -pipe -DWXINTL_NO_GETTEXT_MACRO -I../.. -I../../zenXml -include "zen/i18n.h" \
            -Wall -Wfatal-errors -Wmissing-include-dirs -Wswitch-enum -Wcast-align -Wnon-virtual-dtor -Wno-unused-function -Wshadow -Wno-maybe-uninitialized \
-           -O3 -DNDEBUG -pthread
+           -DNDEBUG -pthread
 
-LDFLAGS += -s -pthread
+LDFLAGS += -pthread
 
 
 CXXFLAGS += `wx-config --cxxflags --debug=no`
@@ -34,6 +34,12 @@ CXXFLAGS += `pkg-config --cflags libseli
 LDFLAGS  += `pkg-config --libs libselinux`
 endif
 
+ifeq ($(DPKG_VENDOR),)
+#DPKG_VENDOR = $(shell dpkg-vendor --query vendor)
+DPKG_VENDOR = Devuan
+CPPFLAGS += -DAPP_NAME_SUFFIX='L" for ${DPKG_VENDOR}"'
+endif
+
 cppFiles=
 cppFiles+=application.cpp
 cppFiles+=base_tools.cpp
@@ -131,7 +137,7 @@ all: ../Build/Bin/$(exeName)
 
 $(tmpPath)/ffs/src/%.o : %
 	mkdir -p $(dir $@)
-	$(CXX) $(CXXFLAGS) -c $< -o $@
+	$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@
 
 clean:
 	rm -rf $(tmpPath)
--- a/FreeFileSync/Source/ui/small_dlgs.cpp
+++ b/FreeFileSync/Source/ui/small_dlgs.cpp
@@ -86,6 +86,8 @@ AboutDlg::AboutDlg(wxWindow* parent) : A
     build += LTR_MARK; //fix Arabic
     build += utfTo<wxString>(cpuArchName);
 
+    build += APP_NAME_SUFFIX;
+
     build += SPACED_BULLET;
     build += utfTo<wxString>(formatTime(formatDateTag, getCompileTime()));
 
@@ -136,9 +138,9 @@ AboutDlg::AboutDlg(wxWindow* parent) : A
 
     wxImage::AddHandler(new wxJPEGHandler /*ownership passed*/); //activate support for .jpg files
 
-    wxImage animalImg(utfTo<wxString>(appendPath(getResourceDirPath(), Zstr("Animal.dat"))), wxBITMAP_TYPE_JPEG);
-    convertToVanillaImage(animalImg);
-    assert(animalImg.IsOk());
+    //wxImage animalImg(utfTo<wxString>(appendPath(getResourceDirPath(), Zstr("Animal.dat"))), wxBITMAP_TYPE_JPEG);
+    //convertToVanillaImage(animalImg);
+    //assert(animalImg.IsOk());
 
     //--------------------------------------------------------------------------
     //have animal + text match *final* dialog width
@@ -153,7 +155,6 @@ AboutDlg::AboutDlg(wxWindow* parent) : A
         const int imageWidth = (m_panelDonate->GetSize().GetWidth() - 5 - 5 - 5 /* grey border*/) / 2;
         const int textWidth  =  m_panelDonate->GetSize().GetWidth() - 5 - 5 - 5 - imageWidth;
 
-        setImage(*m_bitmapAnimalSmall, shrinkImage(animalImg, wxsizeToScreen(imageWidth), -1 /*maxHeight*/));
 
         m_staticTextDonate->Show();
         m_staticTextDonate->Wrap(textWidth - 10 /*left gap*/); //wrap *after* changing font size
--- a/FreeFileSync/Source/RealTimeSync/Makefile
+++ b/FreeFileSync/Source/RealTimeSync/Makefile
@@ -1,11 +1,11 @@
 CXX ?= g++
-exeName = RealTimeSync_$(shell arch)
+exeName = RealTimeSync
 
 CXXFLAGS += -std=c++23 -pipe -DWXINTL_NO_GETTEXT_MACRO -I../../.. -I../../../zenXml -include "zen/i18n.h" \
            -Wall -Wfatal-errors -Wmissing-include-dirs -Wswitch-enum -Wcast-align -Wnon-virtual-dtor -Wno-unused-function -Wshadow -Wno-maybe-uninitialized \
-           -O3 -DNDEBUG -pthread
+           -DNDEBUG -pthread
 
-LDFLAGS += -s -pthread
+LDFLAGS += -pthread
 
 
 CXXFLAGS += `wx-config --cxxflags --debug=no`
@@ -64,7 +64,7 @@ all: ../../Build/Bin/$(exeName)
 
 $(tmpPath)/ffs/src/rts/%.o : %
 	mkdir -p $(dir $@)
-	$(CXX) $(CXXFLAGS) -c $< -o $@
+	$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@
 
 clean:
 	rm -rf $(tmpPath)
