Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] New package: FreeFileSync-11.8
@ 2021-03-21 17:58 Nicop06
  2021-03-21 20:19 ` [PR PATCH] [Updated] " Nicop06
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Nicop06 @ 2021-03-21 17:58 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1675 bytes --]

There is a new pull request by Nicop06 against master on the void-packages repository

https://github.com/Nicop06/void-packages FreeFileSync
https://github.com/void-linux/void-packages/pull/29663

New package: FreeFileSync-11.8
This package is based on the AUR package freefilesync: https://aur.archlinux.org/packages/freefilesync/

<!-- Mark items with [x] where applicable -->

#### General
- [X] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [ ] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me
- [X] I generally don't use the affected packages but briefly tested this PR

<!--
If GitHub CI cannot be used to validate the build result (for example, if the
build is likely to take several hours), make sure to
[skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration).
When skipping CI, uncomment and fill out the following section.
Note: for builds that are likely to complete in less than 2 hours, it is not
acceptable to skip CI.
-->
<!-- 
#### Does it build and run successfully? 
(Please choose at least one native build and, if supported, at least one cross build. More are better.)
- [ ] I built this PR locally for my native architecture, (ARCH-LIBC)
- [ ] I built this PR locally for these architectures (if supported. mark crossbuilds):
  - [ ] aarch64-musl
  - [ ] armv7l
  - [ ] armv6l-musl
-->

A patch file from https://github.com/void-linux/void-packages/pull/29663.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-FreeFileSync-29663.patch --]
[-- Type: text/x-diff, Size: 21310 bytes --]

From 073d959f8a7d983a87041f4d510ddac7995a0543 Mon Sep 17 00:00:00 2001
From: Nicolas Porcel <nicolasporcel06@gmail.com>
Date: Wed, 17 Mar 2021 01:09:40 +0000
Subject: [PATCH] New package: FreeFileSync-11.8

---
 .../FreeFileSync/files/FreeFileSync.desktop   |  11 ++
 .../FreeFileSync/files/RealTimeSync.desktop   |  11 ++
 .../patches/reversions_11-1.patch             |  62 ++++++
 .../patches/revert_bulk_append.patch          |  51 +++++
 .../patches/revert_linkflags.patch            |  33 ++++
 .../patches/revert_wxgtk_3.1.0.patch          | 181 ++++++++++++++++++
 srcpkgs/FreeFileSync/template                 |  42 ++++
 7 files changed, 391 insertions(+)
 create mode 100755 srcpkgs/FreeFileSync/files/FreeFileSync.desktop
 create mode 100644 srcpkgs/FreeFileSync/files/RealTimeSync.desktop
 create mode 100644 srcpkgs/FreeFileSync/patches/reversions_11-1.patch
 create mode 100644 srcpkgs/FreeFileSync/patches/revert_bulk_append.patch
 create mode 100644 srcpkgs/FreeFileSync/patches/revert_linkflags.patch
 create mode 100644 srcpkgs/FreeFileSync/patches/revert_wxgtk_3.1.0.patch
 create mode 100644 srcpkgs/FreeFileSync/template

diff --git a/srcpkgs/FreeFileSync/files/FreeFileSync.desktop b/srcpkgs/FreeFileSync/files/FreeFileSync.desktop
new file mode 100755
index 000000000000..b94e4799d123
--- /dev/null
+++ b/srcpkgs/FreeFileSync/files/FreeFileSync.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Type=Application
+Name=FreeFileSync
+GenericName=Folder Comparison and Synchronization
+GenericName[de_DE]=Ordnervergleich und Synchronisation
+Exec=FreeFileSync %F
+Icon=/usr/share/pixmaps/FreeFileSync.png
+NoDisplay=false
+Terminal=false
+Categories=Utility;FileTools;
+StartupNotify=true
diff --git a/srcpkgs/FreeFileSync/files/RealTimeSync.desktop b/srcpkgs/FreeFileSync/files/RealTimeSync.desktop
new file mode 100644
index 000000000000..dfd533ffd88a
--- /dev/null
+++ b/srcpkgs/FreeFileSync/files/RealTimeSync.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Type=Application
+Name=RealTimeSync
+GenericName=Automated Synchronization
+GenericName[de_DE]=Automatisierte Synchronisation
+Exec=RealTimeSync %f
+Icon=/usr/share/pixmaps/RealTimeSync.png
+NoDisplay=false
+Terminal=false
+Categories=Utility;FileTools;
+StartupNotify=true
diff --git a/srcpkgs/FreeFileSync/patches/reversions_11-1.patch b/srcpkgs/FreeFileSync/patches/reversions_11-1.patch
new file mode 100644
index 000000000000..2d55eafe4748
--- /dev/null
+++ b/srcpkgs/FreeFileSync/patches/reversions_11-1.patch
@@ -0,0 +1,62 @@
+--- FreeFileSync/Source/ui/gui_status_handler.cpp
++++ FreeFileSync/Source/ui/gui_status_handler.cpp
+@@ -43,8 +43,8 @@ StatusHandlerTemporaryPanel::StatusHandlerTemporaryPanel(MainDialog& dlg,
+     mainDlg_.Update(); //don't wait until idle event!
+ 
+     //register keys
+-    mainDlg_.                Bind(wxEVT_CHAR_HOOK,              &StatusHandlerTemporaryPanel::onLocalKeyEvent, this);
+-    mainDlg_.m_buttonCancel->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &StatusHandlerTemporaryPanel::onAbortCompare,  this);
++    mainDlg_.Connect(wxEVT_CHAR_HOOK, wxKeyEventHandler(StatusHandlerTemporaryPanel::OnKeyPressed), nullptr, this);
++    mainDlg_.m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusHandlerTemporaryPanel::OnAbortCompare), nullptr, this);
+ }
+ 
+ 
+@@ -128,9 +128,8 @@ StatusHandlerTemporaryPanel::~StatusHandlerTemporaryPanel()
+     mainDlg_.auiMgr_.Update();
+ 
+     //unregister keys
+-    [[maybe_unused]] bool ubOk1 = mainDlg_.                Unbind(wxEVT_CHAR_HOOK,              &StatusHandlerTemporaryPanel::onLocalKeyEvent, this);
+-    [[maybe_unused]] bool ubOk2 = mainDlg_.m_buttonCancel->Unbind(wxEVT_COMMAND_BUTTON_CLICKED, &StatusHandlerTemporaryPanel::onAbortCompare,  this);
+-    assert(ubOk1 && ubOk2);
++    mainDlg_.Disconnect(wxEVT_CHAR_HOOK, wxKeyEventHandler(StatusHandlerTemporaryPanel::OnKeyPressed), nullptr, this);
++    mainDlg_.m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusHandlerTemporaryPanel::OnAbortCompare), nullptr, this);
+ 
+     mainDlg_.compareStatus_->teardown();
+ 
+@@ -314,20 +313,20 @@ void StatusHandlerTemporaryPanel::forceUiUpdateNoThrow()
+ }
+ 
+ 
+-void StatusHandlerTemporaryPanel::onLocalKeyEvent(wxKeyEvent& event)
++void StatusHandlerTemporaryPanel::OnKeyPressed(wxKeyEvent& event)
+ {
+     const int keyCode = event.GetKeyCode();
+     if (keyCode == WXK_ESCAPE)
+     {
+         wxCommandEvent dummy;
+-        onAbortCompare(dummy);
++        OnAbortCompare(dummy);
+     }
+ 
+     event.Skip();
+ }
+ 
+ 
+-void StatusHandlerTemporaryPanel::onAbortCompare(wxCommandEvent& event)
++void StatusHandlerTemporaryPanel::OnAbortCompare(wxCommandEvent& event)
+ {
+     userRequestAbort();
+ }
+--- FreeFileSync/Source/ui/gui_status_handler.h
++++ FreeFileSync/Source/ui/gui_status_handler.h
+@@ -41,8 +41,8 @@ public:
+     Result reportResults(); //noexcept!!
+ 
+ private:
+-    void onLocalKeyEvent(wxKeyEvent& event);
+-    void onAbortCompare(wxCommandEvent& event); //handle abort button click
++    void OnKeyPressed(wxKeyEvent& event);
++    void OnAbortCompare(wxCommandEvent& event); //handle abort button click
+     void showStatsPanel();
+ 
+     MainDialog& mainDlg_;
diff --git a/srcpkgs/FreeFileSync/patches/revert_bulk_append.patch b/srcpkgs/FreeFileSync/patches/revert_bulk_append.patch
new file mode 100644
index 000000000000..bf9e9288afe9
--- /dev/null
+++ b/srcpkgs/FreeFileSync/patches/revert_bulk_append.patch
@@ -0,0 +1,51 @@
+--- FreeFileSync/Source/ui/command_box.cpp	2020-06-18 19:16:52.000000000 +0200
++++ FreeFileSync/Source/ui/command_box.cpp	2020-06-21 10:45:23.265579023 +0200
+@@ -120,7 +120,8 @@
+ 
+     //this->Clear(); -> NO! emits yet another wxEVT_COMMAND_TEXT_UPDATED!!!
+     wxItemContainer::Clear(); //suffices to clear the selection items only!
+-    this->Append(items); //expensive as fuck! => only call when absolutely needed!
++    for (const wxString& item : items)
++        this->Append(item); 
+ 
+     //this->SetSelection(wxNOT_FOUND); //don't select anything
+     ChangeValue(value); //preserve main text!
+--- FreeFileSync/Source/ui/folder_history_box.cpp	2020-06-18 19:16:52.000000000 +0200
++++ FreeFileSync/Source/ui/folder_history_box.cpp	2020-06-21 10:45:23.265579023 +0200
+@@ -90,7 +90,8 @@
+ 
+     //this->Clear(); -> NO! emits yet another wxEVT_COMMAND_TEXT_UPDATED!!!
+     wxItemContainer::Clear(); //suffices to clear the selection items only!
+-    this->Append(items); //expensive as fuck! => only call when absolutely needed!
++    for (const wxString& item : items)
++        this->Append(item); 
+ 
+     //this->SetSelection(wxNOT_FOUND); //don't select anything
+     ChangeValue(folderPathPhrase); //preserve main text!
+--- FreeFileSync/Source/ui/small_dlgs.cpp	2020-06-18 19:16:52.000000000 +0200
++++ FreeFileSync/Source/ui/small_dlgs.cpp	2020-06-21 11:35:53.494412284 +0200
+@@ -293,7 +293,9 @@
+     {
+         showNotificationDialog(this, DialogInfoType::error, PopupDialogCfg().setDetailInstructions(e.toString()));
+     }
+-    m_listBoxGdriveUsers->Append(gdriveAccounts);
++    for (auto const& account: gdriveAccounts) {
++        m_listBoxGdriveUsers->Append(account);
++    }
+ 
+     //set default values for Google Drive: use first item of m_listBoxGdriveUsers
+     if (!gdriveAccounts.empty() && !acceptsItemPathPhraseGdrive(folderPathPhrase))
+--- wx+/choice_enum.h	2020-06-18 19:16:51.000000000 +0200
++++ wx+/choice_enum.h	2020-06-21 10:45:23.268912329 +0200
+@@ -79,7 +79,10 @@
+ 
+     if (items != itemsSetLast)
+     {
+-        ctrl.Set(items); //expensive as fuck! => only call when absolutely needed!
++        ctrl.Clear();
++        for (auto item : items) {
++            ctrl.Append(item);
++        }
+         itemsSetLast = std::move(items);
+     }
+     //-----------------------------------------------------------------
diff --git a/srcpkgs/FreeFileSync/patches/revert_linkflags.patch b/srcpkgs/FreeFileSync/patches/revert_linkflags.patch
new file mode 100644
index 000000000000..7e59d423f4a3
--- /dev/null
+++ b/srcpkgs/FreeFileSync/patches/revert_linkflags.patch
@@ -0,0 +1,33 @@
+--- FreeFileSync/Source/Makefile
++++ FreeFileSync/Source/Makefile
+@@ -4,7 +4,7 @@
+            -Wall -Wfatal-errors -Wmissing-include-dirs -Wswitch-enum -Wcast-align -Wshadow -Wnon-virtual-dtor \
+            -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread
+ 
+-linkFlags = -s -no-pie `wx-config --libs std, aui, richtext --debug=no` -pthread
++linkFlags = -s -no-pie `wx-config --libs std, aui, richtext --debug=no` -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
+
+--- FreeFileSync/Source/RealTimeSync/Makefile
++++ FreeFileSync/Source/RealTimeSync/Makefile
+@@ -4,10 +4,11 @@
+            -Wall -Wfatal-errors -Wmissing-include-dirs -Wswitch-enum -Wcast-align -Wshadow -Wnon-virtual-dtor \
+            -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread
+ 
+-linkFlags = -s -no-pie `wx-config --libs std, aui, richtext --debug=no` -pthread
++linkFlags = -s -no-pie `wx-config --libs std, aui, richtext --debug=no` -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 --git a/srcpkgs/FreeFileSync/patches/revert_wxgtk_3.1.0.patch b/srcpkgs/FreeFileSync/patches/revert_wxgtk_3.1.0.patch
new file mode 100644
index 000000000000..6e13fbd55a77
--- /dev/null
+++ b/srcpkgs/FreeFileSync/patches/revert_wxgtk_3.1.0.patch
@@ -0,0 +1,181 @@
+--- FreeFileSync/Source/RealTimeSync/folder_selector2.cpp	2021-03-03 20:06:02.000000000 +0000
++++ FreeFileSync/Source/RealTimeSync/folder_selector2.cpp	2021-03-17 00:43:34.001731441 +0000
+@@ -158,7 +158,7 @@
+     }
+ 
+     Zstring newFolderPath;
+-    wxDirDialog folderSelector(parent_, _("Select a folder"), utfTo<wxString>(defaultFolderPath), wxDD_DEFAULT_STYLE | wxDD_SHOW_HIDDEN);
++    wxDirDialog folderSelector(parent_, _("Select a folder"), utfTo<wxString>(defaultFolderPath));
+     if (folderSelector.ShowModal() != wxID_OK)
+         return;
+     newFolderPath = utfTo<Zstring>(folderSelector.GetPath());
+--- FreeFileSync/Source/afs/sftp.cpp	2021-03-03 20:06:01.000000000 +0000
++++ FreeFileSync/Source/afs/sftp.cpp	2021-03-17 00:43:34.003731440 +0000
+@@ -67,9 +67,9 @@
+ 
+ //attention: if operation fails due to time out, e.g. file copy, the cleanup code may hang, too => total delay = 2 x time out interval
+ 
+-const size_t SFTP_OPTIMAL_BLOCK_SIZE_READ  = 8 * MAX_SFTP_READ_SIZE;     //https://github.com/libssh2/libssh2/issues/90
+-const size_t SFTP_OPTIMAL_BLOCK_SIZE_WRITE = 8 * MAX_SFTP_OUTGOING_SIZE; //
+-static_assert(MAX_SFTP_READ_SIZE == 30000 && MAX_SFTP_OUTGOING_SIZE == 30000, "reevaluate optimal block sizes if these constants change!");
++const size_t SFTP_OPTIMAL_BLOCK_SIZE_READ  = 8 * 30000;     //https://github.com/libssh2/libssh2/issues/90
++const size_t SFTP_OPTIMAL_BLOCK_SIZE_WRITE = 8 * 30000; //
++static_assert(30000 == 30000 && 30000 == 30000, "reevaluate optimal block sizes if these constants change!");
+ 
+ /* Perf Test, Sourceforge frs, SFTP upload, compressed 25 MB test file:
+ 
+--- FreeFileSync/Source/ui/command_box.h	2021-03-03 20:06:00.000000000 +0000
++++ FreeFileSync/Source/ui/command_box.h	2021-03-17 00:43:34.005731439 +0000
+@@ -30,7 +30,7 @@
+                const wxString choices[] = nullptr,
+                long style = 0,
+                const wxValidator& validator = wxDefaultValidator,
+-               const wxString& name = wxASCII_STR(wxComboBoxNameStr));
++               const wxString& name = wxString::FromAscii(wxComboBoxNameStr));
+ 
+     void setHistory(const std::vector<Zstring>& history, size_t historyMax) { history_ = history; historyMax_ = historyMax; }
+     std::vector<Zstring> getHistory() const { return history_; }
+--- FreeFileSync/Source/ui/folder_history_box.h	2021-03-03 20:06:00.000000000 +0000
++++ FreeFileSync/Source/ui/folder_history_box.h	2021-03-17 00:43:34.005731439 +0000
+@@ -68,7 +68,7 @@
+                      const wxString choices[] = nullptr,
+                      long style = 0,
+                      const wxValidator& validator = wxDefaultValidator,
+-                     const wxString& name = wxASCII_STR(wxComboBoxNameStr));
++                     const wxString& name = wxString::FromAscii(wxComboBoxNameStr));
+ 
+     void setHistory(std::shared_ptr<HistoryList> sharedHistory) { sharedHistory_ = std::move(sharedHistory); }
+     std::shared_ptr<HistoryList> getHistory() { return sharedHistory_; }
+--- FreeFileSync/Source/ui/folder_selector.cpp	2021-03-03 20:06:01.000000000 +0000
++++ FreeFileSync/Source/ui/folder_selector.cpp	2021-03-17 00:43:34.005731439 +0000
+@@ -236,7 +236,7 @@
+ 
+     Zstring shellItemPath;
+     //default size? Windows: not implemented, Linux(GTK2): not implemented, macOS: not implemented => wxWidgets, what is this shit!?
+-    wxDirDialog folderSelector(parent_, _("Select a folder"), utfTo<wxString>(defaultFolderNative), wxDD_DEFAULT_STYLE | wxDD_SHOW_HIDDEN);
++    wxDirDialog folderSelector(parent_, _("Select a folder"), utfTo<wxString>(defaultFolderNative));
+     //GTK2: "Show hidden" is also available as a context menu option in the folder picker!
+     //It looks like wxDD_SHOW_HIDDEN only sets the default when opening for the first time!?
+     if (folderSelector.ShowModal() != wxID_OK)
+--- FreeFileSync/Source/ui/small_dlgs.cpp	2021-03-17 00:53:28.014536756 +0000
++++ FreeFileSync/Source/ui/small_dlgs.cpp	2021-03-17 00:46:53.668666002 +0000
+@@ -1682,7 +1682,6 @@
+     //setMainInstructionFont(*m_staticTextMain);
+ 
+     m_bitmapActivation->SetBitmap(loadImage("internet"));
+-    m_textCtrlOfflineActivationKey->ForceUpper();
+ 
+     setTextWithUrls(*m_richTextLastError, lastErrorMsg);
+     setTextWithUrls(*m_richTextManualActivationUrl, manualActivationUrl);
+--- wx+/bitmap_button.h	2021-03-03 20:06:00.000000000 +0000
++++ wx+/bitmap_button.h	2021-03-17 00:43:34.008731438 +0000
+@@ -26,7 +26,7 @@
+                      const wxSize& size           = wxDefaultSize,
+                      long style                   = 0,
+                      const wxValidator& validator = wxDefaultValidator,
+-                     const wxString& name         = wxASCII_STR(wxButtonNameStr)) :
++                     const wxString& name         = wxString::FromAscii(wxButtonNameStr)) :
+         wxBitmapButton(parent, id, wxNullBitmap, pos, size, style, validator, name)
+     {
+         SetLabel(label);
+--- wx+/choice_enum.h	2021-03-17 00:53:28.014536756 +0000
++++ wx+/choice_enum.h	2021-03-17 00:43:34.007731439 +0000
+@@ -81,7 +81,7 @@
+     {
+         ctrl.Clear();
+         for (auto item : items) {
+-            ctrl.Append(item);
++          ctrl.Append(item);
+         }
+         itemsSetLast = std::move(items);
+     }
+--- wx+/dc.h	2021-03-03 20:06:00.000000000 +0000
++++ wx+/dc.h	2021-03-17 00:43:34.007731439 +0000
+@@ -68,13 +68,6 @@
+ inline
+ int fastFromDIP(int d) //like wxWindow::FromDIP (but tied to primary monitor and buffered)
+ {
+-#ifndef wxHAVE_DPI_INDEPENDENT_PIXELS
+-#error why is wxHAVE_DPI_INDEPENDENT_PIXELS not defined?
+-#endif
+-    //GTK2 doesn't properly support high DPI: https://freefilesync.org/forum/viewtopic.php?t=6114
+-    //=> requires general fix at wxWidgets-level
+-
+-    //https://github.com/wxWidgets/wxWidgets/blob/d9d05c2bb201078f5e762c42458ca2f74af5b322/include/wx/window.h#L2060
+     return d; //e.g. macOS, GTK3
+ }
+ int fastFromDIP(double d) = delete;
+--- wx+/graph.h	2021-03-03 20:06:00.000000000 +0000
++++ wx+/graph.h	2021-03-17 00:43:34.008731438 +0000
+@@ -192,7 +192,7 @@
+             const wxPoint& pos   = wxDefaultPosition,
+             const wxSize& size   = wxDefaultSize,
+             long style           = wxTAB_TRAVERSAL | wxNO_BORDER,
+-            const wxString& name = wxASCII_STR(wxPanelNameStr));
++            const wxString& name = wxString::FromAscii(wxPanelNameStr));
+ 
+     class CurveAttributes
+     {
+--- wx+/grid.cpp	2021-03-03 20:06:02.000000000 +0000
++++ wx+/grid.cpp	2021-03-17 00:46:17.124677980 +0000
+@@ -263,7 +263,7 @@
+ {
+ public:
+     SubWindow(Grid& parent) :
+-        wxWindow(&parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxWANTS_CHARS | wxBORDER_NONE, wxASCII_STR(wxPanelNameStr)),
++        wxWindow(&parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxWANTS_CHARS | wxBORDER_NONE, wxString::FromAscii(wxPanelNameStr)),
+         parent_(parent)
+     {
+         Bind(wxEVT_PAINT, [this](wxPaintEvent& event) { onPaintEvent(event); });
+@@ -1357,7 +1357,7 @@
+             {
+                 if (overlapPix != 0)
+                 {
+-                    const double scrollSpeed = wnd_.ToDIP(overlapPix) * mouseDragSpeedIncScrollU; //unit: [scroll units / sec]
++                    const double scrollSpeed = 6; // wnd_.ToDIP(overlapPix) * mouseDragSpeedIncScrollU; //unit: [scroll units / sec]
+                     toScroll += scrollSpeed * deltaSecs;
+                 }
+                 else
+--- wx+/grid.h	2021-03-03 20:06:00.000000000 +0000
++++ wx+/grid.h	2021-03-17 00:43:34.008731438 +0000
+@@ -150,7 +150,7 @@
+          const wxPoint& pos   = wxDefaultPosition,
+          const wxSize& size   = wxDefaultSize,
+          long style           = wxTAB_TRAVERSAL | wxNO_BORDER,
+-         const wxString& name = wxASCII_STR(wxPanelNameStr));
++         const wxString& name = wxString::FromAscii(wxPanelNameStr));
+ 
+     size_t getRowCount() const;
+ 
+--- wx+/no_flicker.h	2021-03-03 20:06:00.000000000 +0000
++++ wx+/no_flicker.h	2021-03-17 00:43:34.008731438 +0000
+@@ -69,9 +69,6 @@
+     richCtrl.BeginSuppressUndo();
+     ZEN_ON_SCOPE_EXIT(richCtrl.EndSuppressUndo());
+ 
+-    //fix mouse scroll speed: why the FUCK is this even necessary!
+-    richCtrl.SetLineHeight(richCtrl.GetCharHeight());
+-
+     //get rid of margins and space between text blocks/"paragraphs"
+     richCtrl.SetMargins({0, 0});
+     richCtrl.BeginParagraphSpacing(0, 0);
+--- wx+/toggle_button.h	2021-03-03 20:06:00.000000000 +0000
++++ wx+/toggle_button.h	2021-03-17 00:43:34.008731438 +0000
+@@ -24,7 +24,7 @@
+                  const wxSize&      size = wxDefaultSize,
+                  long               style = 0,
+                  const wxValidator& validator = wxDefaultValidator,
+-                 const wxString&    name = wxASCII_STR(wxButtonNameStr)) :
++                 const wxString&    name = wxString::FromAscii(wxButtonNameStr)) :
+         wxBitmapButton(parent, id, bitmap, pos, size, style, validator, name) {}
+ 
+     //wxButton constructor
+@@ -35,7 +35,7 @@
+                  const wxSize&      size = wxDefaultSize,
+                  long               style = 0,
+                  const wxValidator& validator = wxDefaultValidator,
+-                 const wxString&    name = wxASCII_STR(wxButtonNameStr)) :
++                 const wxString&    name = wxString::FromAscii(wxButtonNameStr)) :
+         wxBitmapButton(parent, id, wxNullBitmap, pos, size, style, validator, name)
+     {
+         SetLabel(label);
diff --git a/srcpkgs/FreeFileSync/template b/srcpkgs/FreeFileSync/template
new file mode 100644
index 000000000000..bba5e1d14df1
--- /dev/null
+++ b/srcpkgs/FreeFileSync/template
@@ -0,0 +1,42 @@
+# Template file for 'FreeFileSync'
+pkgname=FreeFileSync
+version=11.8
+revision=1
+archs="i686 x86_64"
+create_wrksrc=yes
+build_style=gnu-makefile
+make_cmd="make -C ${pkgname}/Source exeName=FreeFileSync"
+hostmakedepends="unzip"
+makedepends="pkg-config libglib-devel wxWidgets-devel libcurl-devel gtk+-devel openssl-devel"
+depends="wxWidgets libcurl"
+short_desc="Backup software to synchronize files and folders"
+maintainer="Nicolas Porcel <nicolasporcel06@gmail.com>"
+license="GPL-3.0-or-later"
+homepage="https://freefilesync.org"
+distfiles="${homepage}/download/FreeFileSync_${version}_Source.zip"
+checksum=d105d4274da8cae42c44b171303f90092c5a7f9a8317e445bc5ceaf1872877a4
+
+nopie_files="/opt/${pkgname}/Bin/FreeFileSync /opt/${pkgname}/Bin/RealTimeSync"
+
+do_build() {
+    make ${makejobs} exeName=FreeFileSync -C FreeFileSync/Source
+    make ${makejobs} exeName=RealTimeSync -C FreeFileSync/Source/RealTimeSync
+    unzip FreeFileSync/Build/Resources/Icons.zip FreeFileSync.png RealTimeSync.png -d FreeFileSync/Build 
+}
+
+do_install() {
+    vmkdir opt/${pkgname}
+    vcopy FreeFileSync/Build/Bin opt/${pkgname}
+    vcopy FreeFileSync/Build/Resources opt/${pkgname}
+
+    vmkdir usr/share/pixmaps
+    vinstall FreeFileSync/Build/FreeFileSync.png 0644 usr/share/pixmaps
+    vinstall FreeFileSync/Build/RealTimeSync.png 0644 usr/share/pixmaps
+
+    vmkdir usr/share/applications
+    vinstall ${FILESDIR}/FreeFileSync.desktop 0644 usr/share/applications
+    vinstall ${FILESDIR}/RealTimeSync.desktop 0644 usr/share/applications
+
+    vmkdir usr/bin
+    ln -s /opt/FreeFileSync/Bin/{FreeFileSync,RealTimeSync} ${DESTDIR}/usr/bin
+}

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PR PATCH] [Updated] New package: FreeFileSync-11.8
  2021-03-21 17:58 [PR PATCH] New package: FreeFileSync-11.8 Nicop06
@ 2021-03-21 20:19 ` Nicop06
  2021-03-21 20:22 ` Nicop06
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Nicop06 @ 2021-03-21 20:19 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1680 bytes --]

There is an updated pull request by Nicop06 against master on the void-packages repository

https://github.com/Nicop06/void-packages FreeFileSync
https://github.com/void-linux/void-packages/pull/29663

New package: FreeFileSync-11.8
This package is based on the AUR package freefilesync: https://aur.archlinux.org/packages/freefilesync/

<!-- Mark items with [x] where applicable -->

#### General
- [X] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [ ] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me
- [X] I generally don't use the affected packages but briefly tested this PR

<!--
If GitHub CI cannot be used to validate the build result (for example, if the
build is likely to take several hours), make sure to
[skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration).
When skipping CI, uncomment and fill out the following section.
Note: for builds that are likely to complete in less than 2 hours, it is not
acceptable to skip CI.
-->
<!-- 
#### Does it build and run successfully? 
(Please choose at least one native build and, if supported, at least one cross build. More are better.)
- [ ] I built this PR locally for my native architecture, (ARCH-LIBC)
- [ ] I built this PR locally for these architectures (if supported. mark crossbuilds):
  - [ ] aarch64-musl
  - [ ] armv7l
  - [ ] armv6l-musl
-->

A patch file from https://github.com/void-linux/void-packages/pull/29663.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-FreeFileSync-29663.patch --]
[-- Type: text/x-diff, Size: 21267 bytes --]

From 406321ba214a2faae8ae09445f55ee76d55a85f7 Mon Sep 17 00:00:00 2001
From: Nicolas Porcel <nicolasporcel06@gmail.com>
Date: Wed, 17 Mar 2021 01:09:40 +0000
Subject: [PATCH] New package: FreeFileSync-11.8

---
 .../FreeFileSync/files/FreeFileSync.desktop   |  11 ++
 .../FreeFileSync/files/RealTimeSync.desktop   |  11 ++
 .../patches/reversions_11-1.patch             |  62 ++++++
 .../patches/revert_bulk_append.patch          |  51 +++++
 .../patches/revert_linkflags.patch            |  33 ++++
 .../patches/revert_wxgtk_3.1.0.patch          | 181 ++++++++++++++++++
 srcpkgs/FreeFileSync/template                 |  42 ++++
 7 files changed, 391 insertions(+)
 create mode 100755 srcpkgs/FreeFileSync/files/FreeFileSync.desktop
 create mode 100644 srcpkgs/FreeFileSync/files/RealTimeSync.desktop
 create mode 100644 srcpkgs/FreeFileSync/patches/reversions_11-1.patch
 create mode 100644 srcpkgs/FreeFileSync/patches/revert_bulk_append.patch
 create mode 100644 srcpkgs/FreeFileSync/patches/revert_linkflags.patch
 create mode 100644 srcpkgs/FreeFileSync/patches/revert_wxgtk_3.1.0.patch
 create mode 100644 srcpkgs/FreeFileSync/template

diff --git a/srcpkgs/FreeFileSync/files/FreeFileSync.desktop b/srcpkgs/FreeFileSync/files/FreeFileSync.desktop
new file mode 100755
index 000000000000..b94e4799d123
--- /dev/null
+++ b/srcpkgs/FreeFileSync/files/FreeFileSync.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Type=Application
+Name=FreeFileSync
+GenericName=Folder Comparison and Synchronization
+GenericName[de_DE]=Ordnervergleich und Synchronisation
+Exec=FreeFileSync %F
+Icon=/usr/share/pixmaps/FreeFileSync.png
+NoDisplay=false
+Terminal=false
+Categories=Utility;FileTools;
+StartupNotify=true
diff --git a/srcpkgs/FreeFileSync/files/RealTimeSync.desktop b/srcpkgs/FreeFileSync/files/RealTimeSync.desktop
new file mode 100644
index 000000000000..dfd533ffd88a
--- /dev/null
+++ b/srcpkgs/FreeFileSync/files/RealTimeSync.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Type=Application
+Name=RealTimeSync
+GenericName=Automated Synchronization
+GenericName[de_DE]=Automatisierte Synchronisation
+Exec=RealTimeSync %f
+Icon=/usr/share/pixmaps/RealTimeSync.png
+NoDisplay=false
+Terminal=false
+Categories=Utility;FileTools;
+StartupNotify=true
diff --git a/srcpkgs/FreeFileSync/patches/reversions_11-1.patch b/srcpkgs/FreeFileSync/patches/reversions_11-1.patch
new file mode 100644
index 000000000000..2d55eafe4748
--- /dev/null
+++ b/srcpkgs/FreeFileSync/patches/reversions_11-1.patch
@@ -0,0 +1,62 @@
+--- FreeFileSync/Source/ui/gui_status_handler.cpp
++++ FreeFileSync/Source/ui/gui_status_handler.cpp
+@@ -43,8 +43,8 @@ StatusHandlerTemporaryPanel::StatusHandlerTemporaryPanel(MainDialog& dlg,
+     mainDlg_.Update(); //don't wait until idle event!
+ 
+     //register keys
+-    mainDlg_.                Bind(wxEVT_CHAR_HOOK,              &StatusHandlerTemporaryPanel::onLocalKeyEvent, this);
+-    mainDlg_.m_buttonCancel->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &StatusHandlerTemporaryPanel::onAbortCompare,  this);
++    mainDlg_.Connect(wxEVT_CHAR_HOOK, wxKeyEventHandler(StatusHandlerTemporaryPanel::OnKeyPressed), nullptr, this);
++    mainDlg_.m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusHandlerTemporaryPanel::OnAbortCompare), nullptr, this);
+ }
+ 
+ 
+@@ -128,9 +128,8 @@ StatusHandlerTemporaryPanel::~StatusHandlerTemporaryPanel()
+     mainDlg_.auiMgr_.Update();
+ 
+     //unregister keys
+-    [[maybe_unused]] bool ubOk1 = mainDlg_.                Unbind(wxEVT_CHAR_HOOK,              &StatusHandlerTemporaryPanel::onLocalKeyEvent, this);
+-    [[maybe_unused]] bool ubOk2 = mainDlg_.m_buttonCancel->Unbind(wxEVT_COMMAND_BUTTON_CLICKED, &StatusHandlerTemporaryPanel::onAbortCompare,  this);
+-    assert(ubOk1 && ubOk2);
++    mainDlg_.Disconnect(wxEVT_CHAR_HOOK, wxKeyEventHandler(StatusHandlerTemporaryPanel::OnKeyPressed), nullptr, this);
++    mainDlg_.m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusHandlerTemporaryPanel::OnAbortCompare), nullptr, this);
+ 
+     mainDlg_.compareStatus_->teardown();
+ 
+@@ -314,20 +313,20 @@ void StatusHandlerTemporaryPanel::forceUiUpdateNoThrow()
+ }
+ 
+ 
+-void StatusHandlerTemporaryPanel::onLocalKeyEvent(wxKeyEvent& event)
++void StatusHandlerTemporaryPanel::OnKeyPressed(wxKeyEvent& event)
+ {
+     const int keyCode = event.GetKeyCode();
+     if (keyCode == WXK_ESCAPE)
+     {
+         wxCommandEvent dummy;
+-        onAbortCompare(dummy);
++        OnAbortCompare(dummy);
+     }
+ 
+     event.Skip();
+ }
+ 
+ 
+-void StatusHandlerTemporaryPanel::onAbortCompare(wxCommandEvent& event)
++void StatusHandlerTemporaryPanel::OnAbortCompare(wxCommandEvent& event)
+ {
+     userRequestAbort();
+ }
+--- FreeFileSync/Source/ui/gui_status_handler.h
++++ FreeFileSync/Source/ui/gui_status_handler.h
+@@ -41,8 +41,8 @@ public:
+     Result reportResults(); //noexcept!!
+ 
+ private:
+-    void onLocalKeyEvent(wxKeyEvent& event);
+-    void onAbortCompare(wxCommandEvent& event); //handle abort button click
++    void OnKeyPressed(wxKeyEvent& event);
++    void OnAbortCompare(wxCommandEvent& event); //handle abort button click
+     void showStatsPanel();
+ 
+     MainDialog& mainDlg_;
diff --git a/srcpkgs/FreeFileSync/patches/revert_bulk_append.patch b/srcpkgs/FreeFileSync/patches/revert_bulk_append.patch
new file mode 100644
index 000000000000..bf9e9288afe9
--- /dev/null
+++ b/srcpkgs/FreeFileSync/patches/revert_bulk_append.patch
@@ -0,0 +1,51 @@
+--- FreeFileSync/Source/ui/command_box.cpp	2020-06-18 19:16:52.000000000 +0200
++++ FreeFileSync/Source/ui/command_box.cpp	2020-06-21 10:45:23.265579023 +0200
+@@ -120,7 +120,8 @@
+ 
+     //this->Clear(); -> NO! emits yet another wxEVT_COMMAND_TEXT_UPDATED!!!
+     wxItemContainer::Clear(); //suffices to clear the selection items only!
+-    this->Append(items); //expensive as fuck! => only call when absolutely needed!
++    for (const wxString& item : items)
++        this->Append(item); 
+ 
+     //this->SetSelection(wxNOT_FOUND); //don't select anything
+     ChangeValue(value); //preserve main text!
+--- FreeFileSync/Source/ui/folder_history_box.cpp	2020-06-18 19:16:52.000000000 +0200
++++ FreeFileSync/Source/ui/folder_history_box.cpp	2020-06-21 10:45:23.265579023 +0200
+@@ -90,7 +90,8 @@
+ 
+     //this->Clear(); -> NO! emits yet another wxEVT_COMMAND_TEXT_UPDATED!!!
+     wxItemContainer::Clear(); //suffices to clear the selection items only!
+-    this->Append(items); //expensive as fuck! => only call when absolutely needed!
++    for (const wxString& item : items)
++        this->Append(item); 
+ 
+     //this->SetSelection(wxNOT_FOUND); //don't select anything
+     ChangeValue(folderPathPhrase); //preserve main text!
+--- FreeFileSync/Source/ui/small_dlgs.cpp	2020-06-18 19:16:52.000000000 +0200
++++ FreeFileSync/Source/ui/small_dlgs.cpp	2020-06-21 11:35:53.494412284 +0200
+@@ -293,7 +293,9 @@
+     {
+         showNotificationDialog(this, DialogInfoType::error, PopupDialogCfg().setDetailInstructions(e.toString()));
+     }
+-    m_listBoxGdriveUsers->Append(gdriveAccounts);
++    for (auto const& account: gdriveAccounts) {
++        m_listBoxGdriveUsers->Append(account);
++    }
+ 
+     //set default values for Google Drive: use first item of m_listBoxGdriveUsers
+     if (!gdriveAccounts.empty() && !acceptsItemPathPhraseGdrive(folderPathPhrase))
+--- wx+/choice_enum.h	2020-06-18 19:16:51.000000000 +0200
++++ wx+/choice_enum.h	2020-06-21 10:45:23.268912329 +0200
+@@ -79,7 +79,10 @@
+ 
+     if (items != itemsSetLast)
+     {
+-        ctrl.Set(items); //expensive as fuck! => only call when absolutely needed!
++        ctrl.Clear();
++        for (auto item : items) {
++            ctrl.Append(item);
++        }
+         itemsSetLast = std::move(items);
+     }
+     //-----------------------------------------------------------------
diff --git a/srcpkgs/FreeFileSync/patches/revert_linkflags.patch b/srcpkgs/FreeFileSync/patches/revert_linkflags.patch
new file mode 100644
index 000000000000..7e59d423f4a3
--- /dev/null
+++ b/srcpkgs/FreeFileSync/patches/revert_linkflags.patch
@@ -0,0 +1,33 @@
+--- FreeFileSync/Source/Makefile
++++ FreeFileSync/Source/Makefile
+@@ -4,7 +4,7 @@
+            -Wall -Wfatal-errors -Wmissing-include-dirs -Wswitch-enum -Wcast-align -Wshadow -Wnon-virtual-dtor \
+            -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread
+ 
+-linkFlags = -s -no-pie `wx-config --libs std, aui, richtext --debug=no` -pthread
++linkFlags = -s -no-pie `wx-config --libs std, aui, richtext --debug=no` -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
+
+--- FreeFileSync/Source/RealTimeSync/Makefile
++++ FreeFileSync/Source/RealTimeSync/Makefile
+@@ -4,10 +4,11 @@
+            -Wall -Wfatal-errors -Wmissing-include-dirs -Wswitch-enum -Wcast-align -Wshadow -Wnon-virtual-dtor \
+            -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread
+ 
+-linkFlags = -s -no-pie `wx-config --libs std, aui, richtext --debug=no` -pthread
++linkFlags = -s -no-pie `wx-config --libs std, aui, richtext --debug=no` -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 --git a/srcpkgs/FreeFileSync/patches/revert_wxgtk_3.1.0.patch b/srcpkgs/FreeFileSync/patches/revert_wxgtk_3.1.0.patch
new file mode 100644
index 000000000000..6e13fbd55a77
--- /dev/null
+++ b/srcpkgs/FreeFileSync/patches/revert_wxgtk_3.1.0.patch
@@ -0,0 +1,181 @@
+--- FreeFileSync/Source/RealTimeSync/folder_selector2.cpp	2021-03-03 20:06:02.000000000 +0000
++++ FreeFileSync/Source/RealTimeSync/folder_selector2.cpp	2021-03-17 00:43:34.001731441 +0000
+@@ -158,7 +158,7 @@
+     }
+ 
+     Zstring newFolderPath;
+-    wxDirDialog folderSelector(parent_, _("Select a folder"), utfTo<wxString>(defaultFolderPath), wxDD_DEFAULT_STYLE | wxDD_SHOW_HIDDEN);
++    wxDirDialog folderSelector(parent_, _("Select a folder"), utfTo<wxString>(defaultFolderPath));
+     if (folderSelector.ShowModal() != wxID_OK)
+         return;
+     newFolderPath = utfTo<Zstring>(folderSelector.GetPath());
+--- FreeFileSync/Source/afs/sftp.cpp	2021-03-03 20:06:01.000000000 +0000
++++ FreeFileSync/Source/afs/sftp.cpp	2021-03-17 00:43:34.003731440 +0000
+@@ -67,9 +67,9 @@
+ 
+ //attention: if operation fails due to time out, e.g. file copy, the cleanup code may hang, too => total delay = 2 x time out interval
+ 
+-const size_t SFTP_OPTIMAL_BLOCK_SIZE_READ  = 8 * MAX_SFTP_READ_SIZE;     //https://github.com/libssh2/libssh2/issues/90
+-const size_t SFTP_OPTIMAL_BLOCK_SIZE_WRITE = 8 * MAX_SFTP_OUTGOING_SIZE; //
+-static_assert(MAX_SFTP_READ_SIZE == 30000 && MAX_SFTP_OUTGOING_SIZE == 30000, "reevaluate optimal block sizes if these constants change!");
++const size_t SFTP_OPTIMAL_BLOCK_SIZE_READ  = 8 * 30000;     //https://github.com/libssh2/libssh2/issues/90
++const size_t SFTP_OPTIMAL_BLOCK_SIZE_WRITE = 8 * 30000; //
++static_assert(30000 == 30000 && 30000 == 30000, "reevaluate optimal block sizes if these constants change!");
+ 
+ /* Perf Test, Sourceforge frs, SFTP upload, compressed 25 MB test file:
+ 
+--- FreeFileSync/Source/ui/command_box.h	2021-03-03 20:06:00.000000000 +0000
++++ FreeFileSync/Source/ui/command_box.h	2021-03-17 00:43:34.005731439 +0000
+@@ -30,7 +30,7 @@
+                const wxString choices[] = nullptr,
+                long style = 0,
+                const wxValidator& validator = wxDefaultValidator,
+-               const wxString& name = wxASCII_STR(wxComboBoxNameStr));
++               const wxString& name = wxString::FromAscii(wxComboBoxNameStr));
+ 
+     void setHistory(const std::vector<Zstring>& history, size_t historyMax) { history_ = history; historyMax_ = historyMax; }
+     std::vector<Zstring> getHistory() const { return history_; }
+--- FreeFileSync/Source/ui/folder_history_box.h	2021-03-03 20:06:00.000000000 +0000
++++ FreeFileSync/Source/ui/folder_history_box.h	2021-03-17 00:43:34.005731439 +0000
+@@ -68,7 +68,7 @@
+                      const wxString choices[] = nullptr,
+                      long style = 0,
+                      const wxValidator& validator = wxDefaultValidator,
+-                     const wxString& name = wxASCII_STR(wxComboBoxNameStr));
++                     const wxString& name = wxString::FromAscii(wxComboBoxNameStr));
+ 
+     void setHistory(std::shared_ptr<HistoryList> sharedHistory) { sharedHistory_ = std::move(sharedHistory); }
+     std::shared_ptr<HistoryList> getHistory() { return sharedHistory_; }
+--- FreeFileSync/Source/ui/folder_selector.cpp	2021-03-03 20:06:01.000000000 +0000
++++ FreeFileSync/Source/ui/folder_selector.cpp	2021-03-17 00:43:34.005731439 +0000
+@@ -236,7 +236,7 @@
+ 
+     Zstring shellItemPath;
+     //default size? Windows: not implemented, Linux(GTK2): not implemented, macOS: not implemented => wxWidgets, what is this shit!?
+-    wxDirDialog folderSelector(parent_, _("Select a folder"), utfTo<wxString>(defaultFolderNative), wxDD_DEFAULT_STYLE | wxDD_SHOW_HIDDEN);
++    wxDirDialog folderSelector(parent_, _("Select a folder"), utfTo<wxString>(defaultFolderNative));
+     //GTK2: "Show hidden" is also available as a context menu option in the folder picker!
+     //It looks like wxDD_SHOW_HIDDEN only sets the default when opening for the first time!?
+     if (folderSelector.ShowModal() != wxID_OK)
+--- FreeFileSync/Source/ui/small_dlgs.cpp	2021-03-17 00:53:28.014536756 +0000
++++ FreeFileSync/Source/ui/small_dlgs.cpp	2021-03-17 00:46:53.668666002 +0000
+@@ -1682,7 +1682,6 @@
+     //setMainInstructionFont(*m_staticTextMain);
+ 
+     m_bitmapActivation->SetBitmap(loadImage("internet"));
+-    m_textCtrlOfflineActivationKey->ForceUpper();
+ 
+     setTextWithUrls(*m_richTextLastError, lastErrorMsg);
+     setTextWithUrls(*m_richTextManualActivationUrl, manualActivationUrl);
+--- wx+/bitmap_button.h	2021-03-03 20:06:00.000000000 +0000
++++ wx+/bitmap_button.h	2021-03-17 00:43:34.008731438 +0000
+@@ -26,7 +26,7 @@
+                      const wxSize& size           = wxDefaultSize,
+                      long style                   = 0,
+                      const wxValidator& validator = wxDefaultValidator,
+-                     const wxString& name         = wxASCII_STR(wxButtonNameStr)) :
++                     const wxString& name         = wxString::FromAscii(wxButtonNameStr)) :
+         wxBitmapButton(parent, id, wxNullBitmap, pos, size, style, validator, name)
+     {
+         SetLabel(label);
+--- wx+/choice_enum.h	2021-03-17 00:53:28.014536756 +0000
++++ wx+/choice_enum.h	2021-03-17 00:43:34.007731439 +0000
+@@ -81,7 +81,7 @@
+     {
+         ctrl.Clear();
+         for (auto item : items) {
+-            ctrl.Append(item);
++          ctrl.Append(item);
+         }
+         itemsSetLast = std::move(items);
+     }
+--- wx+/dc.h	2021-03-03 20:06:00.000000000 +0000
++++ wx+/dc.h	2021-03-17 00:43:34.007731439 +0000
+@@ -68,13 +68,6 @@
+ inline
+ int fastFromDIP(int d) //like wxWindow::FromDIP (but tied to primary monitor and buffered)
+ {
+-#ifndef wxHAVE_DPI_INDEPENDENT_PIXELS
+-#error why is wxHAVE_DPI_INDEPENDENT_PIXELS not defined?
+-#endif
+-    //GTK2 doesn't properly support high DPI: https://freefilesync.org/forum/viewtopic.php?t=6114
+-    //=> requires general fix at wxWidgets-level
+-
+-    //https://github.com/wxWidgets/wxWidgets/blob/d9d05c2bb201078f5e762c42458ca2f74af5b322/include/wx/window.h#L2060
+     return d; //e.g. macOS, GTK3
+ }
+ int fastFromDIP(double d) = delete;
+--- wx+/graph.h	2021-03-03 20:06:00.000000000 +0000
++++ wx+/graph.h	2021-03-17 00:43:34.008731438 +0000
+@@ -192,7 +192,7 @@
+             const wxPoint& pos   = wxDefaultPosition,
+             const wxSize& size   = wxDefaultSize,
+             long style           = wxTAB_TRAVERSAL | wxNO_BORDER,
+-            const wxString& name = wxASCII_STR(wxPanelNameStr));
++            const wxString& name = wxString::FromAscii(wxPanelNameStr));
+ 
+     class CurveAttributes
+     {
+--- wx+/grid.cpp	2021-03-03 20:06:02.000000000 +0000
++++ wx+/grid.cpp	2021-03-17 00:46:17.124677980 +0000
+@@ -263,7 +263,7 @@
+ {
+ public:
+     SubWindow(Grid& parent) :
+-        wxWindow(&parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxWANTS_CHARS | wxBORDER_NONE, wxASCII_STR(wxPanelNameStr)),
++        wxWindow(&parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxWANTS_CHARS | wxBORDER_NONE, wxString::FromAscii(wxPanelNameStr)),
+         parent_(parent)
+     {
+         Bind(wxEVT_PAINT, [this](wxPaintEvent& event) { onPaintEvent(event); });
+@@ -1357,7 +1357,7 @@
+             {
+                 if (overlapPix != 0)
+                 {
+-                    const double scrollSpeed = wnd_.ToDIP(overlapPix) * mouseDragSpeedIncScrollU; //unit: [scroll units / sec]
++                    const double scrollSpeed = 6; // wnd_.ToDIP(overlapPix) * mouseDragSpeedIncScrollU; //unit: [scroll units / sec]
+                     toScroll += scrollSpeed * deltaSecs;
+                 }
+                 else
+--- wx+/grid.h	2021-03-03 20:06:00.000000000 +0000
++++ wx+/grid.h	2021-03-17 00:43:34.008731438 +0000
+@@ -150,7 +150,7 @@
+          const wxPoint& pos   = wxDefaultPosition,
+          const wxSize& size   = wxDefaultSize,
+          long style           = wxTAB_TRAVERSAL | wxNO_BORDER,
+-         const wxString& name = wxASCII_STR(wxPanelNameStr));
++         const wxString& name = wxString::FromAscii(wxPanelNameStr));
+ 
+     size_t getRowCount() const;
+ 
+--- wx+/no_flicker.h	2021-03-03 20:06:00.000000000 +0000
++++ wx+/no_flicker.h	2021-03-17 00:43:34.008731438 +0000
+@@ -69,9 +69,6 @@
+     richCtrl.BeginSuppressUndo();
+     ZEN_ON_SCOPE_EXIT(richCtrl.EndSuppressUndo());
+ 
+-    //fix mouse scroll speed: why the FUCK is this even necessary!
+-    richCtrl.SetLineHeight(richCtrl.GetCharHeight());
+-
+     //get rid of margins and space between text blocks/"paragraphs"
+     richCtrl.SetMargins({0, 0});
+     richCtrl.BeginParagraphSpacing(0, 0);
+--- wx+/toggle_button.h	2021-03-03 20:06:00.000000000 +0000
++++ wx+/toggle_button.h	2021-03-17 00:43:34.008731438 +0000
+@@ -24,7 +24,7 @@
+                  const wxSize&      size = wxDefaultSize,
+                  long               style = 0,
+                  const wxValidator& validator = wxDefaultValidator,
+-                 const wxString&    name = wxASCII_STR(wxButtonNameStr)) :
++                 const wxString&    name = wxString::FromAscii(wxButtonNameStr)) :
+         wxBitmapButton(parent, id, bitmap, pos, size, style, validator, name) {}
+ 
+     //wxButton constructor
+@@ -35,7 +35,7 @@
+                  const wxSize&      size = wxDefaultSize,
+                  long               style = 0,
+                  const wxValidator& validator = wxDefaultValidator,
+-                 const wxString&    name = wxASCII_STR(wxButtonNameStr)) :
++                 const wxString&    name = wxString::FromAscii(wxButtonNameStr)) :
+         wxBitmapButton(parent, id, wxNullBitmap, pos, size, style, validator, name)
+     {
+         SetLabel(label);
diff --git a/srcpkgs/FreeFileSync/template b/srcpkgs/FreeFileSync/template
new file mode 100644
index 000000000000..4f2c7f2e34c3
--- /dev/null
+++ b/srcpkgs/FreeFileSync/template
@@ -0,0 +1,42 @@
+# Template file for 'FreeFileSync'
+pkgname=FreeFileSync
+version=11.8
+revision=1
+archs="i686 x86_64"
+create_wrksrc=yes
+build_style=gnu-makefile
+make_cmd="make -C ${pkgname}/Source exeName=FreeFileSync"
+hostmakedepends="unzip"
+makedepends="pkg-config libglib-devel wxWidgets-devel libcurl-devel gtk+-devel openssl-devel"
+depends="wxWidgets libcurl"
+short_desc="Backup software to synchronize files and folders"
+maintainer="Nicolas Porcel <nicolasporcel06@gmail.com>"
+license="GPL-3.0-or-later"
+homepage="https://freefilesync.org"
+distfiles="${homepage}/download/FreeFileSync_${version}_Source.zip"
+checksum=d105d4274da8cae42c44b171303f90092c5a7f9a8317e445bc5ceaf1872877a4
+
+nopie_files="/opt/${pkgname}/Bin/FreeFileSync /opt/${pkgname}/Bin/RealTimeSync"
+
+do_build() {
+	make ${makejobs} exeName=FreeFileSync -C FreeFileSync/Source
+	make ${makejobs} exeName=RealTimeSync -C FreeFileSync/Source/RealTimeSync
+	unzip FreeFileSync/Build/Resources/Icons.zip FreeFileSync.png RealTimeSync.png -d FreeFileSync/Build
+}
+
+do_install() {
+	vmkdir opt/${pkgname}
+	vcopy FreeFileSync/Build/Bin opt/${pkgname}
+	vcopy FreeFileSync/Build/Resources opt/${pkgname}
+
+	vmkdir usr/share/pixmaps
+	vinstall FreeFileSync/Build/FreeFileSync.png 0644 usr/share/pixmaps
+	vinstall FreeFileSync/Build/RealTimeSync.png 0644 usr/share/pixmaps
+
+	vmkdir usr/share/applications
+	vinstall ${FILESDIR}/FreeFileSync.desktop 0644 usr/share/applications
+	vinstall ${FILESDIR}/RealTimeSync.desktop 0644 usr/share/applications
+
+	vmkdir usr/bin
+	ln -s /opt/FreeFileSync/Bin/{FreeFileSync,RealTimeSync} ${DESTDIR}/usr/bin
+}

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PR PATCH] [Updated] New package: FreeFileSync-11.8
  2021-03-21 17:58 [PR PATCH] New package: FreeFileSync-11.8 Nicop06
  2021-03-21 20:19 ` [PR PATCH] [Updated] " Nicop06
