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-10-22 15:51:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/FreeFileSync (Old)
 and      /work/SRC/openSUSE:Factory/.FreeFileSync.new.2252680 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "FreeFileSync"

Thu Oct 22 15:51:27 2026 rev:35 rq:1387052 version:14.13

Changes:
--------
--- /work/SRC/openSUSE:Factory/FreeFileSync/FreeFileSync.changes        
2026-10-05 15:21:42.641398172 +0200
+++ /work/SRC/openSUSE:Factory/.FreeFileSync.new.2252680/FreeFileSync.changes   
2026-10-22 15:55:30.930229974 +0200
@@ -1,0 +2,20 @@
+Thu Oct 22 06:56:02 UTC 2026 - Paolo Stivanin <[email protected]>
+
+- Update to 14.13:
+  * Reduced window flickering during resize (Windows 10)
+  * Prevent process termination on broken pipe errors (Linux/macOS)
+  * Work around SMB driver dropping modification time (macOS)
+  * Fixed privilege drop after auto-update (Linux)
+  * Correctly save minimum folder pair list height (Linux, macOS)
+- Refresh FreeFileSync-disable-in-app-updates.patch and
+  FreeFileSync-gui.patch to apply on 14.13
+- Add FreeFileSync-wx32-compat.patch
+  * Fix build with wxWidgets 3.2: wxColour::IsTransparent(),
+    wxAuiPaneInfo::IsHorizontal() and wxAuiPaneInfo::dock_size are
+    only available in wxWidgets >= 3.3
+- Fix the missing line continuation in the upstream Makefiles
+  (make: "missing separator") with a sed in %prep
+- Fix the invalid "#if  def __GNUC__" in zen/argon2.cpp and
+  xBRZ/src/xbrz.cpp (was "#if defined __GNUC__") with a sed in %prep
+
+-------------------------------------------------------------------

Old:
----
  FreeFileSync_14.12_Source.zip

New:
----
  FreeFileSync-wx32-compat.patch
  FreeFileSync_14.13_Source.zip

----------(New B)----------
  New:  FreeFileSync-gui.patch to apply on 14.13
- Add FreeFileSync-wx32-compat.patch
  * Fix build with wxWidgets 3.2: wxColour::IsTransparent(),
----------(New E)----------

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

Other differences:
------------------
++++++ FreeFileSync.spec ++++++
--- /var/tmp/diff_new_pack.J4K2Av/_old  2026-10-22 15:55:32.319288199 +0200
+++ /var/tmp/diff_new_pack.J4K2Av/_new  2026-10-22 15:55:32.321288283 +0200
@@ -21,7 +21,7 @@
 %endif
 
 Name:           FreeFileSync
-Version:        14.12
+Version:        14.13
 Release:        0
 Summary:        Backup software to synchronize files and folders
 License:        GPL-3.0-or-later
@@ -45,6 +45,8 @@
 Patch6:         FreeFileSync-wxstring-char-type.patch
 # PATCH-FIX-OPENSUSE FreeFileSync-libssh2-no-store-overflow.patch -- 
LIBSSH2_ERROR_STORE_OVERFLOW does not exist in libssh2 <= 1.11.1
 Patch7:         FreeFileSync-libssh2-no-store-overflow.patch
+# PATCH-FIX-OPENSUSE FreeFileSync-wx32-compat.patch -- 14.13 uses 
wxColour::IsTransparent(), wxAuiPaneInfo::IsHorizontal() and 
wxAuiPaneInfo::dock_size, which only exist in wxWidgets >= 3.3
+Patch8:         FreeFileSync-wx32-compat.patch
 BuildRequires:  boost-devel >= 1.54
 BuildRequires:  gcc%{?force_gcc_version}-c++ >= 15
 BuildRequires:  libcurl-devel
@@ -80,6 +82,10 @@
 %autosetup -p1 -c %{name}-%{version}
 touch zen/warn_static.h
 sed -i 's|-Wfatal-errors||' FreeFileSync/Source/Makefile 
FreeFileSync/Source/RealTimeSync/Makefile
+# 14.13 ships Makefiles with a missing line continuation ("missing 
separator"); no-op once fixed upstream
+sed -i 's|^\( *-Wno-unused-function -Wno-deprecated-enum-enum-conversion\)$|\1 
\\|' FreeFileSync/Source/Makefile FreeFileSync/Source/RealTimeSync/Makefile
+# 14.13 ships "#if  def __GNUC__" (invalid, was "#if defined __GNUC__"); no-op 
once fixed upstream
+sed -i 's|^#if  def __GNUC__|#if defined __GNUC__|' zen/argon2.cpp 
xBRZ/src/xbrz.cpp
 sed -i 's|const override|const|' FreeFileSync/Source/ui/small_dlgs.cpp
 sed -i 's/\r$//' License.txt
 mkdir FreeFileSync/Build/Bin


