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)