@ 2021-03-21 20:22 ` Nicop06
  2021-03-21 20:27 ` Nicop06
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Nicop06 @ 2021-03-21 20:22 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1680 bytes --]

There is an updated pull request by Nicop06 against master on the void-packages repository

https://github.com/Nicop06/void-packages FreeFileSync
https://github.com/void-linux/void-packages/pull/29663

New package: FreeFileSync-11.8
This package is based on the AUR package freefilesync: https://aur.archlinux.org/packages/freefilesync/

<!-- Mark items with [x] where applicable -->

#### General
- [X] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [ ] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me
- [X] I generally don't use the affected packages but briefly tested this PR

<!--
If GitHub CI cannot be used to validate the build result (for example, if the
build is likely to take several hours), make sure to
[skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration).
When skipping CI, uncomment and fill out the following section.
Note: for builds that are likely to complete in less than 2 hours, it is not
acceptable to skip CI.
-->
<!-- 
#### Does it build and run successfully? 
(Please choose at least one native build and, if supported, at least one cross build. More are better.)
- [ ] I built this PR locally for my native architecture, (ARCH-LIBC)
- [ ] I built this PR locally for these architectures (if supported. mark crossbuilds):
  - [ ] aarch64-musl
  - [ ] armv7l
  - [ ] armv6l-musl