++++++ FreeFileSync-disable-in-app-updates.patch ++++++
--- /var/tmp/diff_new_pack.J4K2Av/_old  2026-10-22 15:55:32.375290547 +0200
+++ /var/tmp/diff_new_pack.J4K2Av/_new  2026-10-22 15:55:32.379290715 +0200
@@ -1,25 +1,25 @@
-Index: FreeFileSync-14.9/FreeFileSync/Source/ui/gui_generated.cpp
+Index: FreeFileSync-14.13/FreeFileSync/Source/ui/gui_generated.cpp
 ===================================================================
---- FreeFileSync-14.9.orig/FreeFileSync/Source/ui/gui_generated.cpp
-+++ FreeFileSync-14.9/FreeFileSync/Source/ui/gui_generated.cpp
+--- FreeFileSync-14.13.orig/FreeFileSync/Source/ui/gui_generated.cpp
++++ FreeFileSync-14.13/FreeFileSync/Source/ui/gui_generated.cpp
 @@ -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_menuHelp->Append( m_menuItemHelp );
+       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->AppendSeparator();
-+    //m_menuHelp->AppendSeparator();
+-      m_menuHelp->AppendSeparator();
++      //m_menuHelp->AppendSeparator();
  
-     m_menuItemCheckVersionNow = new wxMenuItem( m_menuHelp, wxID_ANY, 
wxString( _("&Check for updates now") ), wxEmptyString, wxITEM_NORMAL );
--    m_menuHelp->Append( m_menuItemCheckVersionNow );
-+    //m_menuHelp->Append( m_menuItemCheckVersionNow );
+       m_menuItemCheckVersionNow = new wxMenuItem( m_menuHelp, wxID_ANY, 
wxString( _("&Check for updates now") ) , wxEmptyString, wxITEM_NORMAL );
+-      m_menuHelp->Append( m_menuItemCheckVersionNow );
++      //m_menuHelp->Append( m_menuItemCheckVersionNow );
  
-     m_menuHelp->AppendSeparator();
+       m_menuHelp->AppendSeparator();
  
-Index: FreeFileSync-14.9/FreeFileSync/Source/ui/main_dlg.cpp
+Index: FreeFileSync-14.13/FreeFileSync/Source/ui/main_dlg.cpp
 ===================================================================
