Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package FreeFileSync for openSUSE:Factory 
checked in at 2026-09-01 15:47:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/FreeFileSync (Old)
 and      /work/SRC/openSUSE:Factory/.FreeFileSync.new.1265 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "FreeFileSync"

Tue Sep  1 15:47:34 2026 rev:33 rq:1374888 version:14.11

Changes:
--------
--- /work/SRC/openSUSE:Factory/FreeFileSync/FreeFileSync.changes        
2026-06-02 16:10:08.869374876 +0200
+++ /work/SRC/openSUSE:Factory/.FreeFileSync.new.1265/FreeFileSync.changes      
2026-09-01 15:48:54.720918951 +0200
@@ -1,0 +2,24 @@
+Sun Aug 30 10:05:37 UTC 2026 - [email protected]
+
+- Update to 14.11:
+  * Fixed "TLS session resumption required" FTP error
+  * Log file time errors as "info" after comparing by file content
+  * Fixed tooltip not being updated during mouse scrolling (macOS, Linux)
+  * Fixed sluggy mouse scrolling during mouse movement (Linux)
+  * Skip ADS when failing to copy to ReFS (Windows)
+  * Updated translation files
+
+- Add wxwidgets-no-wx3.3.1-WxLogCollector.patch
+  * WxLogCollector appeared is wxWidgets 3.3.1 & FreeFileSync 14.10
+    This reverts to the way it worked in FreeFileSync 14.9
+
+-------------------------------------------------------------------
+Thu Jul  9 06:44:13 UTC 2026 - Paolo Stivanin <[email protected]>
+
+- Update to 14.10:
+  * Added CRC32 verification for application resource files
+  * Improved error reporting when application files become corrupted
+  * Fixed access denied error for Windows SFTP server
+  * Updated toolchain and library dependencies to latest versions
+
+-------------------------------------------------------------------

Old:
----
  FreeFileSync_14.9_Source.zip

New:
----
  FreeFileSync_14.11_Source.zip
  wxwidgets-no-wx3.3.1-WxLogCollector.patch

----------(New B)----------
  New:
- Add wxwidgets-no-wx3.3.1-WxLogCollector.patch
  * WxLogCollector appeared is wxWidgets 3.3.1 & FreeFileSync 14.10