-->

A patch file from https://github.com/void-linux/void-packages/pull/29663.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-FreeFileSync-29663.patch --]
[-- Type: text/x-diff, Size: 21268 bytes --]

From e959c5d551b17bbb1b1a3c766c8bdd7bdb90786a Mon Sep 17 00:00:00 2001
From: Nicolas Porcel <nicolasporcel06@gmail.com>
Date: Wed, 17 Mar 2021 01:09:40 +0000
Subject: [PATCH] New package: FreeFileSync-11.8

---
 .../FreeFileSync/files/FreeFileSync.desktop   |  11 ++
 .../FreeFileSync/files/RealTimeSync.desktop   |  11 ++
 .../patches/reversions_11-1.patch             |  62 ++++++
 .../patches/revert_bulk_append.patch          |  51 +++++
 .../patches/revert_linkflags.patch            |  33 ++++
 .../patches/revert_wxgtk_3.1.0.patch          | 181 ++++++++++++++++++
 srcpkgs/FreeFileSync/template                 |  42 ++++
 7 files changed, 391 insertions(+)
 create mode 100755 srcpkgs/FreeFileSync/files/FreeFileSync.desktop
 create mode 100644 srcpkgs/FreeFileSync/files/RealTimeSync.desktop
 create mode 100644 srcpkgs/FreeFileSync/patches/reversions_11-1.patch
 create mode 100644 srcpkgs/FreeFileSync/patches/revert_bulk_append.patch
 create mode 100644 srcpkgs/FreeFileSync/patches/revert_linkflags.patch
 create mode 100644 srcpkgs/FreeFileSync/patches/revert_wxgtk_3.1.0.patch
 create mode 100644 srcpkgs/FreeFileSync/template