---- FreeFileSync-14.9.orig/FreeFileSync/Source/ui/main_dlg.cpp
-+++ FreeFileSync-14.9/FreeFileSync/Source/ui/main_dlg.cpp
-@@ -1086,7 +1086,7 @@ imgFileManagerSmall_([]
+--- FreeFileSync-14.13.orig/FreeFileSync/Source/ui/main_dlg.cpp
++++ FreeFileSync-14.13/FreeFileSync/Source/ui/main_dlg.cpp
+@@ -1089,7 +1089,7 @@ imgFileManagerSmall_([]
      updateGui();
  
      //register regular check for update on next idle event
@@ -28,10 +28,10 @@
  
      //asynchronous call to wxWindow::Layout(): fix superfluous frame on right 
and bottom when FFS is started in fullscreen mode
      Bind(wxEVT_IDLE, &MainDialog::onLayoutWindowAsync, this);
-Index: FreeFileSync-14.9/FreeFileSync/Source/ui/version_check.cpp
+Index: FreeFileSync-14.13/FreeFileSync/Source/ui/version_check.cpp
 ===================================================================
---- FreeFileSync-14.9.orig/FreeFileSync/Source/ui/version_check.cpp
-+++ FreeFileSync-14.9/FreeFileSync/Source/ui/version_check.cpp
+--- FreeFileSync-14.13.orig/FreeFileSync/Source/ui/version_check.cpp
++++ FreeFileSync-14.13/FreeFileSync/Source/ui/version_check.cpp
 @@ -49,7 +49,8 @@ void openBrowserForDownload(wxWindow* pa
  bool fff::automaticUpdateCheckDue(time_t lastUpdateCheck)
  {

++++++ FreeFileSync-gui.patch ++++++
--- /var/tmp/diff_new_pack.J4K2Av/_old  2026-10-22 15:55:32.393291302 +0200
+++ /var/tmp/diff_new_pack.J4K2Av/_new  2026-10-22 15:55:32.397291469 +0200
@@ -1,6 +1,5 @@
-diff -ruN a/FreeFileSync/Source/ui/gui_status_handler.cpp 
b/FreeFileSync/Source/ui/gui_status_handler.cpp
---- a/FreeFileSync/Source/ui/gui_status_handler.cpp    2026-10-05 
11:26:30.986938552 +0200
-+++ b/FreeFileSync/Source/ui/gui_status_handler.cpp    2026-10-05 
11:26:31.021227748 +0200
+--- a/FreeFileSync/Source/ui/gui_status_handler.cpp    2026-10-16 
18:56:58.000000000 +0200
++++ b/FreeFileSync/Source/ui/gui_status_handler.cpp    2026-10-22 
08:52:32.868607883 +0200
 @@ -70,27 +70,33 @@
                  //case wxAUI_DOCK_CENTRE:
          }
@@ -38,10 +37,9 @@
          //------------------------------------------------------------------
  
          statusPanel.Show();
-diff -ruN a/FreeFileSync/Source/ui/main_dlg.cpp 
b/FreeFileSync/Source/ui/main_dlg.cpp
---- a/FreeFileSync/Source/ui/main_dlg.cpp      2026-10-05 11:26:30.987030691 
+0200
-+++ b/FreeFileSync/Source/ui/main_dlg.cpp      2026-10-05 11:26:31.022104585 
+0200
-@@ -1273,11 +1273,11 @@
+--- a/FreeFileSync/Source/ui/main_dlg.cpp      2026-10-22 08:52:32.778874254 
+0200
++++ b/FreeFileSync/Source/ui/main_dlg.cpp      2026-10-22 08:52:32.870875279 
+0200
+@@ -1276,11 +1276,11 @@
  
      
//--------------------------------------------------------------------------------
      m_checkBoxMatchCase->SetValue(globalCfg_.mainDlg.textSearchRespectCase);
@@ -56,7 +54,7 @@
  
      //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;
-@@ -3141,8 +3141,8 @@
+@@ -3147,8 +3147,8 @@
      
//----------------------------------------------------------------------------------------
  
      bool addedSeparator = false;
@@ -67,7 +65,7 @@
          if (!paneInfo.IsShown() &&
              paneInfo.window != compareStatus_->getAsWindow() &&
              paneInfo.window != m_panelLog                    &&
-@@ -3160,7 +3160,7 @@
+@@ -3166,7 +3166,7 @@
                  this->auiMgr_.Update();
              });
          }
@@ -76,32 +74,31 @@
      menu.popup(*this);
  }
  
