From d19ffa817fd106a18c1f87a9ee43458eeb6d2c91 Mon Sep 17 00:00:00 2001 From: B Stack Date: Tue, 8 Dec 2020 20:34:00 -0500 Subject: ffs dpkg 11.4, WIP ffs rpm --- freefilesync/debian/changelog | 18 ++++++ freefilesync/debian/freefilesync+devuan.dsc | 2 +- .../debian/patches/ffs_allow_parallel_ops.patch | 69 ++++++++++++++++++---- freefilesync/debian/patches/ffs_devuan.patch | 21 +++---- freefilesync/debian/patches/ffs_devuan_gtk3.patch | 2 +- .../debian/patches/ffs_no_check_updates.patch | 27 +++++---- freefilesync/debian/patches/ffs_no_wx311.patch | 16 ++--- .../debian/patches/ffs_traditional_view.patch | 16 +++-- .../revert_zenju_aggressive_upstreamisms.patch | 12 ++++ 9 files changed, 128 insertions(+), 55 deletions(-) (limited to 'freefilesync/debian') diff --git a/freefilesync/debian/changelog b/freefilesync/debian/changelog index dfbe0e2..32166cd 100644 --- a/freefilesync/debian/changelog +++ b/freefilesync/debian/changelog @@ -1,3 +1,21 @@ +freefilesync (11.4-1+devuan) obs; urgency=medium + + * Upstream updates + - New progress graph "this one sparks joy" + - Remember progress dialog size + - New config file context menu option: Show in file manager + - Work around libcurl performance bug during FTP upload + - Only log modification time errors after comparing by size or content + - Smaller icon size for efficient screen layout (Linux) + - Use system-native recycle bin icon + - Fixed DeviceIoControl(IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS): ERROR_MORE_DATA + - Support MTP devices lacking a friendly name + - Fix grid scrolling with small mouse rotations (macOS) + - Faster mouse scrolling on high-DPI resolution displays + - Keep previous windows size when maximized during auto-exit + + -- Ben Stack Tue, 08 Dec 2020 20:32:55 -0500 + freefilesync (11.3-2+devuan) obs; urgency=medium * [bgstack15] completely fix traditional view patch diff --git a/freefilesync/debian/freefilesync+devuan.dsc b/freefilesync/debian/freefilesync+devuan.dsc index ede807f..8ba45f2 100644 --- a/freefilesync/debian/freefilesync+devuan.dsc +++ b/freefilesync/debian/freefilesync+devuan.dsc @@ -2,7 +2,7 @@ Format: 3.0 (quilt) Source: freefilesync Binary: freefilesync Architecture: any -Version: 11.3-2+devuan +Version: 11.4-1+devuan Maintainer: B Stack Homepage: https://freefilesync.org/ Standards-Version: 4.1.4 diff --git a/freefilesync/debian/patches/ffs_allow_parallel_ops.patch b/freefilesync/debian/patches/ffs_allow_parallel_ops.patch index 040369f..3d00225 100644 --- a/freefilesync/debian/patches/ffs_allow_parallel_ops.patch +++ b/freefilesync/debian/patches/ffs_allow_parallel_ops.patch @@ -1,20 +1,63 @@ This is still experimental. -diff -aur 11.2-0/FreeFileSync/Source/ui/folder_selector.cpp 11.2-1/FreeFileSync/Source/ui/folder_selector.cpp ---- 11.2-0/FreeFileSync/Source/ui/folder_selector.cpp 2020-10-02 14:39:05.297463367 -0400 -+++ 11.2-1/FreeFileSync/Source/ui/folder_selector.cpp 2020-10-02 15:01:06.505758389 -0400 -@@ -260,7 +260,7 @@ +diff -Naur -x '*.orig' -x '*.rej' -x '*.git*' 11.4-0/FreeFileSync/Source/config.cpp 11.4-1/FreeFileSync/Source/config.cpp +--- 11.4-0/FreeFileSync/Source/config.cpp 2020-12-08 08:15:29.428156465 -0500 ++++ 11.4-1/FreeFileSync/Source/config.cpp 2020-12-08 19:12:03.373121599 -0500 +@@ -1200,7 +1200,7 @@ + } + else + { +- size_t parallelOps = 1; ++ size_t parallelOps = 5; + if (const XmlElement* e = in["VersioningFolder"].get()) e->getAttribute("Threads", parallelOps); //try to get attribute - std::optional parallelOpsDisabledReason; - -- parallelOpsDisabledReason = _("Requires FreeFileSync Donation Edition"); -+ // parallelOpsDisabledReason = _("Requires FreeFileSync Donation Edition"); + const size_t parallelOpsPrev = getDeviceParallelOps(deviceParallelOps, syncCfg.versioningFolderPhrase); +diff -Naur -x '*.orig' -x '*.rej' -x '*.git*' 11.4-0/FreeFileSync/Source/ui/folder_selector.cpp 11.4-1/FreeFileSync/Source/ui/folder_selector.cpp +--- 11.4-0/FreeFileSync/Source/ui/folder_selector.cpp 2020-12-08 08:15:29.428156465 -0500 ++++ 11.4-1/FreeFileSync/Source/ui/folder_selector.cpp 2020-12-08 19:12:09.205183330 -0500 +@@ -256,7 +256,7 @@ + void FolderSelector::onSelectAltFolder(wxCommandEvent& event) + { + Zstring folderPathPhrase = getPath(); +- size_t parallelOps = getDeviceParallelOps_ ? getDeviceParallelOps_(folderPathPhrase) : 1; ++ size_t parallelOps = getDeviceParallelOps_ ? getDeviceParallelOps_(folderPathPhrase) : 5; - if (showCloudSetupDialog(parent_, folderPathPhrase, sftpKeyFileLastSelected_, parallelOps, get(parallelOpsDisabledReason)) != ConfirmationButton::accept) + if (showCloudSetupDialog(parent_, folderPathPhrase, sftpKeyFileLastSelected_, parallelOps, static_cast(setDeviceParallelOps_)) != ConfirmationButton::accept) return; -diff -aur 11.2-0/FreeFileSync/Source/ui/sync_cfg.cpp 11.2-1/FreeFileSync/Source/ui/sync_cfg.cpp ---- 11.2-0/FreeFileSync/Source/ui/sync_cfg.cpp 2020-10-02 14:39:05.289463269 -0400 -+++ 11.2-1/FreeFileSync/Source/ui/sync_cfg.cpp 2020-10-02 15:01:06.509758438 -0400 -@@ -336,7 +336,7 @@ +diff -Naur -x '*.orig' -x '*.rej' -x '*.git*' 11.4-0/FreeFileSync/Source/ui/small_dlgs.cpp 11.4-1/FreeFileSync/Source/ui/small_dlgs.cpp +--- 11.4-0/FreeFileSync/Source/ui/small_dlgs.cpp 2020-12-08 08:15:29.432156507 -0500 ++++ 11.4-1/FreeFileSync/Source/ui/small_dlgs.cpp 2020-12-08 19:07:22.970153675 -0500 +@@ -370,11 +370,14 @@ + + m_spinCtrlConnectionCount->SetValue(parallelOps); + +- m_spinCtrlConnectionCount->Disable(); +- m_staticTextConnectionCountDescr->Hide(); ++ if (!canChangeParallelOp) ++ { ++ m_spinCtrlConnectionCount->Disable(); ++ m_staticTextConnectionCountDescr->Hide(); + +- m_spinCtrlChannelCountSftp->Disable(); +- m_buttonChannelCountSftp ->Disable(); ++ m_spinCtrlChannelCountSftp->Disable(); ++ m_buttonChannelCountSftp ->Disable(); ++ } + //--------------------------------------------------------- + + //set up default view for dialog size calculation +@@ -807,7 +810,7 @@ + + targetFolder = std::make_unique(this, *this, *m_buttonSelectTargetFolder, *m_bpButtonSelectAltTargetFolder, *m_targetFolderPath, + targetFolderLastSelected, sftpKeyFileLastSelected, nullptr /*staticText*/, nullptr /*wxWindow*/, nullptr /*droppedPathsFilter*/, +- [](const Zstring& folderPathPhrase) { return 1; } /*getDeviceParallelOps*/, nullptr /*setDeviceParallelOps*/); ++ [](const Zstring& folderPathPhrase) { return 5; } /*getDeviceParallelOps*/, nullptr /*setDeviceParallelOps*/); + + m_targetFolderPath->setHistory(std::make_shared(folderHistory, folderHistoryMax)); + +diff -Naur -x '*.orig' -x '*.rej' -x '*.git*' 11.4-0/FreeFileSync/Source/ui/sync_cfg.cpp 11.4-1/FreeFileSync/Source/ui/sync_cfg.cpp +--- 11.4-0/FreeFileSync/Source/ui/sync_cfg.cpp 2020-12-08 08:15:29.432156507 -0500 ++++ 11.4-1/FreeFileSync/Source/ui/sync_cfg.cpp 2020-12-08 18:31:29.079355828 -0500 +@@ -333,7 +333,7 @@ commandHistoryOut_(commandHistory), globalPairCfg_(globalPairCfg), localPairCfg_(localPairConfig), diff --git a/freefilesync/debian/patches/ffs_devuan.patch b/freefilesync/debian/patches/ffs_devuan.patch index 5e5af0b..e155745 100644 --- a/freefilesync/debian/patches/ffs_devuan.patch +++ b/freefilesync/debian/patches/ffs_devuan.patch @@ -15,9 +15,9 @@ diff -x '*.swp' -x '.git*' -x '*.orig' -x '*.rej' -Naur 10.18-0/FreeFileSync/Sou } -diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/FreeFileSync/Source/Makefile 10.24-1/FreeFileSync/Source/Makefile ---- 10.24-0/FreeFileSync/Source/Makefile 2020-05-17 11:01:12.813889858 -0400 -+++ 10.24-1/FreeFileSync/Source/Makefile 2020-05-17 11:29:01.456713486 -0400 +diff -Naur -x '*.orig' -x '*.rej' -x .git 11.4-0/FreeFileSync/Source/Makefile 11.4-1/FreeFileSync/Source/Makefile +--- 11.4-0/FreeFileSync/Source/Makefile 2020-12-08 08:15:29.424156422 -0500 ++++ 11.4-1/FreeFileSync/Source/Makefile 2020-12-08 18:25:59.487867270 -0500 @@ -1,10 +1,10 @@ -exeName = FreeFileSync_$(shell arch) +exeName = FreeFileSync @@ -27,8 +27,8 @@ diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/FreeFileSync/Source/Makefi -Wall -Wfatal-errors -Wmissing-include-dirs -Wswitch-enum -Wcast-align -Wnon-virtual-dtor -Wno-unused-function -Wshadow -Wno-maybe-uninitialized \ -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread --linkFlags = -s -no-pie `wx-config --libs std, aui --debug=no` -pthread -+linkFlags += -s `wx-config --libs std, aui --debug=no` -lz -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` @@ -44,9 +44,9 @@ diff -x '*.swp' -x '.git*' -x '*.orig' -x '*.rej' -Naur 10.19-0/FreeFileSync/Sou build += SPACED_BULLET; build += utfTo(formatTime(formatDateTag, getCompileTime())); -diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/FreeFileSync/Source/RealTimeSync/Makefile 10.24-1/FreeFileSync/Source/RealTimeSync/Makefile ---- 10.24-0/FreeFileSync/Source/RealTimeSync/Makefile 2020-05-17 11:01:12.853890213 -0400 -+++ 10.24-1/FreeFileSync/Source/RealTimeSync/Makefile 2020-05-17 11:29:17.540857423 -0400 +diff -Naur -x '*.orig' -x '*.rej' -x .git 11.4-0/FreeFileSync/Source/RealTimeSync/Makefile 11.4-1/FreeFileSync/Source/RealTimeSync/Makefile +--- 11.4-0/FreeFileSync/Source/RealTimeSync/Makefile 2020-12-08 08:15:29.424156422 -0500 ++++ 11.4-1/FreeFileSync/Source/RealTimeSync/Makefile 2020-12-08 18:26:11.823997849 -0500 @@ -1,10 +1,10 @@ -exeName = RealTimeSync_$(shell arch) +exeName = RealTimeSync @@ -56,8 +56,9 @@ diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/FreeFileSync/Source/RealTi -Wall -Wfatal-errors -Wmissing-include-dirs -Wswitch-enum -Wcast-align -Wnon-virtual-dtor -Wno-unused-function -Wshadow -Wno-maybe-uninitialized \ -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread --linkFlags = -s -no-pie `wx-config --libs std, aui --debug=no` -pthread -+linkFlags += -s `wx-config --libs std, aui --debug=no` -lz -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` + diff --git a/freefilesync/debian/patches/ffs_devuan_gtk3.patch b/freefilesync/debian/patches/ffs_devuan_gtk3.patch index 8a5e83e..6548568 100644 --- a/freefilesync/debian/patches/ffs_devuan_gtk3.patch +++ b/freefilesync/debian/patches/ffs_devuan_gtk3.patch @@ -22,7 +22,7 @@ diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/FreeFileSync/Source/RealTi --- 10.24-0/FreeFileSync/Source/RealTimeSync/Makefile 2020-05-17 18:30:59.289498093 -0400 +++ 10.24-1/FreeFileSync/Source/RealTimeSync/Makefile 2020-05-17 19:32:59.791394275 -0400 @@ -7,9 +7,10 @@ - linkFlags += -s `wx-config --libs std, aui --debug=no` -lz -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` diff --git a/freefilesync/debian/patches/ffs_no_check_updates.patch b/freefilesync/debian/patches/ffs_no_check_updates.patch index 4616461..2413cba 100644 --- a/freefilesync/debian/patches/ffs_no_check_updates.patch +++ b/freefilesync/debian/patches/ffs_no_check_updates.patch @@ -1,32 +1,33 @@ -diff -aur 11.2-0/FreeFileSync/Source/ui/main_dlg.cpp 11.2-1/FreeFileSync/Source/ui/main_dlg.cpp ---- 11.2-0/FreeFileSync/Source/ui/main_dlg.cpp 2020-10-02 14:39:05.333463811 -0400 -+++ 11.2-1/FreeFileSync/Source/ui/main_dlg.cpp 2020-10-02 14:52:01.515034696 -0400 -@@ -5621,7 +5621,7 @@ - globalCfg_.gui.lastUpdateCheck = 0; //reset to GlobalSettings.xml default value! +diff -Naur -x '*.orig' -x '*.rej' -x '*.git*' 11.4-0/FreeFileSync/Source/ui/main_dlg.cpp 11.4-1/FreeFileSync/Source/ui/main_dlg.cpp +--- 11.4-0/FreeFileSync/Source/ui/main_dlg.cpp 2020-12-08 08:15:29.432156507 -0500 ++++ 11.4-1/FreeFileSync/Source/ui/main_dlg.cpp 2020-12-08 18:29:47.210277596 -0500 +@@ -5552,7 +5552,7 @@ + globalCfg_.lastUpdateCheck = 0; //reset to GlobalSettings.xml default value! - m_menuItemCheckVersionAuto->Check(updateCheckActive(globalCfg_.gui.lastUpdateCheck)); + m_menuItemCheckVersionAuto->Check(updateCheckActive(globalCfg_.lastUpdateCheck)); - + /* - if (shouldRunAutomaticUpdateCheck(globalCfg_.gui.lastUpdateCheck)) + if (shouldRunAutomaticUpdateCheck(globalCfg_.lastUpdateCheck)) { flashStatusInformation(_("Searching for program updates...")); -@@ -5629,6 +5629,7 @@ - automaticUpdateCheckEval(this, globalCfg_.gui.lastUpdateCheck, globalCfg_.gui.lastOnlineVersion, +@@ -5560,6 +5560,7 @@ + automaticUpdateCheckEval(this, globalCfg_.lastUpdateCheck, globalCfg_.lastOnlineVersion, automaticUpdateCheckRunAsync(automaticUpdateCheckPrepare(*this).get()).get()); } + */ } -@@ -5653,6 +5654,7 @@ +@@ -5583,7 +5584,7 @@ + m_menubar->Append(menu, blackStar + L' ' + replaceCpy(_("FreeFileSync %x is available!"), L"%x", utfTo(globalCfg_.lastOnlineVersion)) + L' ' + blackStar); } }; - +- + /* - if (shouldRunAutomaticUpdateCheck(globalCfg_.gui.lastUpdateCheck)) + if (shouldRunAutomaticUpdateCheck(globalCfg_.lastUpdateCheck)) { flashStatusInformation(_("Searching for program updates...")); -@@ -5669,6 +5671,7 @@ +@@ -5600,6 +5601,7 @@ } else showNewVersionReminder(); diff --git a/freefilesync/debian/patches/ffs_no_wx311.patch b/freefilesync/debian/patches/ffs_no_wx311.patch index 22d8260..b2ee1a9 100644 --- a/freefilesync/debian/patches/ffs_no_wx311.patch +++ b/freefilesync/debian/patches/ffs_no_wx311.patch @@ -1,8 +1,8 @@ 2019-08-15 just compile. -diff -Naur 10.25-0/FreeFileSync/Source/ui/small_dlgs.cpp 10.25-1/FreeFileSync/Source/ui/small_dlgs.cpp ---- 10.25-0/FreeFileSync/Source/ui/small_dlgs.cpp 2020-06-19 16:17:15.000000000 -0400 -+++ 11.0-1/FreeFileSync/Source/ui/small_dlgs.cpp 2020-07-22 11:39:25.820068366 -0400 -@@ -293,7 +293,8 @@ +diff -Naur -x '*.orig' -x '*.rej' -x .git 11.4-0/FreeFileSync/Source/ui/small_dlgs.cpp 11.4-1/FreeFileSync/Source/ui/small_dlgs.cpp +--- 11.4-0/FreeFileSync/Source/ui/small_dlgs.cpp 2020-12-08 08:15:29.432156507 -0500 ++++ 11.4-1/FreeFileSync/Source/ui/small_dlgs.cpp 2020-12-08 18:22:19.929543356 -0500 +@@ -300,7 +300,8 @@ { showNotificationDialog(this, DialogInfoType::error, PopupDialogCfg().setDetailInstructions(e.toString())); } @@ -12,16 +12,16 @@ diff -Naur 10.25-0/FreeFileSync/Source/ui/small_dlgs.cpp 10.25-1/FreeFileSync/So //set default values for Google Drive: use first item of m_listBoxGdriveUsers if (!gdriveAccounts.empty() && !acceptsItemPathPhraseGdrive(folderPathPhrase)) -@@ -1682,7 +1683,7 @@ +@@ -1681,7 +1682,7 @@ //setMainInstructionFont(*m_staticTextMain); m_bitmapActivation->SetBitmap(loadImage("internet")); - m_textCtrlOfflineActivationKey->ForceUpper(); + //m_textCtrlOfflineActivationKey->ForceUpper(); - m_textCtrlLastError ->ChangeValue(lastErrorMsg); - m_textCtrlManualActivationUrl ->ChangeValue(manualActivationUrl); -diff -Naur -x '*.orig' -x '*.rej' 10.3-0/wx+/grid.cpp 10.3-2/wx+/grid.cpp + setTextWithUrls(*m_richTextLastError, lastErrorMsg); + setTextWithUrls(*m_richTextManualActivationUrl, manualActivationUrl); +iff -Naur -x '*.orig' -x '*.rej' 10.3-0/wx+/grid.cpp 10.3-2/wx+/grid.cpp --- 10.3-0/wx+/grid.cpp 2018-08-07 05:03:34.000000000 -0400 +++ 10.3-2/wx+/grid.cpp 2018-08-08 19:24:56.849445102 -0400 @@ -1176,7 +1176,9 @@ diff --git a/freefilesync/debian/patches/ffs_traditional_view.patch b/freefilesync/debian/patches/ffs_traditional_view.patch index f627a0a..c075820 100644 --- a/freefilesync/debian/patches/ffs_traditional_view.patch +++ b/freefilesync/debian/patches/ffs_traditional_view.patch @@ -1,8 +1,7 @@ -Version: 11.3 -Date: 2020-11-05 +Version: 11.4 +Date: 2020-12-08 Author: bgstack15@gmail.com Message: restore a traditional view to FreeFileSync -The Nov 5 patch removes the lines between groups, and also fixes the relative paths in "Trad. Rel" view. diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11.3-1/FreeFileSync/Source/ui/file_grid.cpp --- 11.3-1/FreeFileSync/Source/ui/file_grid.cpp 2020-11-02 11:38:14.806496077 -0500 +++ 11.3-2/FreeFileSync/Source/ui/file_grid.cpp 2020-11-05 11:11:46.146360956 -0500 @@ -183,19 +182,18 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. //mouse highlight: group name wxDCTextColourChanger textColorGroupName(dc); -@@ -972,10 +1040,10 @@ +@@ -974,9 +1042,9 @@ drawCellText(dc, rectGroupName, groupName, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL, &getTextExtentBuffered(dc, groupName)); } - if (!groupParentFolder.empty() && + if (itemPathFormat_ == ItemPathFormat::traditional || itemPathFormat_ == ItemPathFormat::tradrel || (!groupParentFolder.empty() && (( stackedGroupRender && row == groupFirstRow + 1) || - (!stackedGroupRender && row == groupFirstRow)) && -- (groupName.empty() || !pdi.folderGroupObj->isEmpty())) -+ (groupName.empty() || !pdi.folderGroupObj->isEmpty()))) +- (!stackedGroupRender && row == groupFirstRow)) ++ (!stackedGroupRender && row == groupFirstRow))) + //&& (groupName.empty() || !pdi.folderGroupObj->isEmpty()) -> show unconditionally, even for missing folders + ) { - wxRect rectGroupParentText = rectGroupParent; - rectGroupParentText.x += gapSize_; @@ -994,16 +1062,16 @@ rectGroupItems.x += 2 * gapSize_; rectGroupItems.width -= 2 * gapSize_; diff --git a/freefilesync/debian/patches/revert_zenju_aggressive_upstreamisms.patch b/freefilesync/debian/patches/revert_zenju_aggressive_upstreamisms.patch index 1a468db..ad3f51e 100644 --- a/freefilesync/debian/patches/revert_zenju_aggressive_upstreamisms.patch +++ b/freefilesync/debian/patches/revert_zenju_aggressive_upstreamisms.patch @@ -293,3 +293,15 @@ index e8ed01e4..2a9e00d2 100644 void showStatsPanel(); MainDialog& mainDlg_; +diff -Naur -x '*.orig' -x '*.rej' -x '*.git*' 11.4-1/wx+/no_flicker.h 11.4-2/wx+/no_flicker.h +--- 11.4-1/wx+/no_flicker.h 2020-12-08 08:15:29.436156549 -0500 ++++ 11.4-2/wx+/no_flicker.h 2020-12-08 20:11:25.066820270 -0500 +@@ -70,7 +70,7 @@ + ZEN_ON_SCOPE_EXIT(richCtrl.EndSuppressUndo()); + + //fix mouse scroll speed: why the FUCK is this even necessary! +- richCtrl.SetLineHeight(richCtrl.GetCharHeight()); ++ //richCtrl.SetLineHeight(richCtrl.GetCharHeight()); // this is not even documented in wxWidgets 3.1.5! + + //get rid of margins and space between text blocks/"paragraphs" + richCtrl.SetMargins({0, 0}); -- cgit