diff --git a/srcpkgs/FreeFileSync/files/FreeFileSync.desktop b/srcpkgs/FreeFileSync/files/FreeFileSync.desktop
new file mode 100755
index 000000000000..b94e4799d123
--- /dev/null
+++ b/srcpkgs/FreeFileSync/files/FreeFileSync.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Type=Application
+Name=FreeFileSync
+GenericName=Folder Comparison and Synchronization
+GenericName[de_DE]=Ordnervergleich und Synchronisation
+Exec=FreeFileSync %F
+Icon=/usr/share/pixmaps/FreeFileSync.png
+NoDisplay=false
+Terminal=false
+Categories=Utility;FileTools;
+StartupNotify=true
diff --git a/srcpkgs/FreeFileSync/files/RealTimeSync.desktop b/srcpkgs/FreeFileSync/files/RealTimeSync.desktop
new file mode 100644
index 000000000000..dfd533ffd88a
--- /dev/null
+++ b/srcpkgs/FreeFileSync/files/RealTimeSync.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Type=Application
+Name=RealTimeSync
+GenericName=Automated Synchronization
+GenericName[de_DE]=Automatisierte Synchronisation
+Exec=RealTimeSync %f
+Icon=/usr/share/pixmaps/RealTimeSync.png
+NoDisplay=false
+Terminal=false
+Categories=Utility;FileTools;
+StartupNotify=true
diff --git a/srcpkgs/FreeFileSync/patches/reversions_11-1.patch b/srcpkgs/FreeFileSync/patches/reversions_11-1.patch
new file mode 100644
index 000000000000..2d55eafe4748
--- /dev/null
+++ b/srcpkgs/FreeFileSync/patches/reversions_11-1.patch
@@ -0,0 +1,62 @@
+--- FreeFileSync/Source/ui/gui_status_handler.cpp
++++ FreeFileSync/Source/ui/gui_status_handler.cpp
+@@ -43,8 +43,8 @@ StatusHandlerTemporaryPanel::StatusHandlerTemporaryPanel(MainDialog& dlg,
+     mainDlg_.Update(); //don't wait until idle event!
+ 
+     //register keys
+-    mainDlg_.                Bind(wxEVT_CHAR_HOOK,              &StatusHandlerTemporaryPanel::onLocalKeyEvent, this);
+-    mainDlg_.m_buttonCancel->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &StatusHandlerTemporaryPanel::onAbortCompare,  this);
++    mainDlg_.Connect(wxEVT_CHAR_HOOK, wxKeyEventHandler(StatusHandlerTemporaryPanel::OnKeyPressed), nullptr, this);
++    mainDlg_.m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusHandlerTemporaryPanel::OnAbortCompare), nullptr, this);
+ }
+ 
+ 
+@@ -128,9 +128,8 @@ StatusHandlerTemporaryPanel::~StatusHandlerTemporaryPanel()
+     mainDlg_.auiMgr_.Update();
+ 
+     //unregister keys
+-    [[maybe_unused]] bool ubOk1 = mainDlg_.                Unbind(wxEVT_CHAR_HOOK,              &StatusHandlerTemporaryPanel::onLocalKeyEvent, this);
+-    [[maybe_unused]] bool ubOk2 = mainDlg_.m_buttonCancel->Unbind(wxEVT_COMMAND_BUTTON_CLICKED, &StatusHandlerTemporaryPanel::onAbortCompare,  this);
+-    assert(ubOk1 && ubOk2);
++    mainDlg_.Disconnect(wxEVT_CHAR_HOOK, wxKeyEventHandler(StatusHandlerTemporaryPanel::OnKeyPressed), nullptr, this);
++    mainDlg_.m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusHandlerTemporaryPanel::OnAbortCompare), nullptr, this);
+ 
+     mainDlg_.compareStatus_->teardown();
+ 
+@@ -314,20 +313,20 @@ void StatusHandlerTemporaryPanel::forceUiUpdateNoThrow()
+ }
+ 
+ 
+-void StatusHandlerTemporaryPanel::onLocalKeyEvent(wxKeyEvent& event)
++void StatusHandlerTemporaryPanel::OnKeyPressed(wxKeyEvent& event)
+ {
+     const int keyCode = event.GetKeyCode();
+     if (keyCode == WXK_ESCAPE)
+     {
+         wxCommandEvent dummy;
+-        onAbortCompare(dummy);
++        OnAbortCompare(dummy);
+     }
+ 
+     event.Skip();
+ }
+ 
+ 
+-void StatusHandlerTemporaryPanel::onAbortCompare(wxCommandEvent& event)
++void StatusHandlerTemporaryPanel::OnAbortCompare(wxCommandEvent& event)
+ {
+     userRequestAbort();
+ }
+--- FreeFileSync/Source/ui/gui_status_handler.h
++++ FreeFileSync/Source/ui/gui_status_handler.h
+@@ -41,8 +41,8 @@ public:
+     Result reportResults(); //noexcept!!
+ 
+ private:
+-    void onLocalKeyEvent(wxKeyEvent& event);
+-    void onAbortCompare(wxCommandEvent& event); //handle abort button click
++    void OnKeyPressed(wxKeyEvent& event);
++    void OnAbortCompare(wxCommandEvent& event); //handle abort button click
+     void showStatsPanel();
+ 
+     MainDialog& mainDlg_;
diff --git a/srcpkgs/FreeFileSync/patches/revert_bulk_append.patch b/srcpkgs/FreeFileSync/patches/revert_bulk_append.patch
new file mode 100644
index 000000000000..bf9e9288afe9
--- /dev/null
+++ b/srcpkgs/FreeFileSync/patches/revert_bulk_append.patch
@@ -0,0 +1,51 @@
+--- FreeFileSync/Source/ui/command_box.cpp	2020-06-18 19:16:52.000000000 +0200
++++ FreeFileSync/Source/ui/command_box.cpp	2020-06-21 10:45:23.265579023 +0200
+@@ -120,7 +120,8 @@
+ 
+     //this->Clear(); -> NO! emits yet another wxEVT_COMMAND_TEXT_UPDATED!!!
+     wxItemContainer::Clear(); //suffices to clear the selection items only!
+-    this->Append(items); //expensive as fuck! => only call when absolutely needed!
++    for (const wxString& item : items)
++        this->Append(item); 
+ 
+     //this->SetSelection(wxNOT_FOUND); //don't select anything
+     ChangeValue(value); //preserve main text!
+--- FreeFileSync/Source/ui/folder_history_box.cpp	2020-06-18 19:16:52.000000000 +0200
++++ FreeFileSync/Source/ui/folder_history_box.cpp	2020-06-21 10:45:23.265579023 +0200
+@@ -90,7 +90,8 @@
+ 
+     //this->Clear(); -> NO! emits yet another wxEVT_COMMAND_TEXT_UPDATED!!!
+     wxItemContainer::Clear(); //suffices to clear the selection items only!
+-    this->Append(items); //expensive as fuck! => only call when absolutely needed!
++    for (const wxString& item : items)
++        this->Append(item); 
+ 
+     //this->SetSelection(wxNOT_FOUND); //don't select anything
+     ChangeValue(folderPathPhrase); //preserve main text!
+--- FreeFileSync/Source/ui/small_dlgs.cpp	2020-06-18 19:16:52.000000000 +0200
++++ FreeFileSync/Source/ui/small_dlgs.cpp	2020-06-21 11:35:53.494412284 +0200
+@@ -293,7 +293,9 @@
+     {
+         showNotificationDialog(this, DialogInfoType::error, PopupDialogCfg().setDetailInstructions(e.toString()));
+     }
+-    m_listBoxGdriveUsers->Append(gdriveAccounts);
++    for (auto const& account: gdriveAccounts) {
++        m_listBoxGdriveUsers->Append(account);
++    }
+ 
+     //set default values for Google Drive: use first item of m_listBoxGdriveUsers
+     if (!gdriveAccounts.empty() && !acceptsItemPathPhraseGdrive(folderPathPhrase))
+--- wx+/choice_enum.h	2020-06-18 19:16:51.000000000 +0200
++++ wx+/choice_enum.h	2020-06-21 10:45:23.268912329 +0200
+@@ -79,7 +79,10 @@
+ 
+     if (items != itemsSetLast)
+     {
+-        ctrl.Set(items); //expensive as fuck! => only call when absolutely needed!
++        ctrl.Clear();
++        for (auto item : items) {
++            ctrl.Append(item);
++        }
+         itemsSetLast = std::move(items);
+     }
+     //-----------------------------------------------------------------
diff --git a/srcpkgs/FreeFileSync/patches/revert_linkflags.patch b/srcpkgs/FreeFileSync/patches/revert_linkflags.patch
new file mode 100644
index 000000000000..7e59d423f4a3
--- /dev/null
+++ b/srcpkgs/FreeFileSync/patches/revert_linkflags.patch
@@ -0,0 +1,33 @@
+--- FreeFileSync/Source/Makefile
++++ FreeFileSync/Source/Makefile
+@@ -4,7 +4,7 @@
+            -Wall -Wfatal-errors -Wmissing-include-dirs -Wswitch-enum -Wcast-align -Wshadow -Wnon-virtual-dtor \
+            -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread
+ 
+-linkFlags = -s -no-pie `wx-config --libs std, aui, richtext --debug=no` -pthread
++linkFlags = -s -no-pie `wx-config --libs std, aui, richtext --debug=no` -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
+
+--- FreeFileSync/Source/RealTimeSync/Makefile
++++ FreeFileSync/Source/RealTimeSync/Makefile
+@@ -4,10 +4,11 @@
+            -Wall -Wfatal-errors -Wmissing-include-dirs -Wswitch-enum -Wcast-align -Wshadow -Wnon-virtual-dtor \
+            -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread
+ 
+-linkFlags = -s -no-pie `wx-config --libs std, aui, richtext --debug=no` -pthread
++linkFlags = -s -no-pie `wx-config --libs std, aui, richtext --debug=no` -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 --git a/srcpkgs/FreeFileSync/patches/revert_wxgtk_3.1.0.patch b/srcpkgs/FreeFileSync/patches/revert_wxgtk_3.1.0.patch
new file mode 100644
index 000000000000..6e13fbd55a77
--- /dev/null
+++ b/srcpkgs/FreeFileSync/patches/revert_wxgtk_3.1.0.patch
@@ -0,0 +1,181 @@
+--- FreeFileSync/Source/RealTimeSync/folder_selector2.cpp	2021-03-03 20:06:02.000000000 +0000
++++ FreeFileSync/Source/RealTimeSync/folder_selector2.cpp	2021-03-17 00:43:34.001731441 +0000
+@@ -158,7 +158,7 @@
+     }
+ 
+     Zstring newFolderPath;
+-    wxDirDialog folderSelector(parent_, _("Select a folder"), utfTo<wxString>(defaultFolderPath), wxDD_DEFAULT_STYLE | wxDD_SHOW_HIDDEN);
++    wxDirDialog folderSelector(parent_, _("Select a folder"), utfTo<wxString>(defaultFolderPath));
+     if (folderSelector.ShowModal() != wxID_OK)
+         return;
+     newFolderPath = utfTo<Zstring>(folderSelector.GetPath());
+--- FreeFileSync/Source/afs/sftp.cpp	2021-03-03 20:06:01.000000000 +0000
++++ FreeFileSync/Source/afs/sftp.cpp	2021-03-17 00:43:34.003731440 +0000
+@@ -67,9 +67,9 @@
+ 
+ //attention: if operation fails due to time out, e.g. file copy, the cleanup code may hang, too => total delay = 2 x time out interval
+ 
+-const size_t SFTP_OPTIMAL_BLOCK_SIZE_READ  = 8 * MAX_SFTP_READ_SIZE;     //https://github.com/libssh2/libssh2/issues/90
+-const size_t SFTP_OPTIMAL_BLOCK_SIZE_WRITE = 8 * MAX_SFTP_OUTGOING_SIZE; //
+-static_assert(MAX_SFTP_READ_SIZE == 30000 && MAX_SFTP_OUTGOING_SIZE == 30000, "reevaluate optimal block sizes if these constants change!");
++const size_t SFTP_OPTIMAL_BLOCK_SIZE_READ  = 8 * 30000;     //https://github.com/libssh2/libssh2/issues/90
++const size_t SFTP_OPTIMAL_BLOCK_SIZE_WRITE = 8 * 30000; //
++static_assert(30000 == 30000 && 30000 == 30000, "reevaluate optimal block sizes if these constants change!");
+ 
+ /* Perf Test, Sourceforge frs, SFTP upload, compressed 25 MB test file:
+ 
+--- FreeFileSync/Source/ui/command_box.h	2021-03-03 20:06:00.000000000 +0000
++++ FreeFileSync/Source/ui/command_box.h	2021-03-17 00:43:34.005731439 +0000
+@@ -30,7 +30,7 @@
+                const wxString choices[] = nullptr,
+                long style = 0,
+                const wxValidator& validator = wxDefaultValidator,
+-               const wxString& name = wxASCII_STR(wxComboBoxNameStr));
++               const wxString& name = wxString::FromAscii(wxComboBoxNameStr));
+ 
+     void setHistory(const std::vector<Zstring>& history, size_t historyMax) { history_ = history; historyMax_ = historyMax; }
+     std::vector<Zstring> getHistory() const { return history_; }
+--- FreeFileSync/Source/ui/folder_history_box.h	2021-03-03 20:06:00.000000000 +0000
++++ FreeFileSync/Source/ui/folder_history_box.h	2021-03-17 00:43:34.005731439 +0000
+@@ -68,7 +68,7 @@
+                      const wxString choices[] = nullptr,
+                      long style = 0,
+                      const wxValidator& validator = wxDefaultValidator,
+-                     const wxString& name = wxASCII_STR(wxComboBoxNameStr));
++                     const wxString& name = wxString::FromAscii(wxComboBoxNameStr));
+ 
+     void setHistory(std::shared_ptr<HistoryList> sharedHistory) { sharedHistory_ = std::move(sharedHistory); }
+     std::shared_ptr<HistoryList> getHistory() { return sharedHistory_; }
+--- FreeFileSync/Source/ui/folder_selector.cpp	2021-03-03 20:06:01.000000000 +0000
++++ FreeFileSync/Source/ui/folder_selector.cpp	2021-03-17 00:43:34.005731439 +0000
+@@ -236,7 +236,7 @@
+ 
+     Zstring shellItemPath;
+     //default size? Windows: not implemented, Linux(GTK2): not implemented, macOS: not implemented => wxWidgets, what is this shit!?
+-    wxDirDialog folderSelector(parent_, _("Select a folder"), utfTo<wxString>(defaultFolderNative), wxDD_DEFAULT_STYLE | wxDD_SHOW_HIDDEN);
++    wxDirDialog folderSelector(parent_, _("Select a folder"), utfTo<wxString>(defaultFolderNative));
+     //GTK2: "Show hidden" is also available as a context menu option in the folder picker!
+     //It looks like wxDD_SHOW_HIDDEN only sets the default when opening for the first time!?
+     if (folderSelector.ShowModal() != wxID_OK)
+--- FreeFileSync/Source/ui/small_dlgs.cpp	2021-03-17 00:53:28.014536756 +0000
++++ FreeFileSync/Source/ui/small_dlgs.cpp	2021-03-17 00:46:53.668666002 +0000
+@@ -1682,7 +1682,6 @@
+     //setMainInstructionFont(*m_staticTextMain);
+ 
+     m_bitmapActivation->SetBitmap(loadImage("internet"));
+-    m_textCtrlOfflineActivationKey->ForceUpper();
+ 
+     setTextWithUrls(*m_richTextLastError, lastErrorMsg);
+     setTextWithUrls(*m_richTextManualActivationUrl, manualActivationUrl);
+--- wx+/bitmap_button.h	2021-03-03 20:06:00.000000000 +0000
++++ wx+/bitmap_button.h	2021-03-17 00:43:34.008731438 +0000
+@@ -26,7 +26,7 @@
+                      const wxSize& size           = wxDefaultSize,
+                      long style                   = 0,
+                      const wxValidator& validator = wxDefaultValidator,
+-                     const wxString& name         = wxASCII_STR(wxButtonNameStr)) :
++                     const wxString& name         = wxString::FromAscii(wxButtonNameStr)) :
+         wxBitmapButton(parent, id, wxNullBitmap, pos, size, style, validator, name)
+     {
+         SetLabel(label);
+--- wx+/choice_enum.h	2021-03-17 00:53:28.014536756 +0000
++++ wx+/choice_enum.h	2021-03-17 00:43:34.007731439 +0000
+@@ -81,7 +81,7 @@
+     {
+         ctrl.Clear();
+         for (auto item : items) {
+-            ctrl.Append(item);
++          ctrl.Append(item);
+         }
+         itemsSetLast = std::move(items);
+     }
+--- wx+/dc.h	2021-03-03 20:06:00.000000000 +0000
++++ wx+/dc.h	2021-03-17 00:43:34.007731439 +0000
+@@ -68,13 +68,6 @@
+ inline
+ int fastFromDIP(int d) //like wxWindow::FromDIP (but tied to primary monitor and buffered)
+ {
+-#ifndef wxHAVE_DPI_INDEPENDENT_PIXELS
+-#error why is wxHAVE_DPI_INDEPENDENT_PIXELS not defined?
+-#endif
+-    //GTK2 doesn't properly support high DPI: https://freefilesync.org/forum/viewtopic.php?t=6114
+-    //=> requires general fix at wxWidgets-level
+-
+-    //https://github.com/wxWidgets/wxWidgets/blob/d9d05c2bb201078f5e762c42458ca2f74af5b322/include/wx/window.h#L2060
+     return d; //e.g. macOS, GTK3
+ }
+ int fastFromDIP(double d) = delete;
+--- wx+/graph.h	2021-03-03 20:06:00.000000000 +0000
++++ wx+/graph.h	2021-03-17 00:43:34.008731438 +0000
+@@ -192,7 +192,7 @@
+             const wxPoint& pos   = wxDefaultPosition,
+             const wxSize& size   = wxDefaultSize,
+             long style           = wxTAB_TRAVERSAL | wxNO_BORDER,
+-            const wxString& name = wxASCII_STR(wxPanelNameStr));
++            const wxString& name = wxString::FromAscii(wxPanelNameStr));
+ 
+     class CurveAttributes
+     {
+--- wx+/grid.cpp	2021-03-03 20:06:02.000000000 +0000
++++ wx+/grid.cpp	2021-03-17 00:46:17.124677980 +0000
+@@ -263,7 +263,7 @@
+ {
+ public:
+     SubWindow(Grid& parent) :
+-        wxWindow(&parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxWANTS_CHARS | wxBORDER_NONE, wxASCII_STR(wxPanelNameStr)),
++        wxWindow(&parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxWANTS_CHARS | wxBORDER_NONE, wxString::FromAscii(wxPanelNameStr)),
+         parent_(parent)
+     {
+         Bind(wxEVT_PAINT, [this](wxPaintEvent& event) { onPaintEvent(event); });
+@@ -1357,7 +1357,7 @@
+             {
+                 if (overlapPix != 0)
+                 {
+-                    const double scrollSpeed = wnd_.ToDIP(overlapPix) * mouseDragSpeedIncScrollU; //unit: [scroll units / sec]
++                    const double scrollSpeed = 6; // wnd_.ToDIP(overlapPix) * mouseDragSpeedIncScrollU; //unit: [scroll units / sec]
+                     toScroll += scrollSpeed * deltaSecs;
+                 }
+                 else
+--- wx+/grid.h	2021-03-03 20:06:00.000000000 +0000
++++ wx+/grid.h	2021-03-17 00:43:34.008731438 +0000
+@@ -150,7 +150,7 @@
+          const wxPoint& pos   = wxDefaultPosition,
+          const wxSize& size   = wxDefaultSize,
+          long style           = wxTAB_TRAVERSAL | wxNO_BORDER,
+-         const wxString& name = wxASCII_STR(wxPanelNameStr));
++         const wxString& name = wxString::FromAscii(wxPanelNameStr));
+ 
+     size_t getRowCount() const;
+ 
+--- wx+/no_flicker.h	2021-03-03 20:06:00.000000000 +0000
++++ wx+/no_flicker.h	2021-03-17 00:43:34.008731438 +0000
+@@ -69,9 +69,6 @@
+     richCtrl.BeginSuppressUndo();
+     ZEN_ON_SCOPE_EXIT(richCtrl.EndSuppressUndo());
+ 
+-    //fix mouse scroll speed: why the FUCK is this even necessary!
+-    richCtrl.SetLineHeight(richCtrl.GetCharHeight());
+-
+     //get rid of margins and space between text blocks/"paragraphs"
+     richCtrl.SetMargins({0, 0});
+     richCtrl.BeginParagraphSpacing(0, 0);
+--- wx+/toggle_button.h	2021-03-03 20:06:00.000000000 +0000
++++ wx+/toggle_button.h	2021-03-17 00:43:34.008731438 +0000
+@@ -24,7 +24,7 @@
+                  const wxSize&      size = wxDefaultSize,
+                  long               style = 0,
+                  const wxValidator& validator = wxDefaultValidator,
+-                 const wxString&    name = wxASCII_STR(wxButtonNameStr)) :
++                 const wxString&    name = wxString::FromAscii(wxButtonNameStr)) :
+         wxBitmapButton(parent, id, bitmap, pos, size, style, validator, name) {}
+ 
+     //wxButton constructor
+@@ -35,7 +35,7 @@
+                  const wxSize&      size = wxDefaultSize,
+                  long               style = 0,
+                  const wxValidator& validator = wxDefaultValidator,
+-                 const wxString&    name = wxASCII_STR(wxButtonNameStr)) :
++                 const wxString&    name = wxString::FromAscii(wxButtonNameStr)) :
+         wxBitmapButton(parent, id, wxNullBitmap, pos, size, style, validator, name)
+     {
+         SetLabel(label);
diff --git a/srcpkgs/FreeFileSync/template b/srcpkgs/FreeFileSync/template
new file mode 100644
index 000000000000..c0cd2e79446d
--- /dev/null
+++ b/srcpkgs/FreeFileSync/template
@@ -0,0 +1,42 @@
+# Template file for 'FreeFileSync'
+pkgname=FreeFileSync
+version=11.8
+revision=1
+archs="i686 x86_64"
+create_wrksrc=yes
+build_style=gnu-makefile
+make_cmd="make -C ${pkgname}/Source exeName=FreeFileSync"
+hostmakedepends="unzip"
+makedepends="pkg-config libglib-devel wxWidgets-devel libcurl-devel gtk+-devel openssl-devel"
+depends="wxWidgets libcurl"
+short_desc="Backup software to synchronize files and folders"
+maintainer="Nicolas Porcel <nicolasporcel06@gmail.com>"
+license="GPL-3.0-or-later"
+homepage="https://freefilesync.org"
+distfiles="${homepage}/download/FreeFileSync_${version}_Source.zip"
+checksum=@acc96c465d14266930677c6a5989efeb92e6616c85ef05e72d9b5e5a41731f19
+
+nopie_files="/opt/${pkgname}/Bin/FreeFileSync /opt/${pkgname}/Bin/RealTimeSync"
+
+do_build() {
+	make ${makejobs} exeName=FreeFileSync -C FreeFileSync/Source
+	make ${makejobs} exeName=RealTimeSync -C FreeFileSync/Source/RealTimeSync
+	unzip FreeFileSync/Build/Resources/Icons.zip FreeFileSync.png RealTimeSync.png -d FreeFileSync/Build
+}
+
+do_install() {
+	vmkdir opt/${pkgname}
+	vcopy FreeFileSync/Build/Bin opt/${pkgname}
+	vcopy FreeFileSync/Build/Resources opt/${pkgname}
+
+	vmkdir usr/share/pixmaps
+	vinstall FreeFileSync/Build/FreeFileSync.png 0644 usr/share/pixmaps
+	vinstall FreeFileSync/Build/RealTimeSync.png 0644 usr/share/pixmaps
+
+	vmkdir usr/share/applications
+	vinstall ${FILESDIR}/FreeFileSync.desktop 0644 usr/share/applications
+	vinstall ${FILESDIR}/RealTimeSync.desktop 0644 usr/share/applications
+
+	vmkdir usr/bin
+	ln -s /opt/FreeFileSync/Bin/{FreeFileSync,RealTimeSync} ${DESTDIR}/usr/bin
+}

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PR PATCH] [Updated] New package: FreeFileSync-11.8
  2021-03-21 17:58 [PR PATCH] New package: FreeFileSync-11.8 Nicop06
  2021-03-21 20:19 ` [PR PATCH] [Updated] " Nicop06
  2021-03-21 20:22 ` Nicop06
@ 2021-03-21 20:27 ` Nicop06
  2021-03-21 20:32 ` Nicop06
  2021-03-21 20:38 ` [PR PATCH] [Closed]: " Nicop06
  4 siblings, 0 replies; 6+ messages in thread
From: Nicop06 @ 2021-03-21 20:27 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1680 bytes --]

There is an updated pull request by Nicop06 against master on the void-packages repository

https://github.com/Nicop06/void-packages FreeFileSync
https://github.com/void-linux/void-packages/pull/29663

New package: FreeFileSync-11.8
This package is based on the AUR package freefilesync: https://aur.archlinux.org/packages/freefilesync/

<!-- Mark items with [x] where applicable -->

#### General
- [X] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [ ] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me
- [X] I generally don't use the affected packages but briefly tested this PR

<!--
If GitHub CI cannot be used to validate the build result (for example, if the
build is likely to take several hours), make sure to
[skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration).
When skipping CI, uncomment and fill out the following section.
Note: for builds that are likely to complete in less than 2 hours, it is not
acceptable to skip CI.
-->
<!-- 
#### Does it build and run successfully? 
(Please choose at least one native build and, if supported, at least one cross build. More are better.)
- [ ] I built this PR locally for my native architecture, (ARCH-LIBC)
- [ ] I built this PR locally for these architectures (if supported. mark crossbuilds):
  - [ ] aarch64-musl
  - [ ] armv7l
  - [ ] armv6l-musl
-->

A patch file from https://github.com/void-linux/void-packages/pull/29663.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-FreeFileSync-29663.patch --]
[-- Type: text/x-diff, Size: 21267 bytes --]

From 0d979b8343df302009f0cbe8bfdee5cc4bcca025 Mon Sep 17 00:00:00 2001
From: Nicolas Porcel <nicolasporcel06@gmail.com>
Date: Wed, 17 Mar 2021 01:09:40 +0000
Subject: [PATCH] New package: FreeFileSync-11.8

---
 .../FreeFileSync/files/FreeFileSync.desktop   |  11 ++
 .../FreeFileSync/files/RealTimeSync.desktop   |  11 ++
 .../patches/reversions_11-1.patch             |  62 ++++++
 .../patches/revert_bulk_append.patch          |  51 +++++
 .../patches/revert_linkflags.patch            |  33 ++++
 .../patches/revert_wxgtk_3.1.0.patch          | 181 ++++++++++++++++++
 srcpkgs/FreeFileSync/template                 |  42 ++++
 7 files changed, 391 insertions(+)
 create mode 100755 srcpkgs/FreeFileSync/files/FreeFileSync.desktop
 create mode 100644 srcpkgs/FreeFileSync/files/RealTimeSync.desktop
 create mode 100644 srcpkgs/FreeFileSync/patches/reversions_11-1.patch
 create mode 100644 srcpkgs/FreeFileSync/patches/revert_bulk_append.patch
 create mode 100644 srcpkgs/FreeFileSync/patches/revert_linkflags.patch
 create mode 100644 srcpkgs/FreeFileSync/patches/revert_wxgtk_3.1.0.patch
 create mode 100644 srcpkgs/FreeFileSync/template

diff --git a/srcpkgs/FreeFileSync/files/FreeFileSync.desktop b/srcpkgs/FreeFileSync/files/FreeFileSync.desktop
new file mode 100755
index 000000000000..b94e4799d123
--- /dev/null
+++ b/srcpkgs/FreeFileSync/files/FreeFileSync.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Type=Application
+Name=FreeFileSync
+GenericName=Folder Comparison and Synchronization
+GenericName[de_DE]=Ordnervergleich und Synchronisation
+Exec=FreeFileSync %F
+Icon=/usr/share/pixmaps/FreeFileSync.png
+NoDisplay=false
+Terminal=false
+Categories=Utility;FileTools;
+StartupNotify=true
diff --git a/srcpkgs/FreeFileSync/files/RealTimeSync.desktop b/srcpkgs/FreeFileSync/files/RealTimeSync.desktop
new file mode 100644
index 000000000000..dfd533ffd88a
--- /dev/null
+++ b/srcpkgs/FreeFileSync/files/RealTimeSync.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Type=Application
+Name=RealTimeSync
+GenericName=Automated Synchronization
+GenericName[de_DE]=Automatisierte Synchronisation
+Exec=RealTimeSync %f
+Icon=/usr/share/pixmaps/RealTimeSync.png
+NoDisplay=false
+Terminal=false
+Categories=Utility;FileTools;
+StartupNotify=true
diff --git a/srcpkgs/FreeFileSync/patches/reversions_11-1.patch b/srcpkgs/FreeFileSync/patches/reversions_11-1.patch
new file mode 100644
index 000000000000..2d55eafe4748
--- /dev/null
+++ b/srcpkgs/FreeFileSync/patches/reversions_11-1.patch
@@ -0,0 +1,62 @@
+--- FreeFileSync/Source/ui/gui_status_handler.cpp
++++ FreeFileSync/Source/ui/gui_status_handler.cpp
+@@ -43,8 +43,8 @@ StatusHandlerTemporaryPanel::StatusHandlerTemporaryPanel(MainDialog& dlg,
+     mainDlg_.Update(); //don't wait until idle event!
+ 
+     //register keys
+-    mainDlg_.                Bind(wxEVT_CHAR_HOOK,              &StatusHandlerTemporaryPanel::onLocalKeyEvent, this);
+-    mainDlg_.m_buttonCancel->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &StatusHandlerTemporaryPanel::onAbortCompare,  this);
++    mainDlg_.Connect(wxEVT_CHAR_HOOK, wxKeyEventHandler(StatusHandlerTemporaryPanel::OnKeyPressed), nullptr, this);
++    mainDlg_.m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusHandlerTemporaryPanel::OnAbortCompare), nullptr, this);
+ }
+ 
+ 
+@@ -128,9 +128,8 @@ StatusHandlerTemporaryPanel::~StatusHandlerTemporaryPanel()
+     mainDlg_.auiMgr_.Update();
+ 
+     //unregister keys
+-    [[maybe_unused]] bool ubOk1 = mainDlg_.                Unbind(wxEVT_CHAR_HOOK,              &StatusHandlerTemporaryPanel::onLocalKeyEvent, this);
+-    [[maybe_unused]] bool ubOk2 = mainDlg_.m_buttonCancel->Unbind(wxEVT_COMMAND_BUTTON_CLICKED, &StatusHandlerTemporaryPanel::onAbortCompare,  this);
+-    assert(ubOk1 && ubOk2);
++    mainDlg_.Disconnect(wxEVT_CHAR_HOOK, wxKeyEventHandler(StatusHandlerTemporaryPanel::OnKeyPressed), nullptr, this);
++    mainDlg_.m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusHandlerTemporaryPanel::OnAbortCompare), nullptr, this);
+ 
+     mainDlg_.compareStatus_->teardown();
+ 
+@@ -314,20 +313,20 @@ void StatusHandlerTemporaryPanel::forceUiUpdateNoThrow()
+ }
+ 
+ 
+-void StatusHandlerTemporaryPanel::onLocalKeyEvent(wxKeyEvent& event)
++void StatusHandlerTemporaryPanel::OnKeyPressed(wxKeyEvent& event)
+ {
+     const int keyCode = event.GetKeyCode();
+     if (keyCode == WXK_ESCAPE)
+     {
+         wxCommandEvent dummy;
+-        onAbortCompare(dummy);
++        OnAbortCompare(dummy);
+     }
+ 
+     event.Skip();
+ }
+ 
+ 
+-void StatusHandlerTemporaryPanel::onAbortCompare(wxCommandEvent& event)
++void StatusHandlerTemporaryPanel::OnAbortCompare(wxCommandEvent& event)
+ {
+     userRequestAbort();
+ }
+--- FreeFileSync/Source/ui/gui_status_handler.h
++++ FreeFileSync/Source/ui/gui_status_handler.h
+@@ -41,8 +41,8 @@ public:
+     Result reportResults(); //noexcept!!
+ 
+ private:
+-    void onLocalKeyEvent(wxKeyEvent& event);
+-    void onAbortCompare(wxCommandEvent& event); //handle abort button click
++    void OnKeyPressed(wxKeyEvent& event);
++    void OnAbortCompare(wxCommandEvent& event); //handle abort button click
+     void showStatsPanel();
+ 
+     MainDialog& mainDlg_;
diff --git a/srcpkgs/FreeFileSync/patches/revert_bulk_append.patch b/srcpkgs/FreeFileSync/patches/revert_bulk_append.patch
new file mode 100644
index 000000000000..bf9e9288afe9
--- /dev/null
+++ b/srcpkgs/FreeFileSync/patches/revert_bulk_append.patch
@@ -0,0 +1,51 @@
+--- FreeFileSync/Source/ui/command_box.cpp	2020-06-18 19:16:52.000000000 +0200
++++ FreeFileSync/Source/ui/command_box.cpp	2020-06-21 10:45:23.265579023 +0200
+@@ -120,7 +120,8 @@
+ 
+     //this->Clear(); -> NO! emits yet another wxEVT_COMMAND_TEXT_UPDATED!!!
+     wxItemContainer::Clear(); //suffices to clear the selection items only!
+-    this->Append(items); //expensive as fuck! => only call when absolutely needed!
++    for (const wxString& item : items)
++        this->Append(item); 
+ 
+     //this->SetSelection(wxNOT_FOUND); //don't select anything
+     ChangeValue(value); //preserve main text!
+--- FreeFileSync/Source/ui/folder_history_box.cpp	2020-06-18 19:16:52.000000000 +0200
++++ FreeFileSync/Source/ui/folder_history_box.cpp	2020-06-21 10:45:23.265579023 +0200
+@@ -90,7 +90,8 @@
+ 
+     //this->Clear(); -> NO! emits yet another wxEVT_COMMAND_TEXT_UPDATED!!!
+     wxItemContainer::Clear(); //suffices to clear the selection items only!
+-    this->Append(items); //expensive as fuck! => only call when absolutely needed!
++    for (const wxString& item : items)
++        this->Append(item); 
+ 
+     //this->SetSelection(wxNOT_FOUND); //don't select anything
+     ChangeValue(folderPathPhrase); //preserve main text!
+--- FreeFileSync/Source/ui/small_dlgs.cpp	2020-06-18 19:16:52.000000000 +0200
++++ FreeFileSync/Source/ui/small_dlgs.cpp	2020-06-21 11:35:53.494412284 +0200
+@@ -293,7 +293,9 @@
+     {
+         showNotificationDialog(this, DialogInfoType::error, PopupDialogCfg().setDetailInstructions(e.toString()));
+     }
+-    m_listBoxGdriveUsers->Append(gdriveAccounts);
++    for (auto const& account: gdriveAccounts) {
++        m_listBoxGdriveUsers->Append(account);
++    }
+ 
+     //set default values for Google Drive: use first item of m_listBoxGdriveUsers
+     if (!gdriveAccounts.empty() && !acceptsItemPathPhraseGdrive(folderPathPhrase))
+--- wx+/choice_enum.h	2020-06-18 19:16:51.000000000 +0200
++++ wx+/choice_enum.h	2020-06-21 10:45:23.268912329 +0200
+@@ -79,7 +79,10 @@
+ 
+     if (items != itemsSetLast)
+     {
+-        ctrl.Set(items); //expensive as fuck! => only call when absolutely needed!
++        ctrl.Clear();
++        for (auto item : items) {
++            ctrl.Append(item);
++        }
+         itemsSetLast = std::move(items);
+     }
+     //-----------------------------------------------------------------
diff --git a/srcpkgs/FreeFileSync/patches/revert_linkflags.patch b/srcpkgs/FreeFileSync/patches/revert_linkflags.patch
new file mode 100644
index 000000000000..7e59d423f4a3
--- /dev/null
+++ b/srcpkgs/FreeFileSync/patches/revert_linkflags.patch
@@ -0,0 +1,33 @@
+--- FreeFileSync/Source/Makefile
++++ FreeFileSync/Source/Makefile
+@@ -4,7 +4,7 @@
+            -Wall -Wfatal-errors -Wmissing-include-dirs -Wswitch-enum -Wcast-align -Wshadow -Wnon-virtual-dtor \
+            -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread
+ 
+-linkFlags = -s -no-pie `wx-config --libs std, aui, richtext --debug=no` -pthread
++linkFlags = -s -no-pie `wx-config --libs std, aui, richtext --debug=no` -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
+
+--- FreeFileSync/Source/RealTimeSync/Makefile
++++ FreeFileSync/Source/RealTimeSync/Makefile
+@@ -4,10 +4,11 @@
+            -Wall -Wfatal-errors -Wmissing-include-dirs -Wswitch-enum -Wcast-align -Wshadow -Wnon-virtual-dtor \
+            -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread
+ 
+-linkFlags = -s -no-pie `wx-config --libs std, aui, richtext --debug=no` -pthread
++linkFlags = -s -no-pie `wx-config --libs std, aui, richtext --debug=no` -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 --git a/srcpkgs/FreeFileSync/patches/revert_wxgtk_3.1.0.patch b/srcpkgs/FreeFileSync/patches/revert_wxgtk_3.1.0.patch
new file mode 100644
index 000000000000..6e13fbd55a77
--- /dev/null
+++ b/srcpkgs/FreeFileSync/patches/revert_wxgtk_3.1.0.patch
@@ -0,0 +1,181 @@
+--- FreeFileSync/Source/RealTimeSync/folder_selector2.cpp	2021-03-03 20:06:02.000000000 +0000
++++ FreeFileSync/Source/RealTimeSync/folder_selector2.cpp	2021-03-17 00:43:34.001731441 +0000
+@@ -158,7 +158,7 @@
+     }
+ 
+     Zstring newFolderPath;
+-    wxDirDialog folderSelector(parent_, _("Select a folder"), utfTo<wxString>(defaultFolderPath), wxDD_DEFAULT_STYLE | wxDD_SHOW_HIDDEN);
++    wxDirDialog folderSelector(parent_, _("Select a folder"), utfTo<wxString>(defaultFolderPath));
+     if (folderSelector.ShowModal() != wxID_OK)
+         return;
+     newFolderPath = utfTo<Zstring>(folderSelector.GetPath());
+--- FreeFileSync/Source/afs/sftp.cpp	2021-03-03 20:06:01.000000000 +0000
++++ FreeFileSync/Source/afs/sftp.cpp	2021-03-17 00:43:34.003731440 +0000
+@@ -67,9 +67,9 @@
+ 
+ //attention: if operation fails due to time out, e.g. file copy, the cleanup code may hang, too => total delay = 2 x time out interval
+ 
+-const size_t SFTP_OPTIMAL_BLOCK_SIZE_READ  = 8 * MAX_SFTP_READ_SIZE;     //https://github.com/libssh2/libssh2/issues/90
+-const size_t SFTP_OPTIMAL_BLOCK_SIZE_WRITE = 8 * MAX_SFTP_OUTGOING_SIZE; //
+-static_assert(MAX_SFTP_READ_SIZE == 30000 && MAX_SFTP_OUTGOING_SIZE == 30000, "reevaluate optimal block sizes if these constants change!");
++const size_t SFTP_OPTIMAL_BLOCK_SIZE_READ  = 8 * 30000;     //https://github.com/libssh2/libssh2/issues/90
++const size_t SFTP_OPTIMAL_BLOCK_SIZE_WRITE = 8 * 30000; //
++static_assert(30000 == 30000 && 30000 == 30000, "reevaluate optimal block sizes if these constants change!");
+ 
+ /* Perf Test, Sourceforge frs, SFTP upload, compressed 25 MB test file:
+ 
+--- FreeFileSync/Source/ui/command_box.h	2021-03-03 20:06:00.000000000 +0000
++++ FreeFileSync/Source/ui/command_box.h	2021-03-17 00:43:34.005731439 +0000
+@@ -30,7 +30,7 @@
+                const wxString choices[] = nullptr,
+                long style = 0,
+                const wxValidator& validator = wxDefaultValidator,
+-               const wxString& name = wxASCII_STR(wxComboBoxNameStr));
++               const wxString& name = wxString::FromAscii(wxComboBoxNameStr));
+ 
+     void setHistory(const std::vector<Zstring>& history, size_t historyMax) { history_ = history; historyMax_ = historyMax; }
+     std::vector<Zstring> getHistory() const { return history_; }
+--- FreeFileSync/Source/ui/folder_history_box.h	2021-03-03 20:06:00.000000000 +0000
++++ FreeFileSync/Source/ui/folder_history_box.h	2021-03-17 00:43:34.005731439 +0000
+@@ -68,7 +68,7 @@
+                      const wxString choices[] = nullptr,
+                      long style = 0,
+                      const wxValidator& validator = wxDefaultValidator,
+-                     const wxString& name = wxASCII_STR(wxComboBoxNameStr));
++                     const wxString& name = wxString::FromAscii(wxComboBoxNameStr));
+ 
+     void setHistory(std::shared_ptr<HistoryList> sharedHistory) { sharedHistory_ = std::move(sharedHistory); }
+     std::shared_ptr<HistoryList> getHistory() { return sharedHistory_; }
+--- FreeFileSync/Source/ui/folder_selector.cpp	2021-03-03 20:06:01.000000000 +0000
++++ FreeFileSync/Source/ui/folder_selector.cpp	2021-03-17 00:43:34.005731439 +0000
+@@ -236,7 +236,7 @@
+ 
+     Zstring shellItemPath;
+     //default size? Windows: not implemented, Linux(GTK2): not implemented, macOS: not implemented => wxWidgets, what is this shit!?
+-    wxDirDialog folderSelector(parent_, _("Select a folder"), utfTo<wxString>(defaultFolderNative), wxDD_DEFAULT_STYLE | wxDD_SHOW_HIDDEN);
++    wxDirDialog folderSelector(parent_, _("Select a folder"), utfTo<wxString>(defaultFolderNative));
+     //GTK2: "Show hidden" is also available as a context menu option in the folder picker!
+     //It looks like wxDD_SHOW_HIDDEN only sets the default when opening for the first time!?
+     if (folderSelector.ShowModal() != wxID_OK)
+--- FreeFileSync/Source/ui/small_dlgs.cpp	2021-03-17 00:53:28.014536756 +0000
++++ FreeFileSync/Source/ui/small_dlgs.cpp	2021-03-17 00:46:53.668666002 +0000
+@@ -1682,7 +1682,6 @@
+     //setMainInstructionFont(*m_staticTextMain);
+ 
+     m_bitmapActivation->SetBitmap(loadImage("internet"));
+-    m_textCtrlOfflineActivationKey->ForceUpper();
+ 
+     setTextWithUrls(*m_richTextLastError, lastErrorMsg);
+     setTextWithUrls(*m_richTextManualActivationUrl, manualActivationUrl);
+--- wx+/bitmap_button.h	2021-03-03 20:06:00.000000000 +0000
++++ wx+/bitmap_button.h	2021-03-17 00:43:34.008731438 +0000
+@@ -26,7 +26,7 @@
+                      const wxSize& size           = wxDefaultSize,
+                      long style                   = 0,
+                      const wxValidator& validator = wxDefaultValidator,
+-                     const wxString& name         = wxASCII_STR(wxButtonNameStr)) :
++                     const wxString& name         = wxString::FromAscii(wxButtonNameStr)) :
+         wxBitmapButton(parent, id, wxNullBitmap, pos, size, style, validator, name)
+     {
+         SetLabel(label);
+--- wx+/choice_enum.h	2021-03-17 00:53:28.014536756 +0000
++++ wx+/choice_enum.h	2021-03-17 00:43:34.007731439 +0000
+@@ -81,7 +81,7 @@
+     {
+         ctrl.Clear();
+         for (auto item : items) {
+-            ctrl.Append(item);
++          ctrl.Append(item);
+         }
+         itemsSetLast = std::move(items);
+     }
+--- wx+/dc.h	2021-03-03 20:06:00.000000000 +0000
++++ wx+/dc.h	2021-03-17 00:43:34.007731439 +0000
+@@ -68,13 +68,6 @@
+ inline
+ int fastFromDIP(int d) //like wxWindow::FromDIP (but tied to primary monitor and buffered)
+ {
+-#ifndef wxHAVE_DPI_INDEPENDENT_PIXELS
+-#error why is wxHAVE_DPI_INDEPENDENT_PIXELS not defined?
+-#endif
+-    //GTK2 doesn't properly support high DPI: https://freefilesync.org/forum/viewtopic.php?t=6114
+-    //=> requires general fix at wxWidgets-level
+-
+-    //https://github.com/wxWidgets/wxWidgets/blob/d9d05c2bb201078f5e762c42458ca2f74af5b322/include/wx/window.h#L2060
+     return d; //e.g. macOS, GTK3
+ }
+ int fastFromDIP(double d) = delete;
+--- wx+/graph.h	2021-03-03 20:06:00.000000000 +0000
++++ wx+/graph.h	2021-03-17 00:43:34.008731438 +0000
+@@ -192,7 +192,7 @@
+             const wxPoint& pos   = wxDefaultPosition,
+             const wxSize& size   = wxDefaultSize,
+             long style           = wxTAB_TRAVERSAL | wxNO_BORDER,
+-            const wxString& name = wxASCII_STR(wxPanelNameStr));
++            const wxString& name = wxString::FromAscii(wxPanelNameStr));
+ 
+     class CurveAttributes
+     {
+--- wx+/grid.cpp	2021-03-03 20:06:02.000000000 +0000
++++ wx+/grid.cpp	2021-03-17 00:46:17.124677980 +0000
+@@ -263,7 +263,7 @@
+ {
+ public:
+     SubWindow(Grid& parent) :
+-        wxWindow(&parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxWANTS_CHARS | wxBORDER_NONE, wxASCII_STR(wxPanelNameStr)),
++        wxWindow(&parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxWANTS_CHARS | wxBORDER_NONE, wxString::FromAscii(wxPanelNameStr)),
+         parent_(parent)
+     {
+         Bind(wxEVT_PAINT, [this](wxPaintEvent& event) { onPaintEvent(event); });
+@@ -1357,7 +1357,7 @@
+             {
+                 if (overlapPix != 0)
+                 {
+-                    const double scrollSpeed = wnd_.ToDIP(overlapPix) * mouseDragSpeedIncScrollU; //unit: [scroll units / sec]
++                    const double scrollSpeed = 6; // wnd_.ToDIP(overlapPix) * mouseDragSpeedIncScrollU; //unit: [scroll units / sec]
+                     toScroll += scrollSpeed * deltaSecs;
+                 }
+                 else
+--- wx+/grid.h	2021-03-03 20:06:00.000000000 +0000
++++ wx+/grid.h	2021-03-17 00:43:34.008731438 +0000
+@@ -150,7 +150,7 @@
+          const wxPoint& pos   = wxDefaultPosition,
+          const wxSize& size   = wxDefaultSize,
+          long style           = wxTAB_TRAVERSAL | wxNO_BORDER,
+-         const wxString& name = wxASCII_STR(wxPanelNameStr));
++         const wxString& name = wxString::FromAscii(wxPanelNameStr));
+ 
+     size_t getRowCount() const;
+ 
+--- wx+/no_flicker.h	2021-03-03 20:06:00.000000000 +0000
++++ wx+/no_flicker.h	2021-03-17 00:43:34.008731438 +0000
+@@ -69,9 +69,6 @@
+     richCtrl.BeginSuppressUndo();
+     ZEN_ON_SCOPE_EXIT(richCtrl.EndSuppressUndo());
+ 
+-    //fix mouse scroll speed: why the FUCK is this even necessary!
+-    richCtrl.SetLineHeight(richCtrl.GetCharHeight());
+-
+     //get rid of margins and space between text blocks/"paragraphs"
+     richCtrl.SetMargins({0, 0});
+     richCtrl.BeginParagraphSpacing(0, 0);
+--- wx+/toggle_button.h	2021-03-03 20:06:00.000000000 +0000
++++ wx+/toggle_button.h	2021-03-17 00:43:34.008731438 +0000
+@@ -24,7 +24,7 @@
+                  const wxSize&      size = wxDefaultSize,
+                  long               style = 0,
+                  const wxValidator& validator = wxDefaultValidator,
+-                 const wxString&    name = wxASCII_STR(wxButtonNameStr)) :
++                 const wxString&    name = wxString::FromAscii(wxButtonNameStr)) :
+         wxBitmapButton(parent, id, bitmap, pos, size, style, validator, name) {}
+ 
+     //wxButton constructor
+@@ -35,7 +35,7 @@
+                  const wxSize&      size = wxDefaultSize,
+                  long               style = 0,
+                  const wxValidator& validator = wxDefaultValidator,
+-                 const wxString&    name = wxASCII_STR(wxButtonNameStr)) :
++                 const wxString&    name = wxString::FromAscii(wxButtonNameStr)) :
+         wxBitmapButton(parent, id, wxNullBitmap, pos, size, style, validator, name)
+     {
+         SetLabel(label);
diff --git a/srcpkgs/FreeFileSync/template b/srcpkgs/FreeFileSync/template
new file mode 100644
index 000000000000..4f2c7f2e34c3
--- /dev/null
+++ b/srcpkgs/FreeFileSync/template
@@ -0,0 +1,42 @@
+# Template file for 'FreeFileSync'
+pkgname=FreeFileSync
+version=11.8
+revision=1
+archs="i686 x86_64"
+create_wrksrc=yes
+build_style=gnu-makefile
+make_cmd="make -C ${pkgname}/Source exeName=FreeFileSync"
+hostmakedepends="unzip"
+makedepends="pkg-config libglib-devel wxWidgets-devel libcurl-devel gtk+-devel openssl-devel"
+depends="wxWidgets libcurl"
+short_desc="Backup software to synchronize files and folders"
+maintainer="Nicolas Porcel <nicolasporcel06@gmail.com>"
+license="GPL-3.0-or-later"
+homepage="https://freefilesync.org"
+distfiles="${homepage}/download/FreeFileSync_${version}_Source.zip"
+checksum=d105d4274da8cae42c44b171303f90092c5a7f9a8317e445bc5ceaf1872877a4
+
+nopie_files="/opt/${pkgname}/Bin/FreeFileSync /opt/${pkgname}/Bin/RealTimeSync"
+
+do_build() {
+	make ${makejobs} exeName=FreeFileSync -C FreeFileSync/Source
+	make ${makejobs} exeName=RealTimeSync -C FreeFileSync/Source/RealTimeSync
+	unzip FreeFileSync/Build/Resources/Icons.zip FreeFileSync.png RealTimeSync.png -d FreeFileSync/Build
+}
+
+do_install() {
+	vmkdir opt/${pkgname}
+	vcopy FreeFileSync/Build/Bin opt/${pkgname}
+	vcopy FreeFileSync/Build/Resources opt/${pkgname}
+
+	vmkdir usr/share/pixmaps
+	vinstall FreeFileSync/Build/FreeFileSync.png 0644 usr/share/pixmaps
+	vinstall FreeFileSync/Build/RealTimeSync.png 0644 usr/share/pixmaps
+
+	vmkdir usr/share/applications
+	vinstall ${FILESDIR}/FreeFileSync.desktop 0644 usr/share/applications
+	vinstall ${FILESDIR}/RealTimeSync.desktop 0644 usr/share/applications
+
+	vmkdir usr/bin
+	ln -s /opt/FreeFileSync/Bin/{FreeFileSync,RealTimeSync} ${DESTDIR}/usr/bin
+}

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PR PATCH] [Updated] New package: FreeFileSync-11.8
  2021-03-21 17:58 [PR PATCH] New package: FreeFileSync-11.8 Nicop06
                   ` (2 preceding siblings ...)
  2021-03-21 20:27 ` Nicop06
@ 2021-03-21 20:32 ` Nicop06
  2021-03-21 20:38 ` [PR PATCH] [Closed]: " Nicop06
  4 siblings, 0 replies; 6+ messages in thread
From: Nicop06 @ 2021-03-21 20:32 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1680 bytes --]

There is an updated pull request by Nicop06 against master on the void-packages repository

https://github.com/Nicop06/void-packages FreeFileSync
https://github.com/void-linux/void-packages/pull/29663

New package: FreeFileSync-11.8
This package is based on the AUR package freefilesync: https://aur.archlinux.org/packages/freefilesync/

<!-- Mark items with [x] where applicable -->

#### General
- [X] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [ ] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me
- [X] I generally don't use the affected packages but briefly tested this PR

<!--
If GitHub CI cannot be used to validate the build result (for example, if the
build is likely to take several hours), make sure to
[skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration).
When skipping CI, uncomment and fill out the following section.
Note: for builds that are likely to complete in less than 2 hours, it is not
acceptable to skip CI.
-->
<!-- 
#### Does it build and run successfully? 
(Please choose at least one native build and, if supported, at least one cross build. More are better.)
- [ ] I built this PR locally for my native architecture, (ARCH-LIBC)
- [ ] I built this PR locally for these architectures (if supported. mark crossbuilds):
  - [ ] aarch64-musl
  - [ ] armv7l
  - [ ] armv6l-musl
-->

A patch file from https://github.com/void-linux/void-packages/pull/29663.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-FreeFileSync-29663.patch --]
[-- Type: text/x-diff, Size: 21267 bytes --]

From d9549d41b30b29b23a8aac29008eca2dd382a509 Mon Sep 17 00:00:00 2001
From: Nicolas Porcel <nicolasporcel06@gmail.com>
Date: Wed, 17 Mar 2021 01:09:40 +0000
Subject: [PATCH] New package: FreeFileSync-11.8

---
 .../FreeFileSync/files/FreeFileSync.desktop   |  11 ++
 .../FreeFileSync/files/RealTimeSync.desktop   |  11 ++
 .../patches/reversions_11-1.patch             |  62 ++++++
 .../patches/revert_bulk_append.patch          |  51 +++++
 .../patches/revert_linkflags.patch            |  33 ++++
 .../patches/revert_wxgtk_3.1.0.patch          | 181 ++++++++++++++++++
 srcpkgs/FreeFileSync/template                 |  42 ++++
 7 files changed, 391 insertions(+)
 create mode 100755 srcpkgs/FreeFileSync/files/FreeFileSync.desktop
 create mode 100644 srcpkgs/FreeFileSync/files/RealTimeSync.desktop
 create mode 100644 srcpkgs/FreeFileSync/patches/reversions_11-1.patch
 create mode 100644 srcpkgs/FreeFileSync/patches/revert_bulk_append.patch
 create mode 100644 srcpkgs/FreeFileSync/patches/revert_linkflags.patch
 create mode 100644 srcpkgs/FreeFileSync/patches/revert_wxgtk_3.1.0.patch
 create mode 100644 srcpkgs/FreeFileSync/template

diff --git a/srcpkgs/FreeFileSync/files/FreeFileSync.desktop b/srcpkgs/FreeFileSync/files/FreeFileSync.desktop
new file mode 100755
index 000000000000..b94e4799d123
--- /dev/null
+++ b/srcpkgs/FreeFileSync/files/FreeFileSync.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Type=Application
+Name=FreeFileSync
+GenericName=Folder Comparison and Synchronization
+GenericName[de_DE]=Ordnervergleich und Synchronisation
+Exec=FreeFileSync %F
+Icon=/usr/share/pixmaps/FreeFileSync.png
+NoDisplay=false
+Terminal=false
+Categories=Utility;FileTools;
+StartupNotify=true
diff --git a/srcpkgs/FreeFileSync/files/RealTimeSync.desktop b/srcpkgs/FreeFileSync/files/RealTimeSync.desktop
new file mode 100644
index 000000000000..dfd533ffd88a
--- /dev/null
+++ b/srcpkgs/FreeFileSync/files/RealTimeSync.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Type=Application
+Name=RealTimeSync
+GenericName=Automated Synchronization
+GenericName[de_DE]=Automatisierte Synchronisation
+Exec=RealTimeSync %f
+Icon=/usr/share/pixmaps/RealTimeSync.png
+NoDisplay=false
+Terminal=false
+Categories=Utility;FileTools;
+StartupNotify=true
diff --git a/srcpkgs/FreeFileSync/patches/reversions_11-1.patch b/srcpkgs/FreeFileSync/patches/reversions_11-1.patch
new file mode 100644
index 000000000000..2d55eafe4748
--- /dev/null
+++ b/srcpkgs/FreeFileSync/patches/reversions_11-1.patch
@@ -0,0 +1,62 @@
+--- FreeFileSync/Source/ui/gui_status_handler.cpp
++++ FreeFileSync/Source/ui/gui_status_handler.cpp
+@@ -43,8 +43,8 @@ StatusHandlerTemporaryPanel::StatusHandlerTemporaryPanel(MainDialog& dlg,
+     mainDlg_.Update(); //don't wait until idle event!
+ 
+     //register keys
+-    mainDlg_.                Bind(wxEVT_CHAR_HOOK,              &StatusHandlerTemporaryPanel::onLocalKeyEvent, this);
+-    mainDlg_.m_buttonCancel->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &StatusHandlerTemporaryPanel::onAbortCompare,  this);
++    mainDlg_.Connect(wxEVT_CHAR_HOOK, wxKeyEventHandler(StatusHandlerTemporaryPanel::OnKeyPressed), nullptr, this);
++    mainDlg_.m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusHandlerTemporaryPanel::OnAbortCompare), nullptr, this);
+ }
+ 
+ 
+@@ -128,9 +128,8 @@ StatusHandlerTemporaryPanel::~StatusHandlerTemporaryPanel()
+     mainDlg_.auiMgr_.Update();
+ 
+     //unregister keys
+-    [[maybe_unused]] bool ubOk1 = mainDlg_.                Unbind(wxEVT_CHAR_HOOK,              &StatusHandlerTemporaryPanel::onLocalKeyEvent, this);
+-    [[maybe_unused]] bool ubOk2 = mainDlg_.m_buttonCancel->Unbind(wxEVT_COMMAND_BUTTON_CLICKED, &StatusHandlerTemporaryPanel::onAbortCompare,  this);
+-    assert(ubOk1 && ubOk2);
++    mainDlg_.Disconnect(wxEVT_CHAR_HOOK, wxKeyEventHandler(StatusHandlerTemporaryPanel::OnKeyPressed), nullptr, this);
++    mainDlg_.m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusHandlerTemporaryPanel::OnAbortCompare), nullptr, this);
+ 
+     mainDlg_.compareStatus_->teardown();
+ 
+@@ -314,20 +313,20 @@ void StatusHandlerTemporaryPanel::forceUiUpdateNoThrow()
+ }
+ 
+ 
+-void StatusHandlerTemporaryPanel::onLocalKeyEvent(wxKeyEvent& event)
++void StatusHandlerTemporaryPanel::OnKeyPressed(wxKeyEvent& event)
+ {
+     const int keyCode = event.GetKeyCode();
+     if (keyCode == WXK_ESCAPE)
+     {
+         wxCommandEvent dummy;
+-        onAbortCompare(dummy);
++        OnAbortCompare(dummy);
+     }
+ 
+     event.Skip();
+ }
+ 
+ 
+-void StatusHandlerTemporaryPanel::onAbortCompare(wxCommandEvent& event)
++void StatusHandlerTemporaryPanel::OnAbortCompare(wxCommandEvent& event)
+ {
+     userRequestAbort();
+ }
+--- FreeFileSync/Source/ui/gui_status_handler.h
++++ FreeFileSync/Source/ui/gui_status_handler.h
+@@ -41,8 +41,8 @@ public:
+     Result reportResults(); //noexcept!!
+ 
+ private:
+-    void onLocalKeyEvent(wxKeyEvent& event);
+-    void onAbortCompare(wxCommandEvent& event); //handle abort button click
++    void OnKeyPressed(wxKeyEvent& event);
++    void OnAbortCompare(wxCommandEvent& event); //handle abort button click
+     void showStatsPanel();
+ 
+     MainDialog& mainDlg_;
diff --git a/srcpkgs/FreeFileSync/patches/revert_bulk_append.patch b/srcpkgs/FreeFileSync/patches/revert_bulk_append.patch
new file mode 100644
index 000000000000..bf9e9288afe9
--- /dev/null
+++ b/srcpkgs/FreeFileSync/patches/revert_bulk_append.patch
@@ -0,0 +1,51 @@
+--- FreeFileSync/Source/ui/command_box.cpp	2020-06-18 19:16:52.000000000 +0200
++++ FreeFileSync/Source/ui/command_box.cpp	2020-06-21 10:45:23.265579023 +0200
+@@ -120,7 +120,8 @@
+ 
+     //this->Clear(); -> NO! emits yet another wxEVT_COMMAND_TEXT_UPDATED!!!
+     wxItemContainer::Clear(); //suffices to clear the selection items only!
+-    this->Append(items); //expensive as fuck! => only call when absolutely needed!
++    for (const wxString& item : items)
++        this->Append(item); 
+ 
+     //this->SetSelection(wxNOT_FOUND); //don't select anything
+     ChangeValue(value); //preserve main text!
+--- FreeFileSync/Source/ui/folder_history_box.cpp	2020-06-18 19:16:52.000000000 +0200
++++ FreeFileSync/Source/ui/folder_history_box.cpp	2020-06-21 10:45:23.265579023 +0200
+@@ -90,7 +90,8 @@
+ 
+     //this->Clear(); -> NO! emits yet another wxEVT_COMMAND_TEXT_UPDATED!!!
+     wxItemContainer::Clear(); //suffices to clear the selection items only!
+-    this->Append(items); //expensive as fuck! => only call when absolutely needed!
++    for (const wxString& item : items)
++        this->Append(item); 
+ 
+     //this->SetSelection(wxNOT_FOUND); //don't select anything
+     ChangeValue(folderPathPhrase); //preserve main text!
+--- FreeFileSync/Source/ui/small_dlgs.cpp	2020-06-18 19:16:52.000000000 +0200
++++ FreeFileSync/Source/ui/small_dlgs.cpp	2020-06-21 11:35:53.494412284 +0200
+@@ -293,7 +293,9 @@
+     {
+         showNotificationDialog(this, DialogInfoType::error, PopupDialogCfg().setDetailInstructions(e.toString()));
+     }
+-    m_listBoxGdriveUsers->Append(gdriveAccounts);
++    for (auto const& account: gdriveAccounts) {
++        m_listBoxGdriveUsers->Append(account);
++    }
+ 
+     //set default values for Google Drive: use first item of m_listBoxGdriveUsers
+     if (!gdriveAccounts.empty() && !acceptsItemPathPhraseGdrive(folderPathPhrase))
+--- wx+/choice_enum.h	2020-06-18 19:16:51.000000000 +0200
++++ wx+/choice_enum.h	2020-06-21 10:45:23.268912329 +0200
+@@ -79,7 +79,10 @@
+ 
+     if (items != itemsSetLast)
+     {
+-        ctrl.Set(items); //expensive as fuck! => only call when absolutely needed!
++        ctrl.Clear();
++        for (auto item : items) {
++            ctrl.Append(item);
++        }
+         itemsSetLast = std::move(items);
+     }
+     //-----------------------------------------------------------------
diff --git a/srcpkgs/FreeFileSync/patches/revert_linkflags.patch b/srcpkgs/FreeFileSync/patches/revert_linkflags.patch
new file mode 100644
index 000000000000..7e59d423f4a3
--- /dev/null
+++ b/srcpkgs/FreeFileSync/patches/revert_linkflags.patch
@@ -0,0 +1,33 @@
+--- FreeFileSync/Source/Makefile
++++ FreeFileSync/Source/Makefile
+@@ -4,7 +4,7 @@
+            -Wall -Wfatal-errors -Wmissing-include-dirs -Wswitch-enum -Wcast-align -Wshadow -Wnon-virtual-dtor \
+            -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread
+ 
+-linkFlags = -s -no-pie `wx-config --libs std, aui, richtext --debug=no` -pthread
++linkFlags = -s -no-pie `wx-config --libs std, aui, richtext --debug=no` -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
+
+--- FreeFileSync/Source/RealTimeSync/Makefile
++++ FreeFileSync/Source/RealTimeSync/Makefile
+@@ -4,10 +4,11 @@
+            -Wall -Wfatal-errors -Wmissing-include-dirs -Wswitch-enum -Wcast-align -Wshadow -Wnon-virtual-dtor \
+            -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread
+ 
+-linkFlags = -s -no-pie `wx-config --libs std, aui, richtext --debug=no` -pthread
++linkFlags = -s -no-pie `wx-config --libs std, aui, richtext --debug=no` -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 --git a/srcpkgs/FreeFileSync/patches/revert_wxgtk_3.1.0.patch b/srcpkgs/FreeFileSync/patches/revert_wxgtk_3.1.0.patch
new file mode 100644
index 000000000000..6e13fbd55a77
--- /dev/null
+++ b/srcpkgs/FreeFileSync/patches/revert_wxgtk_3.1.0.patch
@@ -0,0 +1,181 @@
+--- FreeFileSync/Source/RealTimeSync/folder_selector2.cpp	2021-03-03 20:06:02.000000000 +0000
++++ FreeFileSync/Source/RealTimeSync/folder_selector2.cpp	2021-03-17 00:43:34.001731441 +0000
+@@ -158,7 +158,7 @@
+     }
+ 
+     Zstring newFolderPath;
+-    wxDirDialog folderSelector(parent_, _("Select a folder"), utfTo<wxString>(defaultFolderPath), wxDD_DEFAULT_STYLE | wxDD_SHOW_HIDDEN);
++    wxDirDialog folderSelector(parent_, _("Select a folder"), utfTo<wxString>(defaultFolderPath));
+     if (folderSelector.ShowModal() != wxID_OK)
+         return;
+     newFolderPath = utfTo<Zstring>(folderSelector.GetPath());
+--- FreeFileSync/Source/afs/sftp.cpp	2021-03-03 20:06:01.000000000 +0000
++++ FreeFileSync/Source/afs/sftp.cpp	2021-03-17 00:43:34.003731440 +0000
+@@ -67,9 +67,9 @@
+ 
+ //attention: if operation fails due to time out, e.g. file copy, the cleanup code may hang, too => total delay = 2 x time out interval
+ 
+-const size_t SFTP_OPTIMAL_BLOCK_SIZE_READ  = 8 * MAX_SFTP_READ_SIZE;     //https://github.com/libssh2/libssh2/issues/90
+-const size_t SFTP_OPTIMAL_BLOCK_SIZE_WRITE = 8 * MAX_SFTP_OUTGOING_SIZE; //
+-static_assert(MAX_SFTP_READ_SIZE == 30000 && MAX_SFTP_OUTGOING_SIZE == 30000, "reevaluate optimal block sizes if these constants change!");
++const size_t SFTP_OPTIMAL_BLOCK_SIZE_READ  = 8 * 30000;     //https://github.com/libssh2/libssh2/issues/90
++const size_t SFTP_OPTIMAL_BLOCK_SIZE_WRITE = 8 * 30000; //
++static_assert(30000 == 30000 && 30000 == 30000, "reevaluate optimal block sizes if these constants change!");
+ 
+ /* Perf Test, Sourceforge frs, SFTP upload, compressed 25 MB test file:
+ 
+--- FreeFileSync/Source/ui/command_box.h	2021-03-03 20:06:00.000000000 +0000
++++ FreeFileSync/Source/ui/command_box.h	2021-03-17 00:43:34.005731439 +0000
+@@ -30,7 +30,7 @@
+                const wxString choices[] = nullptr,
+                long style = 0,
+                const wxValidator& validator = wxDefaultValidator,
+-               const wxString& name = wxASCII_STR(wxComboBoxNameStr));
++               const wxString& name = wxString::FromAscii(wxComboBoxNameStr));
+ 
+     void setHistory(const std::vector<Zstring>& history, size_t historyMax) { history_ = history; historyMax_ = historyMax; }
+     std::vector<Zstring> getHistory() const { return history_; }
+--- FreeFileSync/Source/ui/folder_history_box.h	2021-03-03 20:06:00.000000000 +0000
++++ FreeFileSync/Source/ui/folder_history_box.h	2021-03-17 00:43:34.005731439 +0000
+@@ -68,7 +68,7 @@
+                      const wxString choices[] = nullptr,
+                      long style = 0,
+                      const wxValidator& validator = wxDefaultValidator,
+-                     const wxString& name = wxASCII_STR(wxComboBoxNameStr));
++                     const wxString& name = wxString::FromAscii(wxComboBoxNameStr));
+ 
+     void setHistory(std::shared_ptr<HistoryList> sharedHistory) { sharedHistory_ = std::move(sharedHistory); }
+     std::shared_ptr<HistoryList> getHistory() { return sharedHistory_; }
+--- FreeFileSync/Source/ui/folder_selector.cpp	2021-03-03 20:06:01.000000000 +0000
++++ FreeFileSync/Source/ui/folder_selector.cpp	2021-03-17 00:43:34.005731439 +0000
+@@ -236,7 +236,7 @@
+ 
+     Zstring shellItemPath;
+     //default size? Windows: not implemented, Linux(GTK2): not implemented, macOS: not implemented => wxWidgets, what is this shit!?
+-    wxDirDialog folderSelector(parent_, _("Select a folder"), utfTo<wxString>(defaultFolderNative), wxDD_DEFAULT_STYLE | wxDD_SHOW_HIDDEN);
++    wxDirDialog folderSelector(parent_, _("Select a folder"), utfTo<wxString>(defaultFolderNative));
+     //GTK2: "Show hidden" is also available as a context menu option in the folder picker!
+     //It looks like wxDD_SHOW_HIDDEN only sets the default when opening for the first time!?
+     if (folderSelector.ShowModal() != wxID_OK)
+--- FreeFileSync/Source/ui/small_dlgs.cpp	2021-03-17 00:53:28.014536756 +0000
++++ FreeFileSync/Source/ui/small_dlgs.cpp	2021-03-17 00:46:53.668666002 +0000
+@@ -1682,7 +1682,6 @@
+     //setMainInstructionFont(*m_staticTextMain);
+ 
+     m_bitmapActivation->SetBitmap(loadImage("internet"));
+-    m_textCtrlOfflineActivationKey->ForceUpper();
+ 
+     setTextWithUrls(*m_richTextLastError, lastErrorMsg);
+     setTextWithUrls(*m_richTextManualActivationUrl, manualActivationUrl);
+--- wx+/bitmap_button.h	2021-03-03 20:06:00.000000000 +0000
++++ wx+/bitmap_button.h	2021-03-17 00:43:34.008731438 +0000
+@@ -26,7 +26,7 @@
+                      const wxSize& size           = wxDefaultSize,
+                      long style                   = 0,
+                      const wxValidator& validator = wxDefaultValidator,
+-                     const wxString& name         = wxASCII_STR(wxButtonNameStr)) :
++                     const wxString& name         = wxString::FromAscii(wxButtonNameStr)) :
+         wxBitmapButton(parent, id, wxNullBitmap, pos, size, style, validator, name)
+     {
+         SetLabel(label);
+--- wx+/choice_enum.h	2021-03-17 00:53:28.014536756 +0000
++++ wx+/choice_enum.h	2021-03-17 00:43:34.007731439 +0000
+@@ -81,7 +81,7 @@
+     {
+         ctrl.Clear();
+         for (auto item : items) {
+-            ctrl.Append(item);
++          ctrl.Append(item);
+         }
+         itemsSetLast = std::move(items);
+     }
+--- wx+/dc.h	2021-03-03 20:06:00.000000000 +0000
++++ wx+/dc.h	2021-03-17 00:43:34.007731439 +0000
+@@ -68,13 +68,6 @@
+ inline
+ int fastFromDIP(int d) //like wxWindow::FromDIP (but tied to primary monitor and buffered)
+ {
+-#ifndef wxHAVE_DPI_INDEPENDENT_PIXELS
+-#error why is wxHAVE_DPI_INDEPENDENT_PIXELS not defined?
+-#endif
+-    //GTK2 doesn't properly support high DPI: https://freefilesync.org/forum/viewtopic.php?t=6114
+-    //=> requires general fix at wxWidgets-level
+-
+-    //https://github.com/wxWidgets/wxWidgets/blob/d9d05c2bb201078f5e762c42458ca2f74af5b322/include/wx/window.h#L2060
+     return d; //e.g. macOS, GTK3
+ }
+ int fastFromDIP(double d) = delete;
+--- wx+/graph.h	2021-03-03 20:06:00.000000000 +0000
++++ wx+/graph.h	2021-03-17 00:43:34.008731438 +0000
+@@ -192,7 +192,7 @@
+             const wxPoint& pos   = wxDefaultPosition,
+             const wxSize& size   = wxDefaultSize,
+             long style           = wxTAB_TRAVERSAL | wxNO_BORDER,
+-            const wxString& name = wxASCII_STR(wxPanelNameStr));
++            const wxString& name = wxString::FromAscii(wxPanelNameStr));
+ 
+     class CurveAttributes
+     {
+--- wx+/grid.cpp	2021-03-03 20:06:02.000000000 +0000
++++ wx+/grid.cpp	2021-03-17 00:46:17.124677980 +0000
+@@ -263,7 +263,7 @@
+ {
+ public:
+     SubWindow(Grid& parent) :
+-        wxWindow(&parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxWANTS_CHARS | wxBORDER_NONE, wxASCII_STR(wxPanelNameStr)),
++        wxWindow(&parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxWANTS_CHARS | wxBORDER_NONE, wxString::FromAscii(wxPanelNameStr)),
+         parent_(parent)
+     {
+         Bind(wxEVT_PAINT, [this](wxPaintEvent& event) { onPaintEvent(event); });
+@@ -1357,7 +1357,7 @@
+             {
+                 if (overlapPix != 0)
+                 {
+-                    const double scrollSpeed = wnd_.ToDIP(overlapPix) * mouseDragSpeedIncScrollU; //unit: [scroll units / sec]
++                    const double scrollSpeed = 6; // wnd_.ToDIP(overlapPix) * mouseDragSpeedIncScrollU; //unit: [scroll units / sec]
+                     toScroll += scrollSpeed * deltaSecs;
+                 }
+                 else
+--- wx+/grid.h	2021-03-03 20:06:00.000000000 +0000
++++ wx+/grid.h	2021-03-17 00:43:34.008731438 +0000
+@@ -150,7 +150,7 @@
+          const wxPoint& pos   = wxDefaultPosition,
+          const wxSize& size   = wxDefaultSize,
+          long style           = wxTAB_TRAVERSAL | wxNO_BORDER,
+-         const wxString& name = wxASCII_STR(wxPanelNameStr));
++         const wxString& name = wxString::FromAscii(wxPanelNameStr));
+ 
+     size_t getRowCount() const;
+ 
+--- wx+/no_flicker.h	2021-03-03 20:06:00.000000000 +0000
++++ wx+/no_flicker.h	2021-03-17 00:43:34.008731438 +0000
+@@ -69,9 +69,6 @@
+     richCtrl.BeginSuppressUndo();
+     ZEN_ON_SCOPE_EXIT(richCtrl.EndSuppressUndo());
+ 
+-    //fix mouse scroll speed: why the FUCK is this even necessary!
+-    richCtrl.SetLineHeight(richCtrl.GetCharHeight());
+-
+     //get rid of margins and space between text blocks/"paragraphs"
+     richCtrl.SetMargins({0, 0});
+     richCtrl.BeginParagraphSpacing(0, 0);
+--- wx+/toggle_button.h	2021-03-03 20:06:00.000000000 +0000
++++ wx+/toggle_button.h	2021-03-17 00:43:34.008731438 +0000
+@@ -24,7 +24,7 @@
+                  const wxSize&      size = wxDefaultSize,
+                  long               style = 0,
+                  const wxValidator& validator = wxDefaultValidator,
+-                 const wxString&    name = wxASCII_STR(wxButtonNameStr)) :
++                 const wxString&    name = wxString::FromAscii(wxButtonNameStr)) :
+         wxBitmapButton(parent, id, bitmap, pos, size, style, validator, name) {}
+ 
+     //wxButton constructor
+@@ -35,7 +35,7 @@
+                  const wxSize&      size = wxDefaultSize,
+                  long               style = 0,
+                  const wxValidator& validator = wxDefaultValidator,
+-                 const wxString&    name = wxASCII_STR(wxButtonNameStr)) :
++                 const wxString&    name = wxString::FromAscii(wxButtonNameStr)) :
+         wxBitmapButton(parent, id, wxNullBitmap, pos, size, style, validator, name)
+     {
+         SetLabel(label);
diff --git a/srcpkgs/FreeFileSync/template b/srcpkgs/FreeFileSync/template
new file mode 100644
index 000000000000..da1be246d6f9
--- /dev/null
+++ b/srcpkgs/FreeFileSync/template
@@ -0,0 +1,42 @@
+# Template file for 'FreeFileSync'
+pkgname=FreeFileSync
+version=11.8
+revision=1
+archs="i686 x86_64"
+create_wrksrc=yes
+build_style=gnu-makefile
+make_cmd="make -C ${pkgname}/Source exeName=FreeFileSync"
+hostmakedepends="unzip"
+makedepends="pkg-config libglib-devel wxWidgets-devel libcurl-devel gtk+-devel openssl-devel"
+depends="wxWidgets libcurl"
+short_desc="Backup software to synchronize files and folders"
+maintainer="Nicolas Porcel <nicolasporcel06@gmail.com>"
+license="GPL-3.0-or-later"
+homepage="https://freefilesync.org"
+distfiles="${homepage}/download/FreeFileSync_${version}_Source.zip"
+checksum=bf892a6eb9159fb746021d898c4a6b979b80cd12de90a95e75baec4124d83041
+
+nopie_files="/opt/${pkgname}/Bin/FreeFileSync /opt/${pkgname}/Bin/RealTimeSync"
+
+do_build() {
+	make ${makejobs} exeName=FreeFileSync -C FreeFileSync/Source
+	make ${makejobs} exeName=RealTimeSync -C FreeFileSync/Source/RealTimeSync
+	unzip FreeFileSync/Build/Resources/Icons.zip FreeFileSync.png RealTimeSync.png -d FreeFileSync/Build
+}
+
+do_install() {
+	vmkdir opt/${pkgname}
+	vcopy FreeFileSync/Build/Bin opt/${pkgname}
+	vcopy FreeFileSync/Build/Resources opt/${pkgname}
+
+	vmkdir usr/share/pixmaps
+	vinstall FreeFileSync/Build/FreeFileSync.png 0644 usr/share/pixmaps
+	vinstall FreeFileSync/Build/RealTimeSync.png 0644 usr/share/pixmaps
+
+	vmkdir usr/share/applications
+	vinstall ${FILESDIR}/FreeFileSync.desktop 0644 usr/share/applications
+	vinstall ${FILESDIR}/RealTimeSync.desktop 0644 usr/share/applications
+
+	vmkdir usr/bin
+	ln -s /opt/FreeFileSync/Bin/{FreeFileSync,RealTimeSync} ${DESTDIR}/usr/bin
+}

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PR PATCH] [Closed]: New package: FreeFileSync-11.8
  2021-03-21 17:58 [PR PATCH] New package: FreeFileSync-11.8 Nicop06
                   ` (3 preceding siblings ...)
  2021-03-21 20:32 ` Nicop06
@ 2021-03-21 20:38 ` Nicop06
  4 siblings, 0 replies; 6+ messages in thread
From: Nicop06 @ 2021-03-21 20:38 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1519 bytes --]

There's a closed pull request on the void-packages repository

New package: FreeFileSync-11.8
https://github.com/void-linux/void-packages/pull/29663

Description:
This package is based on the AUR package freefilesync: https://aur.archlinux.org/packages/freefilesync/

<!-- Mark items with [x] where applicable -->

#### General
- [X] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [ ] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me
- [X] I generally don't use the affected packages but briefly tested this PR

<!--
If GitHub CI cannot be used to validate the build result (for example, if the
build is likely to take several hours), make sure to
[skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration).
When skipping CI, uncomment and fill out the following section.
Note: for builds that are likely to complete in less than 2 hours, it is not
acceptable to skip CI.
-->
<!-- 
#### Does it build and run successfully? 
(Please choose at least one native build and, if supported, at least one cross build. More are better.)
- [ ] I built this PR locally for my native architecture, (ARCH-LIBC)
- [ ] I built this PR locally for these architectures (if supported. mark crossbuilds):
  - [ ] aarch64-musl
  - [ ] armv7l
  - [ ] armv6l-musl
-->

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-03-21 20:38 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-21 17:58 [PR PATCH] New package: FreeFileSync-11.8 Nicop06
2021-03-21 20:19 ` [PR PATCH] [Updated] " Nicop06
2021-03-21 20:22 ` Nicop06
2021-03-21 20:27 ` Nicop06
2021-03-21 20:32 ` Nicop06
2021-03-21 20:38 ` [PR PATCH] [Closed]: " Nicop06

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).