Compare commits
10 Commits
| Author | SHA256 | Date | |
|---|---|---|---|
| cfa9250a29 | |||
| 7061d1038c | |||
| b0d2c80017 | |||
| daa51e339f | |||
| 8299a41b08 | |||
| c71cd60d44 | |||
| 2fe27a1aa1 | |||
| 3580ec6059 | |||
| 8beb6b3804 | |||
| 389c3bbea6 |
@@ -1,92 +0,0 @@
|
|||||||
Index: FreeFileSync-12.5/FreeFileSync/Source/Makefile
|
|
||||||
===================================================================
|
|
||||||
--- FreeFileSync-12.5.orig/FreeFileSync/Source/Makefile
|
|
||||||
+++ FreeFileSync-12.5/FreeFileSync/Source/Makefile
|
|
||||||
@@ -3,9 +3,9 @@ exeName = FreeFileSync_$(shell arch)
|
|
||||||
|
|
||||||
CXXFLAGS += -std=c++23 -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 -Wnon-virtual-dtor -Wno-unused-function -Wshadow -Wno-maybe-uninitialized \
|
|
||||||
- -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread
|
|
||||||
+ -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread -fpie
|
|
||||||
|
|
||||||
-LDFLAGS += -s -no-pie `wx-config --libs std, aui, richtext --debug=no` -pthread
|
|
||||||
+LDFLAGS += -s `wx-config --libs std, aui, richtext --debug=no` -pthread -lz -pie
|
|
||||||
|
|
||||||
|
|
||||||
CXXFLAGS += `pkg-config --cflags openssl`
|
|
||||||
@@ -17,9 +17,10 @@ LDFLAGS += `pkg-config --libs libcurl`
|
|
||||||
CXXFLAGS += `pkg-config --cflags libssh2`
|
|
||||||
LDFLAGS += `pkg-config --libs libssh2`
|
|
||||||
|
|
||||||
-CXXFLAGS += `pkg-config --cflags gtk+-2.0`
|
|
||||||
+CXXFLAGS += `pkg-config --cflags gtk+-3.0`
|
|
||||||
+LDFLAGS += `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)
|
|
||||||
Index: FreeFileSync-12.5/FreeFileSync/Source/RealTimeSync/Makefile
|
|
||||||
===================================================================
|
|
||||||
--- FreeFileSync-12.5.orig/FreeFileSync/Source/RealTimeSync/Makefile
|
|
||||||
+++ FreeFileSync-12.5/FreeFileSync/Source/RealTimeSync/Makefile
|
|
||||||
@@ -3,14 +3,15 @@ exeName = RealTimeSync_$(shell arch)
|
|
||||||
|
|
||||||
CXXFLAGS += -std=c++23 -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 -Wnon-virtual-dtor -Wno-unused-function -Wshadow -Wno-maybe-uninitialized \
|
|
||||||
- -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread
|
|
||||||
+ -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread -fpie
|
|
||||||
|
|
||||||
-LDFLAGS += -s -no-pie `wx-config --libs std, aui, richtext --debug=no` -pthread
|
|
||||||
+LDFLAGS += -s `wx-config --libs std, aui, richtext --debug=no` -pthread -lz -pie
|
|
||||||
|
|
||||||
#Gtk - support "no button border"
|
|
||||||
-CXXFLAGS += `pkg-config --cflags gtk+-2.0`
|
|
||||||
+CXXFLAGS += `pkg-config --cflags gtk+-3.0`
|
|
||||||
+LDFLAGS += `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
|
|
||||||
Index: FreeFileSync-12.5/libssh2/libssh2_wrap.h
|
|
||||||
===================================================================
|
|
||||||
--- FreeFileSync-12.5.orig/libssh2/libssh2_wrap.h
|
|
||||||
+++ FreeFileSync-12.5/libssh2/libssh2_wrap.h
|
|
||||||
@@ -20,6 +20,22 @@
|
|
||||||
#error libssh2_sftp.h header guard changed
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+// fix some build errors
|
|
||||||
+/* MAX_SFTP_READ_SIZE is how much data is asked for at max in each FXP_READ
|
|
||||||
+ * packets.
|
|
||||||
+ */
|
|
||||||
+#ifndef MAX_SFTP_READ_SIZE
|
|
||||||
+ #define MAX_SFTP_READ_SIZE 30000
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ * MAX_SFTP_OUTGOING_SIZE MUST not be larger than 32500 or so. This is the
|
|
||||||
+ * amount of data sent in each FXP_WRITE packet
|
|
||||||
+ */
|
|
||||||
+#ifndef MAX_SFTP_OUTGOING_SIZE
|
|
||||||
+ #define MAX_SFTP_OUTGOING_SIZE 30000
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
//fix libssh2 64-bit warning mess: https://github.com/libssh2/libssh2/pull/96
|
|
||||||
#undef libssh2_userauth_password
|
|
||||||
inline int libssh2_userauth_password(LIBSSH2_SESSION* session, const std::string& username, const std::string& password)
|
|
||||||
Index: FreeFileSync-12.5/zen/ring_buffer.h
|
|
||||||
===================================================================
|
|
||||||
--- FreeFileSync-12.5.orig/zen/ring_buffer.h
|
|
||||||
+++ FreeFileSync-12.5/zen/ring_buffer.h
|
|
||||||
@@ -8,6 +8,7 @@
|
|
||||||
#define RING_BUFFER_H_01238467085684139453534
|
|
||||||
|
|
||||||
#include <cassert>
|
|
||||||
+#include <cstddef>
|
|
||||||
#include "scope_guard.h"
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
Index: FreeFileSync-13.6/FreeFileSync/Source/ui/gui_generated.cpp
|
Index: FreeFileSync-14.3/FreeFileSync/Source/ui/gui_generated.cpp
|
||||||
===================================================================
|
===================================================================
|
||||||
--- FreeFileSync-13.6.orig/FreeFileSync/Source/ui/gui_generated.cpp
|
--- FreeFileSync-14.3.orig/FreeFileSync/Source/ui/gui_generated.cpp
|
||||||
+++ FreeFileSync-13.6/FreeFileSync/Source/ui/gui_generated.cpp
|
+++ FreeFileSync-14.3/FreeFileSync/Source/ui/gui_generated.cpp
|
||||||
@@ -108,10 +108,10 @@ MainDialogGenerated::MainDialogGenerated
|
@@ -108,10 +108,10 @@ MainDialogGenerated::MainDialogGenerated
|
||||||
m_menuItemHelp = new wxMenuItem( m_menuHelp, wxID_HELP, wxString( _("&View help") ) + wxT('\t') + wxT("F1"), wxEmptyString, wxITEM_NORMAL );
|
m_menuItemHelp = new wxMenuItem( m_menuHelp, wxID_HELP, wxString( _("&View help") ) + wxT('\t') + wxT("F1"), wxEmptyString, wxITEM_NORMAL );
|
||||||
m_menuHelp->Append( m_menuItemHelp );
|
m_menuHelp->Append( m_menuItemHelp );
|
||||||
@@ -15,11 +15,11 @@ Index: FreeFileSync-13.6/FreeFileSync/Source/ui/gui_generated.cpp
|
|||||||
|
|
||||||
m_menuHelp->AppendSeparator();
|
m_menuHelp->AppendSeparator();
|
||||||
|
|
||||||
Index: FreeFileSync-13.6/FreeFileSync/Source/ui/main_dlg.cpp
|
Index: FreeFileSync-14.3/FreeFileSync/Source/ui/main_dlg.cpp
|
||||||
===================================================================
|
===================================================================
|
||||||
--- FreeFileSync-13.6.orig/FreeFileSync/Source/ui/main_dlg.cpp
|
--- FreeFileSync-14.3.orig/FreeFileSync/Source/ui/main_dlg.cpp
|
||||||
+++ FreeFileSync-13.6/FreeFileSync/Source/ui/main_dlg.cpp
|
+++ FreeFileSync-14.3/FreeFileSync/Source/ui/main_dlg.cpp
|
||||||
@@ -1118,7 +1118,7 @@ imgFileManagerSmall_([]
|
@@ -1092,7 +1092,7 @@ imgFileManagerSmall_([]
|
||||||
updateGui();
|
updateGui();
|
||||||
|
|
||||||
//register regular check for update on next idle event
|
//register regular check for update on next idle event
|
||||||
@@ -28,11 +28,11 @@ Index: FreeFileSync-13.6/FreeFileSync/Source/ui/main_dlg.cpp
|
|||||||
|
|
||||||
//asynchronous call to wxWindow::Dimensions(): fix superfluous frame on right and bottom when FFS is started in fullscreen mode
|
//asynchronous call to wxWindow::Dimensions(): fix superfluous frame on right and bottom when FFS is started in fullscreen mode
|
||||||
Bind(wxEVT_IDLE, &MainDialog::onLayoutWindowAsync, this);
|
Bind(wxEVT_IDLE, &MainDialog::onLayoutWindowAsync, this);
|
||||||
Index: FreeFileSync-13.6/FreeFileSync/Source/ui/version_check.cpp
|
Index: FreeFileSync-14.3/FreeFileSync/Source/ui/version_check.cpp
|
||||||
===================================================================
|
===================================================================
|
||||||
--- FreeFileSync-13.6.orig/FreeFileSync/Source/ui/version_check.cpp
|
--- FreeFileSync-14.3.orig/FreeFileSync/Source/ui/version_check.cpp
|
||||||
+++ FreeFileSync-13.6/FreeFileSync/Source/ui/version_check.cpp
|
+++ FreeFileSync-14.3/FreeFileSync/Source/ui/version_check.cpp
|
||||||
@@ -48,7 +48,8 @@ void openBrowserForDownload(wxWindow* pa
|
@@ -49,7 +49,8 @@ void openBrowserForDownload(wxWindow* pa
|
||||||
bool fff::automaticUpdateCheckDue(time_t lastUpdateCheck)
|
bool fff::automaticUpdateCheckDue(time_t lastUpdateCheck)
|
||||||
{
|
{
|
||||||
const time_t now = std::time(nullptr);
|
const time_t now = std::time(nullptr);
|
||||||
|
|||||||
149
FreeFileSync-gui.patch
Normal file
149
FreeFileSync-gui.patch
Normal file
@@ -0,0 +1,149 @@
|
|||||||
|
diff --git a/FreeFileSync/Source/ui/gui_status_handler.cpp b/FreeFileSync/Source/ui/gui_status_handler.cpp
|
||||||
|
--- a/FreeFileSync/Source/ui/gui_status_handler.cpp
|
||||||
|
+++ b/FreeFileSync/Source/ui/gui_status_handler.cpp
|
||||||
|
@@ -70,27 +70,33 @@ void StatusHandlerTemporaryPanel::showStatsPanel()
|
||||||
|
//case wxAUI_DOCK_CENTRE:
|
||||||
|
}
|
||||||
|
|
||||||
|
+ wxAuiPaneInfoArray& paneArray = mainDlg_.auiMgr_.GetAllPanes();
|
||||||
|
const bool statusRowTaken = [&]
|
||||||
|
{
|
||||||
|
- for (wxAuiPaneInfo& paneInfo : mainDlg_.auiMgr_.GetAllPanes())
|
||||||
|
+ for (size_t i = 0; i < paneArray.size(); ++i)
|
||||||
|
+ {
|
||||||
|
+ const wxAuiPaneInfo& paneInfo = paneArray[i];
|
||||||
|
//doesn't matter if paneInfo.IsShown() or not! => move down in either case!
|
||||||
|
if (&paneInfo != &statusPanel &&
|
||||||
|
paneInfo.dock_layer == statusPanel.dock_layer &&
|
||||||
|
paneInfo.dock_direction == statusPanel.dock_direction &&
|
||||||
|
paneInfo.dock_row == statusPanel.dock_row)
|
||||||
|
return true;
|
||||||
|
-
|
||||||
|
+ }
|
||||||
|
return false;
|
||||||
|
}();
|
||||||
|
|
||||||
|
//move all rows that are in the way one step further
|
||||||
|
if (statusRowTaken)
|
||||||
|
- for (wxAuiPaneInfo& paneInfo : mainDlg_.auiMgr_.GetAllPanes())
|
||||||
|
+ for (size_t i = 0; i < paneArray.size(); ++i)
|
||||||
|
+ {
|
||||||
|
+ wxAuiPaneInfo& paneInfo = paneArray[i];
|
||||||
|
if (&paneInfo != &statusPanel &&
|
||||||
|
paneInfo.dock_layer == statusPanel.dock_layer &&
|
||||||
|
paneInfo.dock_direction == statusPanel.dock_direction &&
|
||||||
|
paneInfo.dock_row >= statusPanel.dock_row)
|
||||||
|
++paneInfo.dock_row;
|
||||||
|
+ }
|
||||||
|
//------------------------------------------------------------------
|
||||||
|
|
||||||
|
statusPanel.Show();
|
||||||
|
|
||||||
|
--- a/wx+/darkmode.cpp
|
||||||
|
+++ b/wx+/darkmode.cpp
|
||||||
|
@@ -60,7 +60,7 @@ void zen::colorThemeInit(wxApp& app, Col
|
||||||
|
{
|
||||||
|
assert(!refGlobalColorHook());
|
||||||
|
|
||||||
|
- globalDefaultThemeIsDark = wxSystemSettings::GetAppearance().AreAppsDark();
|
||||||
|
+ globalDefaultThemeIsDark = false;
|
||||||
|
ZEN_ON_SCOPE_EXIT(if (!refGlobalColorHook()) refGlobalColorHook() = std::make_unique<SysColorsHook>()); //*after* SetAppearance() and despite errors
|
||||||
|
|
||||||
|
//caveat: on macOS there are more themes than light/dark: https://developer.apple.com/documentation/appkit/nsappearance/name-swift.struct
|
||||||
|
@@ -93,10 +93,6 @@ void zen::changeColorTheme(ColorTheme colTheme) //throw FileError
|
||||||
|
try
|
||||||
|
{
|
||||||
|
ZEN_ON_SCOPE_SUCCESS(refGlobalColorHook() = std::make_unique<SysColorsHook>()); //*after* SetAppearance()
|
||||||
|
- if (wxApp::AppearanceResult rv = wxTheApp->SetAppearance(colTheme);
|
||||||
|
- rv != wxApp::AppearanceResult::Ok)
|
||||||
|
- throw SysError(formatSystemError("wxApp::SetAppearance",
|
||||||
|
- rv == wxApp::AppearanceResult::CannotChange ? L"CannotChange" : L"Failure", L"" /*errorMsg*/));
|
||||||
|
}
|
||||||
|
catch (const SysError& e) { throw FileError(_("Failed to update the color theme."), e.toString()); }
|
||||||
|
}
|
||||||
|
--- a/wx+/darkmode.h
|
||||||
|
+++ b/wx+/darkmode.h
|
||||||
|
@@ -9,14 +9,16 @@
|
||||||
|
|
||||||
|
#include <zen/file_error.h>
|
||||||
|
#include <wx/app.h>
|
||||||
|
+#include <wx/settings.h>
|
||||||
|
|
||||||
|
|
||||||
|
+enum class Appearance{System,Light,Dark};
|
||||||
|
namespace zen
|
||||||
|
{
|
||||||
|
bool darkModeAvailable();
|
||||||
|
|
||||||
|
//support not only "dark mode" but dark themes in general
|
||||||
|
-using ColorTheme = wxApp::Appearance; //why reinvent the wheel?
|
||||||
|
+using ColorTheme = Appearance; //why reinvent the wheel?
|
||||||
|
|
||||||
|
void colorThemeInit(wxApp& app, ColorTheme colTheme); //throw FileError
|
||||||
|
void colorThemeCleanup();
|
||||||
|
@@ -25,4 +27,28 @@ bool equalAppearance(ColorTheme colTheme1, ColorTheme colTheme2);
|
||||||
|
void changeColorTheme(ColorTheme colTheme); //throw FileError
|
||||||
|
}
|
||||||
|
|
||||||
|
+struct wxColorHook
|
||||||
|
+{
|
||||||
|
+ virtual ~wxColorHook() {}
|
||||||
|
+ virtual wxColour getColor(wxSystemColour index) const = 0;
|
||||||
|
+};
|
||||||
|
+WXDLLIMPEXP_CORE inline std::unique_ptr<wxColorHook>& refGlobalColorHook()
|
||||||
|
+{
|
||||||
|
+ static std::unique_ptr<wxColorHook> globalColorHook;
|
||||||
|
+ return globalColorHook;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+class WXDLLIMPEXP_CORE wxSystemSettings2 : public wxSystemSettingsNative
|
||||||
|
+{
|
||||||
|
+public:
|
||||||
|
+ static wxColour GetColour(wxSystemColour index)
|
||||||
|
+ {
|
||||||
|
+ if (refGlobalColorHook())
|
||||||
|
+ return refGlobalColorHook()->getColor(index);
|
||||||
|
+
|
||||||
|
+ return wxSystemSettingsNative::GetColour(index);
|
||||||
|
+ }
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
#endif //DARKMODE_H_754298057018
|
||||||
|
--- a/FreeFilesync/Source/ui/main_dlg.cpp
|
||||||
|
+++ b/FreeFileSync/Source/ui/main_dlg.cpp
|
||||||
|
@@ -1279,11 +1279,11 @@ void MainDialog::setGlobalCfgOnInit(const GlobalConfig& globalCfg)
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------
|
||||||
|
m_checkBoxMatchCase->SetValue(globalCfg_.mainDlg.textSearchRespectCase);
|
||||||
|
-
|
||||||
|
+ wxAuiPaneInfoArray& paneArray = auiMgr_.GetAllPanes();
|
||||||
|
//work around wxAuiManager::LoadPerspective overwriting pane captions with old values (might be different language!)
|
||||||
|
std::vector<std::pair<wxAuiPaneInfo*, wxString>> paneCaptions;
|
||||||
|
- for (wxAuiPaneInfo& paneInfo : auiMgr_.GetAllPanes())
|
||||||
|
- paneCaptions.emplace_back(&paneInfo, paneInfo.caption);
|
||||||
|
+ for (size_t i = 0; i < paneArray.size(); ++i)
|
||||||
|
+ paneCaptions.emplace_back(&paneArray[i], paneArray[i].caption);
|
||||||
|
|
||||||
|
//compare progress dialog minimum sizes are layout-dependent + can't be changed by user => don't load stale values from config
|
||||||
|
std::vector<std::tuple<wxAuiPaneInfo*, wxSize /*min size*/, wxSize /*best size*/>> paneConstraints;
|
||||||
|
@@ -3147,8 +3147,8 @@ void MainDialog::onSetLayoutContext(wxMouseEvent& event)
|
||||||
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
bool addedSeparator = false;
|
||||||
|
-
|
||||||
|
- for (wxAuiPaneInfo& paneInfo : auiMgr_.GetAllPanes())
|
||||||
|
+ const wxAuiPaneInfoArray& paneArray = auiMgr_.GetAllPanes();
|
||||||
|
+ for (size_t i = 0; i < paneArray.size(); ++i){ wxAuiPaneInfo& paneInfo = paneArray[i];
|
||||||
|
if (!paneInfo.IsShown() &&
|
||||||
|
paneInfo.window != compareStatus_->getAsWindow() &&
|
||||||
|
paneInfo.window != m_panelLog &&
|
||||||
|
@@ -3166,7 +3166,7 @@ void MainDialog::onSetLayoutContext(wxMouseEvent& event)
|
||||||
|
this->auiMgr_.Update();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
-
|
||||||
|
+ }
|
||||||
|
menu.popup(*this);
|
||||||
|
}
|
||||||
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
Index: FreeFileSync-13.2/FreeFileSync/Source/base/icon_loader.cpp
|
|
||||||
===================================================================
|
|
||||||
--- FreeFileSync-13.2.orig/FreeFileSync/Source/base/icon_loader.cpp
|
|
||||||
+++ FreeFileSync-13.2/FreeFileSync/Source/base/icon_loader.cpp
|
|
||||||
@@ -227,7 +227,7 @@ FileIconHolder fff::getFileIcon(const Zs
|
|
||||||
//the remaining icon types won't block!
|
|
||||||
assert(GDK_IS_PIXBUF(gicon) || G_IS_THEMED_ICON(gicon) || G_IS_EMBLEMED_ICON(gicon));
|
|
||||||
|
|
||||||
- ::g_object_ref(gicon); //pass ownership
|
|
||||||
+ //::g_object_ref(gicon); //pass ownership
|
|
||||||
return FileIconHolder(gicon, maxSize); //
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
Index: FreeFileSync-13.3/FreeFileSync/Source/application.cpp
|
Index: FreeFileSync-14.3/FreeFileSync/Source/application.cpp
|
||||||
===================================================================
|
===================================================================
|
||||||
--- FreeFileSync-13.3.orig/FreeFileSync/Source/application.cpp
|
--- FreeFileSync-14.3.orig/FreeFileSync/Source/application.cpp
|
||||||
+++ FreeFileSync-13.3/FreeFileSync/Source/application.cpp
|
+++ FreeFileSync-14.3/FreeFileSync/Source/application.cpp
|
||||||
@@ -243,10 +243,6 @@ wxLayoutDirection Application::GetLayout
|
@@ -239,10 +239,6 @@ wxLayoutDirection Application::GetLayout
|
||||||
|
|
||||||
int Application::OnRun()
|
int Application::OnRun()
|
||||||
{
|
{
|
||||||
@@ -13,11 +13,11 @@ Index: FreeFileSync-13.3/FreeFileSync/Source/application.cpp
|
|||||||
//exception => Windows: let it crash and create mini dump!!! Linux/macOS: std::exception::what() logged to console
|
//exception => Windows: let it crash and create mini dump!!! Linux/macOS: std::exception::what() logged to console
|
||||||
[[maybe_unused]] const int rc = wxApp::OnRun();
|
[[maybe_unused]] const int rc = wxApp::OnRun();
|
||||||
return static_cast<int>(exitCode_);
|
return static_cast<int>(exitCode_);
|
||||||
Index: FreeFileSync-13.3/FreeFileSync/Source/RealTimeSync/application.cpp
|
Index: FreeFileSync-14.3/FreeFileSync/Source/RealTimeSync/application.cpp
|
||||||
===================================================================
|
===================================================================
|
||||||
--- FreeFileSync-13.3.orig/FreeFileSync/Source/RealTimeSync/application.cpp
|
--- FreeFileSync-14.3.orig/FreeFileSync/Source/RealTimeSync/application.cpp
|
||||||
+++ FreeFileSync-13.3/FreeFileSync/Source/RealTimeSync/application.cpp
|
+++ FreeFileSync-14.3/FreeFileSync/Source/RealTimeSync/application.cpp
|
||||||
@@ -209,10 +209,6 @@ wxLayoutDirection Application::GetLayout
|
@@ -213,10 +213,6 @@ wxLayoutDirection Application::GetLayout
|
||||||
|
|
||||||
int Application::OnRun()
|
int Application::OnRun()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
Index: FreeFileSync-13.1/FreeFileSync/Source/ffs_paths.cpp
|
Index: FreeFileSync-14.3/FreeFileSync/Source/ffs_paths.cpp
|
||||||
===================================================================
|
===================================================================
|
||||||
--- FreeFileSync-13.1.orig/FreeFileSync/Source/ffs_paths.cpp
|
--- FreeFileSync-14.3.orig/FreeFileSync/Source/ffs_paths.cpp
|
||||||
+++ FreeFileSync-13.1/FreeFileSync/Source/ffs_paths.cpp
|
+++ FreeFileSync-14.3/FreeFileSync/Source/ffs_paths.cpp
|
||||||
@@ -54,7 +54,8 @@ Zstring fff::getInstallDirPath()
|
@@ -53,7 +53,8 @@ Zstring fff::getInstallDirPath()
|
||||||
|
|
||||||
Zstring fff::getResourceDirPath()
|
Zstring fff::getResourceDirPath()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,3 +1,49 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Dec 4 07:43:36 UTC 2025 - Paolo Stivanin <info@paolostivanin.com>
|
||||||
|
|
||||||
|
- Update to 14.6:
|
||||||
|
* Write sync statistics to stdout as JSON for .ffs_batch
|
||||||
|
* Removed precompiled 32-bit bundle (Linux)
|
||||||
|
* Avoid redundant window centering before finishing layout
|
||||||
|
* GTK3-based build (Linux)
|
||||||
|
* Dark mode support with GTK3 (Linux)
|
||||||
|
* Stream errors to stderr instead of stdout (Linux)
|
||||||
|
* Fixed FTP login error "dh key too small"
|
||||||
|
* Updated all 3rd party libraries to latest versions
|
||||||
|
* Quotation not needed anymore for external application macros
|
||||||
|
* Unambiguous license key file extension
|
||||||
|
* Fixed crash when resizing config panel during comparison
|
||||||
|
* Fixed log file viewing when config name contains special characters
|
||||||
|
- Drop FreeFileSync-icon-loader.patch
|
||||||
|
- Drop FreeFileSync-build.patch
|
||||||
|
- Added FreeFileSync-gui.patch
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Apr 7 08:04:45 UTC 2025 - Paolo Stivanin <info@paolostivanin.com>
|
||||||
|
|
||||||
|
- Update to 14.3:
|
||||||
|
* Support internationalized domain names (IDN) for (S)FTP and email
|
||||||
|
* Log performance statistics for file content comparison
|
||||||
|
* Support installation using Ptyxis terminal (Linux)
|
||||||
|
* Support pausing countdown towards system shutdown
|
||||||
|
* Support KDE Plasma 6 service menu (Linux)
|
||||||
|
* Fixed crash on app exit when called by Cron (Linux)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Feb 3 13:30:51 UTC 2025 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- Use distro flags to build the package
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Nov 12 07:24:35 UTC 2024 - Paolo Stivanin <info@paolostivanin.com>
|
||||||
|
|
||||||
|
- Update to 13.8:
|
||||||
|
* Support raw IPv6 server address for (S)FTP
|
||||||
|
* RealTimeSync: Fixed scrollbar when adding/removing folders
|
||||||
|
* Don't set sync direction for partial folder pairs
|
||||||
|
* Uniquely identify partial folder pairs in error message
|
||||||
|
* Fixed network login prompt not showing in Windows 11 24H2
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Sep 3 18:40:37 UTC 2024 - Christian Boltz <suse-beta@cboltz.de>
|
Tue Sep 3 18:40:37 UTC 2024 - Christian Boltz <suse-beta@cboltz.de>
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package FreeFileSync
|
# spec file for package FreeFileSync
|
||||||
#
|
#
|
||||||
# Copyright (c) 2024 SUSE LLC
|
# Copyright (c) 2025 SUSE LLC and contributors
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
Name: FreeFileSync
|
Name: FreeFileSync
|
||||||
Version: 13.7
|
Version: 14.6
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Backup software to synchronize files and folders
|
Summary: Backup software to synchronize files and folders
|
||||||
License: GPL-3.0-or-later
|
License: GPL-3.0-or-later
|
||||||
@@ -33,11 +33,10 @@ Source2: %{name}.png
|
|||||||
Source3: RealTimeSync.desktop
|
Source3: RealTimeSync.desktop
|
||||||
Source4: RealTimeSync.png
|
Source4: RealTimeSync.png
|
||||||
Source5: Animal.dat
|
Source5: Animal.dat
|
||||||
Patch0: FreeFileSync-build.patch
|
Patch0: FreeFileSync-resources.patch
|
||||||
Patch1: FreeFileSync-resources.patch
|
Patch1: FreeFileSync-disable-in-app-updates.patch
|
||||||
Patch2: FreeFileSync-icon-loader.patch
|
Patch2: FreeFileSync-remove_ifdef_exceptions.patch
|
||||||
Patch3: FreeFileSync-disable-in-app-updates.patch
|
Patch3: FreeFileSync-gui.patch
|
||||||
Patch4: FreeFileSync-remove_ifdef_exceptions.patch
|
|
||||||
BuildRequires: boost-devel >= 1.54
|
BuildRequires: boost-devel >= 1.54
|
||||||
BuildRequires: gcc%{?force_gcc_version}-c++ >= 12
|
BuildRequires: gcc%{?force_gcc_version}-c++ >= 12
|
||||||
BuildRequires: libcurl-devel
|
BuildRequires: libcurl-devel
|
||||||
@@ -47,7 +46,7 @@ BuildRequires: libstdc++6 >= 10.0.0
|
|||||||
BuildRequires: libstdc++6 >= 12
|
BuildRequires: libstdc++6 >= 12
|
||||||
BuildRequires: unzip
|
BuildRequires: unzip
|
||||||
BuildRequires: update-desktop-files
|
BuildRequires: update-desktop-files
|
||||||
BuildRequires: wxGTK3-3_2-devel >= 3.1.6
|
BuildRequires: wxGTK3-3_2-devel >= 3.2.0
|
||||||
BuildRequires: zlib-devel
|
BuildRequires: zlib-devel
|
||||||
|
|
||||||
# base/db_file.cpp does static_assert(std::endian::native == std::endian::little); - but s390x is big endian
|
# base/db_file.cpp does static_assert(std::endian::native == std::endian::little); - but s390x is big endian
|
||||||
@@ -71,6 +70,9 @@ This command will usually trigger a FreeFileSync batch job.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%autosetup -p1 -c %{name}-%{version}
|
%autosetup -p1 -c %{name}-%{version}
|
||||||
|
touch zen/warn_static.h
|
||||||
|
sed -i 's|-Wfatal-errors||' FreeFileSync/Source/Makefile FreeFileSync/Source/RealTimeSync/Makefile
|
||||||
|
sed -i 's|const override|const|' FreeFileSync/Source/ui/small_dlgs.cpp
|
||||||
sed -i 's/\r$//' License.txt
|
sed -i 's/\r$//' License.txt
|
||||||
mkdir FreeFileSync/Build/Bin
|
mkdir FreeFileSync/Build/Bin
|
||||||
|
|
||||||
@@ -79,6 +81,9 @@ export TMPDIR=/tmp # necessary since 11.0
|
|||||||
%if 0%{?force_gcc_version}
|
%if 0%{?force_gcc_version}
|
||||||
export CXX="g++-%{?force_gcc_version}"
|
export CXX="g++-%{?force_gcc_version}"
|
||||||
%endif
|
%endif
|
||||||
|
export CFLAGS="%{optflags} -Wno-psabi -DMAX_SFTP_READ_SIZE=30000 -DMAX_SFTP_OUTGOING_SIZE=30000 -DwxInfoDC=wxClientDC -DwxReadOnlyDC=wxDC"
|
||||||
|
export CXXFLAGS="%{optflags} -Wno-psabi -DMAX_SFTP_READ_SIZE=30000 -DMAX_SFTP_OUTGOING_SIZE=30000 -DwxInfoDC=wxClientDC -DwxReadOnlyDC=wxDC"
|
||||||
|
export LDFLAGS="${LDFLAGS} `pkg-config --libs gtk+-3.0`"
|
||||||
%make_build -C %{name}/Source exeName=FreeFileSync
|
%make_build -C %{name}/Source exeName=FreeFileSync
|
||||||
%make_build -C %{name}/Source/RealTimeSync exeName=RealTimeSync
|
%make_build -C %{name}/Source/RealTimeSync exeName=RealTimeSync
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:6d2dc9d2e7afb591ffca3a0eb6a48c6151d168d7a05ba34c399bfb72d5b9a117
|
|
||||||
size 2763636
|
|
||||||
3
FreeFileSync_14.6_Source.zip
Normal file
3
FreeFileSync_14.6_Source.zip
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:3924f640884f84a97d421e271c89e8e5700998b3cd922d1b539035657714553c
|
||||||
|
size 2860695
|
||||||
Reference in New Issue
Block a user