----------(New E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ FreeFileSync.spec ++++++
--- /var/tmp/diff_new_pack.7PF2Yv/_old  2026-09-01 15:48:55.817957224 +0200
+++ /var/tmp/diff_new_pack.7PF2Yv/_new  2026-09-01 15:48:55.819957293 +0200
@@ -21,7 +21,7 @@
 %endif
 
 Name:           FreeFileSync
-Version:        14.9
+Version:        14.11
 Release:        0
 Summary:        Backup software to synchronize files and folders
 License:        GPL-3.0-or-later
@@ -39,6 +39,8 @@
 Patch3:         FreeFileSync-gui.patch
 # PATCH-FIX-UPSTREAM 
glib2-2.78-free_size-Fix-build-when-g_free-macro-is-defined.patch -- based on 
https://freefilesync.org/forum/viewtopic.php?t=13050#p50762
 Patch4:         
glib2-2.78-free_size-Fix-build-when-g_free-macro-is-defined.patch
+# 
https://salsa.debian.org/bastif/freefilesync/-/blob/debian/latest/debian/patches/03-deps/wxwidgets-no-wx3.3.1-WxLogCollector.patch
+Patch5:         wxwidgets-no-wx3.3.1-WxLogCollector.patch
 BuildRequires:  boost-devel >= 1.54
 BuildRequires:  gcc%{?force_gcc_version}-c++ >= 15
 BuildRequires:  libcurl-devel



++++++ FreeFileSync_14.9_Source.zip -> FreeFileSync_14.11_Source.zip ++++++
++++ 1854 lines of diff (skipped)


++++++ glib2-2.78-free_size-Fix-build-when-g_free-macro-is-defined.patch ++++++
--- /var/tmp/diff_new_pack.7PF2Yv/_old  2026-09-01 15:48:56.654986425 +0200
+++ /var/tmp/diff_new_pack.7PF2Yv/_new  2026-09-01 15:48:56.671987018 +0200
@@ -33,11 +33,11 @@
  zen/zstring.cpp                          | 4 ++++
  3 files changed, 16 insertions(+)
 
-diff --git a/FreeFileSync/Source/afs/ftp.cpp b/FreeFileSync/Source/afs/ftp.cpp
-index 5bfbc11..28c848d 100644
---- a/FreeFileSync/Source/afs/ftp.cpp
-+++ b/FreeFileSync/Source/afs/ftp.cpp
-@@ -121,7 +121,11 @@ Zstring ansiToUtfEncoding(const std::string_view& str) 
//throw SysError
+Index: FreeFileSync-14.10/FreeFileSync/Source/afs/ftp.cpp
+===================================================================
+--- FreeFileSync-14.10.orig/FreeFileSync/Source/afs/ftp.cpp
++++ FreeFileSync-14.10/FreeFileSync/Source/afs/ftp.cpp
+@@ -116,7 +116,11 @@ Zstring ansiToUtfEncoding(const std::str
                                  &error);       //GError** error
      if (!utfStr)
          throw SysError(formatGlibError("g_convert(" + std::string(str) + ", 
LATIN1 -> UTF-8)", error));
@@ -49,7 +49,7 @@
  
      return {utfStr, bytesWritten};
  
-@@ -150,7 +154,11 @@ std::string utfToAnsiEncoding(const Zstring& str) //throw 
SysError
+@@ -145,7 +149,11 @@ std::string utfToAnsiEncoding(const Zstr
                                   &error);         //GError** error
      if (!ansiStr)
          throw SysError(formatGlibError("g_convert(" + 
utfTo<std::string>(strNorm) + ", UTF-8 -> LATIN1)", error));
@@ -61,11 +61,11 @@
  
      return {ansiStr, bytesWritten};
  
-diff --git a/FreeFileSync/Source/base/icon_loader.cpp 
b/FreeFileSync/Source/base/icon_loader.cpp
-index e8f813d..abf09fc 100644
---- a/FreeFileSync/Source/base/icon_loader.cpp
-+++ b/FreeFileSync/Source/base/icon_loader.cpp
-@@ -164,7 +164,11 @@ FileIconHolder fff::getIconByTemplatePath(const Zstring& 
templatePath, int maxSi
+Index: FreeFileSync-14.10/FreeFileSync/Source/base/icon_loader.cpp
+===================================================================
+--- FreeFileSync-14.10.orig/FreeFileSync/Source/base/icon_loader.cpp
++++ FreeFileSync-14.10/FreeFileSync/Source/base/icon_loader.cpp
+@@ -164,7 +164,11 @@ FileIconHolder fff::getIconByTemplatePat
                                                        nullptr);             
//gboolean* result_uncertain
      if (!contentType)
          throw SysError(formatSystemError("g_content_type_guess(" + 
copyStringTo<std::string>(templatePath) + ')', L"", L"Unknown content type."));
@@ -77,11 +77,11 @@
  
      GIcon* const fileIcon = ::g_content_type_get_icon(contentType);
      if (!fileIcon)
-diff --git a/zen/zstring.cpp b/zen/zstring.cpp
-index 488fd44..529f823 100644
---- a/zen/zstring.cpp
-+++ b/zen/zstring.cpp
-@@ -25,7 +25,11 @@ Zstring getUnicodeNormalForm_NonAsciiValidUtf(const 
Zstring& str, UnicodeNormalF
+Index: FreeFileSync-14.10/zen/zstring.cpp
+===================================================================
+--- FreeFileSync-14.10.orig/zen/zstring.cpp
++++ FreeFileSync-14.10/zen/zstring.cpp
+@@ -25,7 +25,11 @@ Zstring getUnicodeNormalForm_NonAsciiVal
          gchar* strNorm = ::g_utf8_normalize(str.c_str(), str.length(), form 
== UnicodeNormalForm::nfc ? G_NORMALIZE_NFC : G_NORMALIZE_NFD);
          if (!strNorm)
              throw SysError(formatSystemError("g_utf8_normalize", L"", 
L"Conversion failed."));

++++++ wxwidgets-no-wx3.3.1-WxLogCollector.patch ++++++
From: Fab Stz <[email protected]>
Date: Wed, 1 Jul 2026 10:26:39 +0200
Subject: Revert to WxLog instead of WxLogCollector

WxLogCollector appeared is wxWidgets 3.3.1 & FreeFileSync 14.10

This reverts to the way it worked in FreeFileSync 14.9
---
 FreeFileSync/Source/localization.cpp            | 8 +-------
 FreeFileSync/Source/ui/batch_status_handler.cpp | 6 +++---
 FreeFileSync/Source/ui/gui_status_handler.cpp   | 7 +++----
 FreeFileSync/Source/ui/main_dlg.cpp             | 7 +++----
 wx+/image_resources.cpp                         | 8 +-------
 5 files changed, 11 insertions(+), 25 deletions(-)

diff --git a/FreeFileSync/Source/localization.cpp 
b/FreeFileSync/Source/localization.cpp
index 31379c5..5d8dac6 100644
--- a/FreeFileSync/Source/localization.cpp
+++ b/FreeFileSync/Source/localization.cpp
@@ -8,7 +8,6 @@
 #include <clocale> //setlocale
 #include <zen/file_traverser.h>
 #include <zen/file_io.h>
-#include <wx/log.h>
 #include <wx/zipstrm.h>
 #include <wx/mstream.h>
 #include <wx/uilocale.h>
@@ -129,8 +128,6 @@ std::vector<TranslationInfo> loadTranslations(const 
Zstring& zipPath) //throw Fi
         }
         //-------------------------------------------------------------
 
-        wxLogCollector zipLog; //wxWidgets shows modal error dialog by default 
=> "no, wxWidgets, NO!"
-
         wxMemoryInputStream byteStream(rawStream.c_str(), rawStream.size()); 
//does not take ownership
         wxZipInputStream zipStream(byteStream, wxConvUTF8);
 
@@ -151,11 +148,8 @@ std::vector<TranslationInfo> loadTranslations(const 
Zstring& zipPath) //throw Fi
                 streams.emplace_back(zipPath + Zstr(':') + 
utfTo<Zstring>(entry->GetName()), std::move(stream));
             }
             else
-                break; //error
+                assert(false);
         }
