From 9ee86228fb287d93b79c83bd684614eb988cd8f2 Mon Sep 17 00:00:00 2001 From: B Stack Date: Tue, 7 Jun 2022 15:38:20 -0400 Subject: ffs: major rewrite of spec for el8 and fc --- freefilesync/ffs_distro_el6_el7.patch | 137 ++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 freefilesync/ffs_distro_el6_el7.patch (limited to 'freefilesync/ffs_distro_el6_el7.patch') diff --git a/freefilesync/ffs_distro_el6_el7.patch b/freefilesync/ffs_distro_el6_el7.patch new file mode 100644 index 0000000..ad9ae15 --- /dev/null +++ b/freefilesync/ffs_distro_el6_el7.patch @@ -0,0 +1,137 @@ +# 2020-07-22 starting at FreeFileSync 10.25 in 2020-06, we need g++-10 to compile but all EL targets (6, 7, and 8) do not have gcc 10 so this patch is not usable as is. But it should get the gtk3 fix if any CentOS targets get gcc-10. +The cstddef discovery is from https://stackoverflow.com/questions/52567517/freefilesync-c-error-byte-is-not-a-member-of-std +Some changes just make the application work better in an installed setting (e.g., the hard-coded resouce path). +Tricking the wxWidgets ABI version comes from https://stackoverflow.com/questions/45123664/wxwidgets-runtime-error-mismatch-version/47822976#47822976 +FreeFileSync 10.11 updated the default compile flags to -std=c++2a, but this fails on gcc 4.8.5 on el7. Reverting to -std=c++17 allows the application to compile. +diff -Naur 10.13-0/FreeFileSync/Source/ffs_paths.cpp 10.13-1/FreeFileSync/Source/ffs_paths.cpp +--- 10.13-0/FreeFileSync/Source/ffs_paths.cpp 2019-06-14 20:23:07.615661499 -0400 ++++ 10.13-1/FreeFileSync/Source/ffs_paths.cpp 2019-06-14 20:36:28.178274292 -0400 +@@ -55,7 +55,8 @@ + + Zstring fff::getResourceDirPf() + { +- return getProcessParentFolderPath() + FILE_NAME_SEPARATOR + Zstr("Resources") + FILE_NAME_SEPARATOR; ++ // For Fedora, EL and Devuan, install to /usr/share/freefilesync specificly ++ return Zstr("/usr/share/freefilesync/"); + } + + +diff -Naur -x '*.orig' -x '*.rej' -x '*.swp' 10.11-0/FreeFileSync/Source/Makefile 10.11-1/FreeFileSync/Source/Makefile +--- 10.11-0/FreeFileSync/Source/Makefile 2019-04-12 07:59:45.042147902 -0400 ++++ 10.18-1/FreeFileSync/Source/Makefile 2019-11-21 20:59:25.548277619 -0500 +@@ -1,10 +1,10 @@ +-exeName = FreeFileSync_$(shell arch) ++exeName = FreeFileSync + +-cxxFlags = -std=c++2a -pipe -DWXINTL_NO_GETTEXT_MACRO -I../.. -I../../zenXml -include "zen/i18n.h" -include "zen/warn_static.h" \ ++cxxFlags = -std=c++17 -pipe -DWXINTL_NO_GETTEXT_MACRO -I../.. -I../../zenXml -include "zen/i18n.h" -include "zen/warn_static.h" \ + -Wall -Wfatal-errors -Wmissing-include-dirs -Wswitch-enum -Wcast-align -Wshadow -Wnon-virtual-dtor \ +- -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread ++ -O3 -DNDEBUG -fPIC `wx-config --version=3.0 --cxxflags --debug=no` -pthread + +-linkFlags = -s -no-pie `wx-config --libs std, aui --debug=no` -pthread ++linkFlags = -s -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-z,relro -no-pie `wx-config --version=3.0 --libs std, aui --debug=no | sed -r -e 's/-[^[:space:]]+web[^[:space:]]+//;'` -lz -pthread + + + cxxFlags += `pkg-config --cflags openssl` +@@ -17,6 +17,7 @@ + linkFlags += `pkg-config --libs libssh2` + + cxxFlags += `pkg-config --cflags gtk+-2.0` ++linkFlags += `pkg-config --libs gtk+-2.0` + #treat as system headers so that warnings are hidden: + cxxFlags += -isystem/usr/include/gtk-2.0 + +diff -Naur -x '*.orig' -x '*.rej' -x '*.swp' 10.11-0/FreeFileSync/Source/RealTimeSync/application.h 10.11-1/FreeFileSync/Source/RealTimeSync/application.h +--- 10.11-0/FreeFileSync/Source/RealTimeSync/application.h 2019-04-12 07:59:45.035147580 -0400 ++++ 10.11-1/FreeFileSync/Source/RealTimeSync/application.h 2019-04-12 10:19:57.227913415 -0400 +@@ -7,6 +7,8 @@ + #ifndef APPLICATION_H_18506781708176342677 + #define APPLICATION_H_18506781708176342677 + ++#define __GXX_ABI_VERSION 1002 ++ + #include + + +diff -Naur -x '*.orig' -x '*.rej' -x '*.swp' 10.11-0/FreeFileSync/Source/RealTimeSync/Makefile 10.11-1/FreeFileSync/Source/RealTimeSync/Makefile +--- 10.11-0/FreeFileSync/Source/RealTimeSync/Makefile 2019-04-12 07:59:45.008146336 -0400 ++++ 10.18-1/FreeFileSync/Source/RealTimeSync/Makefile 2019-11-22 10:14:04.326175203 -0500 +@@ -1,13 +1,14 @@ +-exeName = RealTimeSync_$(shell arch) ++exeName = RealTimeSync + +-cxxFlags = -std=c++2a -pipe -DWXINTL_NO_GETTEXT_MACRO -I../../.. -I../../../zenXml -include "zen/i18n.h" -include "zen/warn_static.h" \ ++cxxFlags = -std=c++17 -pipe -DWXINTL_NO_GETTEXT_MACRO -I../../.. -I../../../zenXml -include "zen/i18n.h" -include "zen/warn_static.h" \ + -Wall -Wfatal-errors -Wmissing-include-dirs -Wswitch-enum -Wcast-align -Wshadow -Wnon-virtual-dtor \ +- -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread ++ -O3 -DNDEBUG -fPIC `wx-config --version=3.0 --cxxflags --debug=no` -pthread + +-linkFlags = -s -no-pie `wx-config --libs std, aui --debug=no` -pthread ++linkFlags = -s -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -no-pie `wx-config --version=3.0 --cxxflags --libs std, aui --debug=no | sed -r -e 's/-[^[:space:]]+web[^[:space:]]+//;'` -lz -pthread + + #Gtk - support "no button border" + cxxFlags += `pkg-config --cflags gtk+-2.0` ++linkFlags += `pkg-config --libs gtk+-2.0` + #treat as system headers so that warnings are hidden: + cxxFlags += -isystem/usr/include/gtk-2.0 + +diff -x '*.swp' -x '.git*' -x '*.orig' -x '*.rej' -Naur 10.19-0/FreeFileSync/Source/ui/small_dlgs.cpp 11.12-1/FreeFileSync/Source/ui/small_dlgs.cpp +--- 10.11-0/FreeFileSync/Source/ui/small_dlgs.cpp 2019-12-27 07:56:06.714625467 -0500 ++++ 11.12-1/FreeFileSync/Source/ui/small_dlgs.cpp 2021-07-15 09:03:57.753183052 -0400 +@@ -93,6 +93,8 @@ + build += LTR_MARK; //fix Arabic + build += utfTo(cpuArchName); + ++ build += L" for CentOS"; ++ + build += SPACED_BULLET; + build += utfTo(formatTime(formatDateTag, getCompileTime())); + +diff -Naur -x '*.orig' -x '*.rej' -x '*.swp' 10.11-0/wx+/app_main.h 10.11-1/wx+/app_main.h +--- 10.11-0/wx+/app_main.h 2019-04-12 07:59:44.936143019 -0400 ++++ 10.11-1/wx+/app_main.h 2019-04-12 10:19:57.228913439 -0400 +@@ -7,6 +7,8 @@ + #ifndef APP_MAIN_H_08215601837818347575856 + #define APP_MAIN_H_08215601837818347575856 + ++#define __GXX_ABI_VERSION 1002 ++ + #include + #include + +diff -Naur -x '*.orig' -x '*.rej' -x '*.swp' 10.11-0/zen/ring_buffer.h 10.11-1/zen/ring_buffer.h +--- 10.11-0/zen/ring_buffer.h 2019-04-12 07:59:46.098196548 -0400 ++++ 10.11-1/zen/ring_buffer.h 2019-04-12 10:19:57.228913439 -0400 +@@ -9,6 +9,7 @@ + + #include + #include "scope_guard.h" ++#include + + + namespace zen +diff -Naur -x '*.orig' -x '*.rej' -x '*.swp' 10.11-0/zen/serialize.h 10.19-1/zen/serialize.h +--- 10.11-0/zen/serialize.h 2019-04-12 07:59:46.080195719 -0400 ++++ 10.19-1/zen/serialize.h 2019-12-27 11:35:50.379901321 -0500 +@@ -10,6 +10,7 @@ + #include + #include + #include ++#include + #include "string_base.h" + //keep header clean from specific stream implementations! (e.g.file_io.h)! used by abstract.h! + +Message: For -std=c++17 we do not get to use charconv. It appears it is not actually in use, because the application compiles with this patch. +diff -Naur -x '*.orig' -x '.git*' -x '*.swp' -x '*.rej' 10.18-0/zen/legacy_compiler.cpp 10.18-1/zen/legacy_compiler.cpp +--- 10.18-0/zen/legacy_compiler.cpp 2019-11-21 20:59:02.633016149 -0500 ++++ 10.18-1/zen/legacy_compiler.cpp 2019-11-21 20:59:31.042340308 -0500 +@@ -5,7 +5,7 @@ + // ***************************************************************************** + + #include "legacy_compiler.h" +-#include ++//#include + //1. including this one in string_tools.h blows up VC++: + // "An internal error has occurred in the compiler. (compiler file 'd:\agent\_work\1\s\src\vctools\Compiler\Utc\src\p2\p2symtab.c', line 2618)" + //2. using inside PCH: "fatal error C1076: compiler limit: internal heap limit reached" -- cgit