-diff -ruN a/wx+/darkmode.cpp b/wx+/darkmode.cpp
---- a/wx+/darkmode.cpp 2026-10-05 11:26:30.992167023 +0200
-+++ b/wx+/darkmode.cpp 2026-10-05 11:26:31.021355402 +0200
-@@ -53,7 +53,7 @@
- {
+--- a/wx+/darkmode.cpp 2026-10-16 18:56:58.000000000 +0200
++++ b/wx+/darkmode.cpp 2026-10-22 08:52:32.887368219 +0200
+@@ -55,7 +55,7 @@
      assert(!refGlobalColorHook());
+     assert(wxTopLevelWindows.empty());
  
 -    globalDefaultThemeIsDark = 
wxSystemSettings::GetAppearance().AreAppsDark();
 +    globalDefaultThemeIsDark = false;
-     ZEN_ON_SCOPE_EXIT(if (!refGlobalColorHook()) refGlobalColorHook() = 
std::make_unique<SysColorsHook>()); //*after* SetAppearance() and despite errors
+     ZEN_ON_SCOPE_EXIT(if (!refGlobalColorHook()) refGlobalColorHook() = 
std::make_unique<SysColorsHook>()); //*after* SetAppearance()
  
      //caveat: on macOS there are more themes than light/dark: 
https://developer.apple.com/documentation/appkit/nsappearance/name-swift.struct
-@@ -86,10 +86,6 @@
+@@ -87,11 +87,6 @@
+ 
      try
      {
-         ZEN_ON_SCOPE_SUCCESS(refGlobalColorHook() = 
std::make_unique<SysColorsHook>()); //*after* SetAppearance()
--        if (wxApp::AppearanceResult rv = wxTheApp->SetAppearance(colTheme);
+-        if (const 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*/));
+-            assert(rv != wxApp::AppearanceResult::CannotChange), //unused 
since wx 3.3.4
+-                   throw SysError(formatSystemError("wxApp::SetAppearance", 
L"", L"" /*errorMsg*/));
+-                
+         refGlobalColorHook() = std::make_unique<SysColorsHook>();
      }
      catch (const SysError& e) { throw FileError(_("Failed to update the color 
theme."), e.toString()); }
- }
-diff -ruN a/wx+/darkmode.h b/wx+/darkmode.h
---- a/wx+/darkmode.h   2026-10-05 11:26:30.991614771 +0200
-+++ b/wx+/darkmode.h   2026-10-05 11:26:31.044585835 +0200
+--- a/wx+/darkmode.h   2026-10-16 18:56:57.000000000 +0200
++++ b/wx+/darkmode.h   2026-10-22 08:52:32.872410686 +0200
 @@ -7,13 +7,16 @@
  
  #include <zen/file_error.h>
@@ -120,9 +117,9 @@
  
  void colorThemeInit(wxApp& app, ColorTheme colTheme); //throw FileError
  void colorThemeCleanup();
-@@ -21,3 +24,27 @@
- bool equalAppearance(ColorTheme colTheme1, ColorTheme colTheme2);
- void changeColorTheme(ColorTheme colTheme); //throw FileError
+@@ -23,3 +26,27 @@
+ DEFINE_NEW_FILE_ERROR(ErrorRestartRequired)
+ void changeColorTheme(ColorTheme colTheme); //throw ErrorRestartRequired, 
FileError
  }
 +struct wxColorHook
 +{
@@ -148,9 +145,8 @@
 +    }
 +};
 +
-diff -ruN a/wx+/dc.h b/wx+/dc.h
---- a/wx+/dc.h 2026-10-05 11:26:30.991646261 +0200
-+++ b/wx+/dc.h 2026-10-05 11:26:31.020577178 +0200
+--- a/wx+/dc.h 2026-10-16 18:56:57.000000000 +0200
++++ b/wx+/dc.h 2026-10-22 08:52:32.872609305 +0200
 @@ -341,7 +341,6 @@
      {
          assert(wnd.IsDoubleBuffered());
@@ -159,9 +155,8 @@
      }
  
      operator wxDC& ()
-diff -ruN a/wx+/grid.cpp b/wx+/grid.cpp
---- a/wx+/grid.cpp     2026-10-05 11:26:30.992397141 +0200
-+++ b/wx+/grid.cpp     2026-10-05 11:26:31.020907086 +0200
+--- a/wx+/grid.cpp     2026-10-16 18:56:58.000000000 +0200
++++ b/wx+/grid.cpp     2026-10-22 08:52:32.873173033 +0200
 @@ -172,7 +172,7 @@
  
  wxRect GridData::drawCellBorder(wxDC& dc, const wxRect& rect) //returns 
remaining rectangle

++++++ FreeFileSync-wx32-compat.patch ++++++
diff -ruN a/FreeFileSync/Source/ui/main_dlg.cpp 
b/FreeFileSync/Source/ui/main_dlg.cpp
--- a/FreeFileSync/Source/ui/main_dlg.cpp
+++ b/FreeFileSync/Source/ui/main_dlg.cpp
@@ -438,7 +438,7 @@ void updateTopButton(wxBitmapButton& btn
                      const wxColor& highlightCol /*optional*/)
 {
     wxColor backCol = highlightCol.IsOk() ? highlightCol : 
btn.GetBackgroundColour();
-    if (backCol.IsTransparent()) //wxMAC: btn.GetBackgroundColour() == 
wxTransparentColor since wx 3.3.4!
+    if (backCol.Alpha() == wxALPHA_TRANSPARENT) //wxMAC: 
btn.GetBackgroundColour() == wxTransparentColor since wx 3.3.4!
         backCol = wxSystemSettings::GetColour(wxSYS_COLOUR_BTNFACE);
 
     wxImage iconImg = highlightCol.IsOk() ? img : greyScale(img);
@@ -6035,12 +6035,11 @@ void MainDialog::updateGuiForFolderPair(
     addPairCountLast_ = addPairCountOpt;
 
     wxAuiPaneInfo& dirPane = auiMgr_.GetPane(m_panelDirectoryPairs);
-    if (dirPane.IsHorizontal())
+    if (dirPane.dock_direction == wxAUI_DOCK_TOP || dirPane.dock_direction == 
wxAUI_DOCK_BOTTOM) //wxAuiPaneInfo::IsHorizontal() needs wx >= 3.3
     {
         dirPane.min_size.x = dipToWxsize(100);
         dirPane.min_size.y  = firstPairHeight + addPairCountMin * 
addPairHeight;
         dirPane.best_size.y = firstPairHeight + addPairCountOpt * 
addPairHeight;
-        dirPane.dock_size = 0; //triggers size re-calculate (alternative: set 
to = best_size.y since !dirPane.HasBorder())
 
         
//########################################################################################################################
         //wxAUI hack: call wxAuiPaneInfo::Fixed() to apply best size:


++++++ FreeFileSync_14.12_Source.zip -> FreeFileSync_14.13_Source.zip ++++++
++++ 16172 lines of diff (skipped)

Reply via email to