-
-        if (zipStream.GetLastError() != wxSTREAM_EOF || 
!zipLog.GetMessages().empty())
-             throw FileError(replaceCpy(_("Cannot read file %x."), L"%x", 
fmtPath(zipPath)), utfTo<std::wstring>(zipLog.GetMessages()));
     }();
     //--------------------------------------------------------------------
 
diff --git a/FreeFileSync/Source/ui/batch_status_handler.cpp 
b/FreeFileSync/Source/ui/batch_status_handler.cpp
index 88f722b..b065b3b 100644
--- a/FreeFileSync/Source/ui/batch_status_handler.cpp
+++ b/FreeFileSync/Source/ui/batch_status_handler.cpp
@@ -190,12 +190,12 @@ BatchStatusHandler::DlgOptions 
BatchStatusHandler::showResult()
     else if (!suspend && !autoClose && //only play when actually showing 
results dialog
              !soundFileSyncComplete_.empty())
     {
-        wxLogCollector soundLog; //wxWidgets shows modal error dialog by 
default => "no, wxWidgets, NO!"
+        //wxWidgets shows modal error dialog by default => "no, wxWidgets, NO!"
+        wxLog* oldLogTarget = wxLog::SetActiveTarget(new wxLogStderr); 
//transfer and receive ownership!
+        ZEN_ON_SCOPE_EXIT(delete wxLog::SetActiveTarget(oldLogTarget));
 
         wxSound::Play(utfTo<wxString>(soundFileSyncComplete_), wxSOUND_ASYNC);
 
-        if (!soundLog.GetMessages().empty())
-            logMsg(errorLog_.ref(), 
utfTo<std::wstring>(soundLog.GetMessages()), MSG_TYPE_INFO);
     }
     //if (::GetForegroundWindow() != GetHWND())
     //    RequestUserAttention(); -> probably too much since task bar is 
already colorized with Taskbar::Status::error or Status::normal
diff --git a/FreeFileSync/Source/ui/gui_status_handler.cpp 
b/FreeFileSync/Source/ui/gui_status_handler.cpp
index 15fed1f..3dce443 100644
--- a/FreeFileSync/Source/ui/gui_status_handler.cpp
+++ b/FreeFileSync/Source/ui/gui_status_handler.cpp
@@ -515,12 +515,11 @@ StatusHandlerFloatingDialog::DlgOptions 
StatusHandlerFloatingDialog::showResult(
     if (!taskCancelled() && !suspend && !autoClose && //only play when 
actually showing results dialog
         !soundFileSyncComplete_.empty())
     {
-                wxLogCollector soundLog; //wxWidgets shows modal error dialog 
by default => "no, wxWidgets, NO!"
+        //wxWidgets shows modal error dialog by default => "no, wxWidgets, NO!"
+        wxLog* oldLogTarget = wxLog::SetActiveTarget(new wxLogStderr); 
//transfer and receive ownership!
+        ZEN_ON_SCOPE_EXIT(delete wxLog::SetActiveTarget(oldLogTarget));
 
         wxSound::Play(utfTo<wxString>(soundFileSyncComplete_), wxSOUND_ASYNC);
-
-        if (!soundLog.GetMessages().empty())
-            logMsg(errorLog_.ref(), 
utfTo<std::wstring>(soundLog.GetMessages()), MSG_TYPE_INFO);
     }
     //if (::GetForegroundWindow() != GetHWND())
     //    RequestUserAttention(); -> probably too much since task bar is 
already colorized with Taskbar::Status::error or Status::normal
diff --git a/FreeFileSync/Source/ui/main_dlg.cpp 
b/FreeFileSync/Source/ui/main_dlg.cpp
index 9300767..bc3e88d 100644
--- a/FreeFileSync/Source/ui/main_dlg.cpp
+++ b/FreeFileSync/Source/ui/main_dlg.cpp
@@ -4622,12 +4622,11 @@ void MainDialog::onCompare(wxCommandEvent& event)
         //play (optional) sound notification
         if (!globalCfg_.soundFileCompareFinished.empty())
         {
-            wxLogCollector soundLog; //wxWidgets shows modal error dialog by 
default => "no, wxWidgets, NO!"
+            //wxWidgets shows modal error dialog by default => "no, wxWidgets, 
NO!"
+            wxLog* oldLogTarget = wxLog::SetActiveTarget(new wxLogStderr); 
//transfer and receive ownership!
+            ZEN_ON_SCOPE_EXIT(delete wxLog::SetActiveTarget(oldLogTarget));
 
             
wxSound::Play(utfTo<wxString>(globalCfg_.soundFileCompareFinished), 
wxSOUND_ASYNC);
-
-            if (!soundLog.GetMessages().empty())
-                
statusHandler.logMessage(utfTo<std::wstring>(soundLog.GetMessages()), 
PhaseCallback::MsgType::info);
         }
     }
     catch (CancelProcess&) {}
diff --git a/wx+/image_resources.cpp b/wx+/image_resources.cpp
index 2df8282..e672d05 100644
--- a/wx+/image_resources.cpp
+++ b/wx+/image_resources.cpp
@@ -9,7 +9,6 @@
 #include <zen/thread.h>
 #include <zen/file_io.h>
 #include <zen/file_traverser.h>
-#include <wx/log.h>
 #include <wx/mstream.h>
 #include <wx/zipstrm.h>
 #include <xBRZ/src/xbrz.h>
@@ -202,8 +201,6 @@ ImageBuffer::ImageBuffer(const Zstring& zipPath) //throw 
FileError
         }
     //--------------------------------------------------------------------
 
-        wxLogCollector zipLog; //wxWidgets shows modal error dialog by default 
=> "no, wxWidgets, NO!"
-
         //wxFFileInputStream/wxZipInputStream loads in junks of 512 bytes => 
WTF!!! => implement sane file loading:
         wxMemoryInputStream memStream(rawStream.c_str(), rawStream.size()); 
//does not take ownership
         wxZipInputStream zipStream(memStream, wxConvUTF8);
@@ -220,10 +217,7 @@ ImageBuffer::ImageBuffer(const Zstring& zipPath) //throw 
FileError
                 streams.emplace_back(utfTo<Zstring>(entry->GetName()), 
std::move(stream));
             }
             else
-                break; //error
-
-        if (zipStream.GetLastError() != wxSTREAM_EOF || 
!zipLog.GetMessages().empty())
-            throw FileError(replaceCpy(_("Cannot read file %x."), L"%x", 
fmtPath(zipPath)), utfTo<std::wstring>(zipLog.GetMessages()));
+                assert(false);
     }();
     //--------------------------------------------------------------------
 

Reply via email to