diff options
93 files changed, 4430 insertions, 1769 deletions
diff --git a/freefilesync/ffs_allow_parallel_ops.patch b/freefilesync/00_allow_parallel_ops.patch index 473ae46..65226bb 100644 --- a/freefilesync/ffs_allow_parallel_ops.patch +++ b/freefilesync/00_allow_parallel_ops.patch @@ -1,5 +1,6 @@ -Last version tested: 11.13 -The source release appears not to actually include the logic that performs operations in parallel, so this patch doesn't actually do anything. +Version: 11.22 +Date: 2022-06-26 +Message: The source release appears not to actually include the logic that performs operations in parallel, so this patch doesn't actually do anything. 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 @@ -44,14 +45,15 @@ diff -Naur -x '*.orig' -x '*.rej' -x '*.git*' 11.4-0/FreeFileSync/Source/ui/smal m_targetFolderPath->setHistory(std::make_shared<HistoryList>(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.13-0/FreeFileSync/Source/ui/sync_cfg.cpp 2021-08-17 19:18:02.039992429 -0400 -+++ 11.13-1/FreeFileSync/Source/ui/sync_cfg.cpp 2021-08-17 19:33:01.693071327 -0400 -@@ -348,7 +348,7 @@ +--- 11.22-0/FreeFileSync/Source/ui/sync_cfg.cpp 2022-06-26 12:01:15.638291465 -0400 ++++ 11.22-1/FreeFileSync/Source/ui/sync_cfg.cpp 2022-06-26 12:42:38.181161442 -0400 +@@ -352,7 +352,7 @@ commandHistoryOut_(commandHistory), globalPairCfg_(globalPairCfg), localPairCfg_(localPairCfg), - enableExtraFeatures_(false), + enableExtraFeatures_(true), - showMultipleCfgs_(showMultipleCfgs) + showMultipleCfgs_(showMultipleCfgs), + globalLogFolderPhrase_(globalLogFolderPhrase) { - setStandardButtonLayout(*bSizerStdButtons, StdButtons().setAffirmative(m_buttonOkay).setCancel(m_buttonCancel)); + diff --git a/freefilesync/ffs_no_check_updates.patch b/freefilesync/01_no_check_updates.patch index bdc2ebd..1d11f96 100644 --- a/freefilesync/ffs_no_check_updates.patch +++ b/freefilesync/01_no_check_updates.patch @@ -1,10 +1,10 @@ -Version: 11.20 -Date: 2022-04-18 +Version: 11.22 +Date: 2022-06-26 Author: bgstack15 Message: This is a major rewrite of the ffs_no_check_updates patch from before 11.10 which disabled only a few technical www interactions. This current version completely deletes all logic associated with checking the version of the program. diff -aur 11.18-0/FreeFileSync/Source/ui/gui_generated.cpp 11.18-1/FreeFileSync/Source/ui/gui_generated.cpp ---- 11.18-0/FreeFileSync/Source/ui/gui_generated.cpp 2022-03-08 16:51:21.090657955 -0500 -+++ 11.18-1/FreeFileSync/Source/ui/gui_generated.cpp 2022-03-08 16:55:57.009584234 -0500 +--- 11.22-0/FreeFileSync/Source/ui/gui_generated.cpp 2022-06-26 12:01:15.634291415 -0400 ++++ 11.22-1/FreeFileSync/Source/ui/gui_generated.cpp 2022-06-26 12:39:05.058511306 -0400 @@ -110,15 +110,6 @@ m_menuHelp->AppendSeparator(); @@ -31,9 +31,9 @@ diff -aur 11.18-0/FreeFileSync/Source/ui/gui_generated.cpp 11.18-1/FreeFileSync/ m_bpButtonCmpConfig->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onCmpSettings ), NULL, this ); m_bpButtonCmpConfig->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onCompSettingsContextMouse ), NULL, this ); diff -aur 11.18-0/FreeFileSync/Source/ui/gui_generated.h 11.18-1/FreeFileSync/Source/ui/gui_generated.h ---- 11.18-0/FreeFileSync/Source/ui/gui_generated.h 2022-03-08 16:51:21.114658209 -0500 -+++ 11.18-1/FreeFileSync/Source/ui/gui_generated.h 2022-03-08 16:56:17.057796860 -0500 -@@ -95,8 +95,6 @@ +--- 11.22-0/FreeFileSync/Source/ui/gui_generated.h 2022-06-26 12:01:15.634291415 -0400 ++++ 11.22-1/FreeFileSync/Source/ui/gui_generated.h 2022-06-26 12:38:30.522081852 -0400 +@@ -96,8 +96,6 @@ wxMenuItem* m_menuItemShowOverview; wxMenu* m_menuHelp; wxMenuItem* m_menuItemHelp; @@ -42,7 +42,7 @@ diff -aur 11.18-0/FreeFileSync/Source/ui/gui_generated.h 11.18-1/FreeFileSync/So wxMenuItem* m_menuItemAbout; wxBoxSizer* bSizerPanelHolder; wxPanel* m_panelTopButtons; -@@ -231,8 +229,6 @@ +@@ -232,8 +230,6 @@ virtual void onMenuExportFileList( wxCommandEvent& event ) { event.Skip(); } virtual void onMenuResetLayout( wxCommandEvent& event ) { event.Skip(); } virtual void onShowHelp( wxCommandEvent& event ) { event.Skip(); } @@ -54,7 +54,15 @@ diff -aur 11.18-0/FreeFileSync/Source/ui/gui_generated.h 11.18-1/FreeFileSync/So diff -aur 11.10-1/FreeFileSync/Source/ui/main_dlg.cpp 11.10-2/FreeFileSync/Source/ui/main_dlg.cpp --- 11.16-0/FreeFileSync/Source/ui/main_dlg.cpp 2022-01-04 08:52:19.811432573 -0500 +++ 11.16-1/FreeFileSync/Source/ui/main_dlg.cpp 2022-01-04 08:57:14.506728896 -0500 -@@ -744,7 +744,6 @@ +@@ -31,7 +31,6 @@ + #include <wx+/image_resources.h> + //#include <wx+/std_button_layout.h> + #include "cfg_grid.h" +-#include "version_check.h" + #include "gui_status_handler.h" + #include "small_dlgs.h" + #include "progress_indicator.h" +@@ -821,7 +820,6 @@ setImage(*m_menuItemHelp, loadImage("help_sicon")); setImage(*m_menuItemAbout, loadImage("about_sicon")); @@ -62,7 +70,7 @@ diff -aur 11.10-1/FreeFileSync/Source/ui/main_dlg.cpp 11.10-2/FreeFileSync/Sourc fixMenuIcons(*m_menuFile); fixMenuIcons(*m_menuActions); -@@ -854,9 +853,6 @@ +@@ -922,9 +920,6 @@ //mainly to update row label sizes... updateGui(); @@ -81,7 +89,7 @@ diff -aur 11.10-1/FreeFileSync/Source/ui/main_dlg.cpp 11.10-2/FreeFileSync/Sourc auiMgr_.Update(); } -@@ -5680,72 +5674,6 @@ +@@ -5740,72 +5734,6 @@ } } @@ -103,7 +111,7 @@ diff -aur 11.10-1/FreeFileSync/Source/ui/main_dlg.cpp 11.10-2/FreeFileSync/Sourc - - if (shouldRunAutomaticUpdateCheck(globalCfg_.lastUpdateCheck)) - { -- flashStatusInformation(_("Searching for program updates...")); +- flashStatusInfo(_("Searching for program updates...")); - //synchronous update check is sufficient here: - automaticUpdateCheckEval(*this, globalCfg_.lastUpdateCheck, globalCfg_.lastOnlineVersion, - automaticUpdateCheckRunAsync(automaticUpdateCheckPrepare(*this).get()).get()); @@ -134,7 +142,7 @@ diff -aur 11.10-1/FreeFileSync/Source/ui/main_dlg.cpp 11.10-2/FreeFileSync/Sourc - - if (shouldRunAutomaticUpdateCheck(globalCfg_.lastUpdateCheck)) - { -- flashStatusInformation(_("Searching for program updates...")); +- flashStatusInfo(_("Searching for program updates...")); - - std::shared_ptr<const UpdateCheckResultPrep> resultPrep = automaticUpdateCheckPrepare(*this); //run on main thread: - @@ -271,3 +279,25 @@ diff -aur 11.10-1/FreeFileSync/Source/ui/version_check.h 11.10-2/FreeFileSync/So } #endif //VERSION_CHECK_H_324872374893274983275 +diff -aur /usr/src/freefilesync/11.22-0/FreeFileSync/Source/Makefile /usr/src/freefilesync/11.22-1/FreeFileSync/Source/Makefile +--- 11.22-0/FreeFileSync/Source/Makefile 2022-06-26 11:47:06.603733867 -0400 ++++ 11.22-1/FreeFileSync/Source/Makefile 2022-06-26 14:01:34.640058450 -0400 +@@ -76,7 +85,6 @@ + cppFiles+=ui/sync_cfg.cpp + cppFiles+=ui/tray_icon.cpp + cppFiles+=ui/triple_splitter.cpp +-cppFiles+=ui/version_check.cpp + cppFiles+=../../libcurl/curl_wrap.cpp + cppFiles+=../../zen/file_access.cpp + cppFiles+=../../zen/file_io.cpp +diff -aur /usr/src/freefilesync/11.22-0/FreeFileSync/Source/ui/small_dlgs.cpp /usr/src/freefilesync/11.22-1/FreeFileSync/Source/ui/small_dlgs.cpp +--- 11.22-0/FreeFileSync/Source/ui/small_dlgs.cpp 2022-06-26 12:01:15.638291465 -0400 ++++ 11.22-1/FreeFileSync/Source/ui/small_dlgs.cpp 2022-06-26 14:01:37.516094208 -0400 +@@ -27,7 +27,6 @@ + #include <wx+/image_resources.h> + #include "gui_generated.h" + #include "folder_selector.h" +-#include "version_check.h" + #include "abstract_folder_picker.h" + #include "../afs/concrete.h" + #include "../afs/gdrive.h" diff --git a/freefilesync/02_no_wx311.patch b/freefilesync/02_no_wx311.patch new file mode 100644 index 0000000..e74da90 --- /dev/null +++ b/freefilesync/02_no_wx311.patch @@ -0,0 +1,138 @@ +Last modified: 2022-05-24 +Version: 11.21 +Author: bgstack15 +Message: Just compile by stepping around wxWidgets 3.1.1 calls +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.21-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())); + } +- m_listBoxGdriveUsers->Append(gdriveAccounts); ++ for (const wxString& item : gdriveAccounts) // reverted to pre-wx 3.1.1 logic ++ m_listBoxGdriveUsers->Append(item); + + //set default values for Google Drive: use first item of m_listBoxGdriveUsers + if (!gdriveAccounts.empty() && !acceptsItemPathPhraseGdrive(folderPathPhrase)) +@@ -1292,7 +1298,8 @@ + for (const auto& [dlgShown, dlgSetShown, msg] : hiddenDialogCfgMapping_) + dialogMessages.push_back(msg); + +- m_checkListHiddenDialogs->Append(dialogMessages); ++ for (const wxString& item :dialogMessages) // reverted to pre-wx 3.1.1 logic ++ m_checkListHiddenDialogs->Append(item); + + unsigned int itemPos = 0; + for (const auto& [dlgShown, dlgSetShown, msg] : hiddenDialogCfgMapping_) +@@ -1689,7 +1690,6 @@ + //setMainInstructionFont(*m_staticTextMain); + + setImage(*m_bitmapActivation, loadImage("internet")); +- m_textCtrlOfflineActivationKey->ForceUpper(); + + setTextWithUrls(*m_richTextLastError, lastErrorMsg); + setTextWithUrls(*m_richTextManualActivationUrl, manualActivationUrl); +diff -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 @@ + { + if (overlapPix != 0) + { +- const double scrollSpeed = wnd_.ToDIP(overlapPix) * mouseDragSpeedIncScrollU; //unit: [scroll units / sec] ++ // Fedora 28 does not have wxGTK 3.1.1 yet. This probably breaks HiDPI usage ++ //const double scrollSpeed = wnd_.ToDIP(overlapPix) * mouseDragSpeedIncScrollU; //unit: [scroll units / sec] ++ const double scrollSpeed = overlapPix * mouseDragSpeedIncScrollU; //unit: [scroll units / sec] + toScroll += scrollSpeed * deltaSecs; + } + else +diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/FreeFileSync/Source/ui/command_box.cpp 10.24-1/FreeFileSync/Source/ui/command_box.cpp +--- 10.24-0/FreeFileSync/Source/ui/command_box.cpp 2020-05-17 11:01:12.893890567 -0400 ++++ 10.24-1/FreeFileSync/Source/ui/command_box.cpp 2020-05-17 11:22:18.069114993 -0400 +@@ -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) // reverted to pre-wx 3.1.1 logic ++ this->Append(item); + + //this->SetSelection(wxNOT_FOUND); //don't select anything + ChangeValue(value); //preserve main text! +diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/FreeFileSync/Source/ui/folder_history_box.cpp 10.24-1/FreeFileSync/Source/ui/folder_history_box.cpp +--- 10.24-0/FreeFileSync/Source/ui/folder_history_box.cpp 2020-05-17 11:01:12.909890709 -0400 ++++ 10.24-1/FreeFileSync/Source/ui/folder_history_box.cpp 2020-05-17 11:21:18.460583251 -0400 +@@ -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& itemk : items) // reverted to pre-wx 3.1.1 logic ++ this->Append(itemk); + + //this->SetSelection(wxNOT_FOUND); //don't select anything + ChangeValue(folderPathPhrase); //preserve main text! +--- 11.21-0/FreeFileSync/Source/config.cpp 2022-05-22 17:09:32.238809549 -0400 ++++ 11.21-1/FreeFileSync/Source/config.cpp 2022-05-24 08:41:55.360955076 -0400 +@@ -1502,13 +1512,13 @@ + if (lngName == "English (US)") + cfg.programLanguage = wxLANGUAGE_ENGLISH_US; + else if (lngName == "Chinese (Simplified)") +- cfg.programLanguage = wxLANGUAGE_CHINESE_CHINA; ++ cfg.programLanguage = wxLANGUAGE_CHINESE_SIMPLIFIED; + else if (lngName == "Chinese (Traditional)") + cfg.programLanguage = wxLANGUAGE_CHINESE_TAIWAN; + else if (lngName == "English (U.K.)") + cfg.programLanguage = wxLANGUAGE_ENGLISH_UK; + else if (lngName == "Norwegian (Bokmal)") +- cfg.programLanguage = wxLANGUAGE_NORWEGIAN; ++ cfg.programLanguage = wxLANGUAGE_NORWEGIAN_BOKMAL; + else if (lngName == "Portuguese (Brazilian)") + cfg.programLanguage = wxLANGUAGE_PORTUGUESE_BRAZILIAN; + else if (const wxLanguageInfo* lngInfo = wxLocale::FindLanguageInfo(utfTo<wxString>(lngName))) +--- 11.21-0/FreeFileSync/Source/localization.cpp 2022-05-22 17:09:32.238809549 -0400 ++++ 11.21-1/FreeFileSync/Source/localization.cpp 2022-05-24 08:48:56.398222091 -0400 +@@ -195,19 +195,19 @@ + if (lngCode == "zh") + { + if (lng == wxLANGUAGE_CHINESE) //wxWidgets assigns this to "zh" or "zh_TW" for some reason +- return wxLANGUAGE_CHINESE_CHINA; ++ return wxLANGUAGE_CHINESE_SIMPLIFIED; + + for (const char* l : {"zh_HK", "zh_MO", "zh_TW"}) + if (locale == l) + return wxLANGUAGE_CHINESE_TAIWAN; + +- return wxLANGUAGE_CHINESE_CHINA; ++ return wxLANGUAGE_CHINESE_SIMPLIFIED; + } + + if (lngCode == "en") + { + if (lng == wxLANGUAGE_ENGLISH || //wxWidgets assigns this to "en" or "en_GB" for some reason +- lng == wxLANGUAGE_ENGLISH_WORLD) ++ lng == wxLANGUAGE_ENGLISH_EIRE) + return wxLANGUAGE_ENGLISH_US; + + for (const char* l : {"en_US", "en_CA", "en_AS", "en_UM", "en_VI"}) +@@ -218,7 +218,7 @@ + } + + if (lngCode == "nb" || lngCode == "nn") //wxLANGUAGE_NORWEGIAN_BOKMAL, wxLANGUAGE_NORWEGIAN_NYNORSK +- return wxLANGUAGE_NORWEGIAN; ++ return wxLANGUAGE_NORWEGIAN_BOKMAL; + + if (locale == "pt_BR") + return wxLANGUAGE_PORTUGUESE_BRAZILIAN; +--- 11.21-0/FreeFileSync/Source/ui/main_dlg.cpp 2022-05-22 17:09:32.246809650 -0400 ++++ 11.21-1/FreeFileSync/Source/ui/main_dlg.cpp 2022-05-24 09:29:32.384695364 -0400 +@@ -1759,7 +1753,7 @@ + if (statusTxts_.empty()) + { + m_staticTextStatusCenter->SetForegroundColour(highlight ? wxColor(31, 57, 226) /*blue*/ : wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT)); +- m_staticTextStatusCenter->SetFont((m_staticTextStatusCenter->GetFont().*(highlight ? &wxFont::Bold : &wxFont::GetBaseFont))()); ++ m_staticTextStatusCenter->SetFont(m_staticTextStatusCenter->GetFont().Bold()); + + setText(*m_staticTextStatusCenter, text); + m_panelStatusBar->Layout(); diff --git a/freefilesync/ffs_sftp.patch b/freefilesync/03_sftp.patch index a51acc8..a51acc8 100644 --- a/freefilesync/ffs_sftp.patch +++ b/freefilesync/03_sftp.patch diff --git a/freefilesync/revert_zenju_aggressive_upstreamisms.patch b/freefilesync/04_revert_zenju_aggressive_upstreamisms.patch index fda8cc2..4758004 100644 --- a/freefilesync/revert_zenju_aggressive_upstreamisms.patch +++ b/freefilesync/04_revert_zenju_aggressive_upstreamisms.patch @@ -1,6 +1,6 @@ Message: Some of these can be traced back to version 10.23 which was the last to not use <unordered_map> -Date: 2022-04-18 -Version: 11.20 +Date: 2022-06-26 +Version: 11.22 Author: bgstack15 diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/wx+/choice_enum.h 10.24-1/wx+/choice_enum.h --- 10.24-0/wx+/choice_enum.h 2020-05-17 18:30:59.441499418 -0400 @@ -143,9 +143,9 @@ diff -x '*.orig' -x '*.rej' -aur 11.2-0/FreeFileSync/Source/ui/folder_selector.c //It looks like wxDD_SHOW_HIDDEN only sets the default when opening for the first time!? if (folderSelector.ShowModal() != wxID_OK) diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/bitmap_button.h 11.1-2/wx+/bitmap_button.h ---- 11.1-1/wx+/bitmap_button.h 2020-09-01 19:07:43.727122311 -0400 -+++ 11.1-2/wx+/bitmap_button.h 2020-09-01 20:10:31.385364671 -0400 -@@ -26,7 +26,7 @@ +--- 11.22-0/wx+/bitmap_button.h 2022-06-26 12:01:15.638291465 -0400 ++++ 11.22-1/wx+/bitmap_button.h 2022-06-26 12:51:34.527830821 -0400 +@@ -28,7 +28,7 @@ const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator = wxDefaultValidator, @@ -154,9 +154,25 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/bitmap_button.h 11.1-2/wx+/bitmap_bu wxBitmapButton(parent, id, wxNullBitmap, pos, size, style, validator, name) { SetLabel(label); +@@ -104,7 +104,6 @@ + wxBitmap renderSelectedButton(const wxSize& sz) + { + wxBitmap bmp(sz); //seems we don't need to pass 24-bit depth here even for high-contrast color schemes +- bmp.SetScaleFactor(getDisplayScaleFactor()); + { + wxMemoryDC dc(bmp); + +@@ -120,7 +119,6 @@ + wxBitmap renderPressedButton(const wxSize& sz) + { + wxBitmap bmp(sz); //seems we don't need to pass 24-bit depth here even for high-contrast color schemes +- bmp.SetScaleFactor(getDisplayScaleFactor()); + { + //draw rectangle border with gradient + const wxColor colFrom = wxSystemSettings::GetColour(wxSYS_COLOUR_BTNFACE); diff -aur -x '*.git*' -x '.*.swp' -x '*.orig' -x '*.rej' 11.6-0/wx+/dc.h 11.6-1/wx+/dc.h ---- 11.20-0/wx+/dc.h 2022-04-18 09:49:31.921386600 -0400 -+++ 11.20-1/wx+/dc.h 2022-04-18 10:12:04.667907393 -0400 +--- 11.21-0/wx+/dc.h 2022-05-22 17:09:32.250809701 -0400 ++++ 11.21-1/wx+/dc.h 2022-05-22 20:28:53.788193992 -0400 @@ -12,7 +12,7 @@ #include <zen/basic_math.h> #include <wx/dcbuffer.h> //for macro: wxALWAYS_NATIVE_DOUBLE_BUFFER @@ -175,18 +191,17 @@ diff -aur -x '*.git*' -x '.*.swp' -x '*.orig' -x '*.rej' 11.6-0/wx+/dc.h 11.6-1/ -#endif //GTK2 doesn't properly support high DPI: https://freefilesync.org/forum/viewtopic.php?t=6114 //=> requires general fix at wxWidgets-level - -@@ -119,11 +116,11 @@ + +@@ -126,11 +123,10 @@ inline -wxBitmapBundle toBitmapBundle(const wxImage& img /*expected to be DPI-scaled!*/) +wxBitmap toBitmapBundle(const wxImage& img /*expected to be DPI-scaled!*/) { - //return wxBitmap(img, -1 /*depth*/, static_cast<double>(getDPI()) / defaultDpi); not (yet) implemented + //return wxBitmap(img, -1 /*depth*/, static_cast<double>(getDPI()) / defaultDpi); implementation just ignores scale parameter! WTF! wxBitmap bmpScaled(img); -- bmpScaled.SetScaleFactor(static_cast<double>(getDPI()) / defaultDpi); -+ //bmpScaled.SetScaleFactor(static_cast<double>(getDPI()) / defaultDpi); +- bmpScaled.SetScaleFactor(getDisplayScaleFactor()); return bmpScaled; } @@ -329,7 +344,12 @@ diff -Naur -x '*.orig' -x '*.rej' -x '*.git*' 11.4-1/wx+/no_flicker.h 11.4-2/wx+ richCtrl.SetMargins({0, 0}); --- 11.20-0/FreeFileSync/Source/ui/progress_indicator.cpp 2022-04-18 09:49:31.917386558 -0400 +++ 11.20-1/FreeFileSync/Source/ui/progress_indicator.cpp 2022-04-18 11:02:10.988781908 -0400 -@@ -882,7 +885,6 @@ +@@ -878,12 +881,10 @@ + auto generateSquareBitmap = [&](const wxColor& fillCol, const wxColor& borderCol) + { + wxBitmap bmpSquare(this->GetCharHeight(), this->GetCharHeight()); //seems we don't need to pass 24-bit depth here even for high-contrast color schemes +- bmpSquare.SetScaleFactor(getDisplayScaleFactor()); + { wxMemoryDC dc(bmpSquare); drawInsetRectangle(dc, wxRect(bmpSquare.GetSize()), fastFromDIP(1), borderCol, fillCol); } @@ -337,3 +357,35 @@ diff -Naur -x '*.orig' -x '*.rej' -x '*.git*' 11.4-1/wx+/no_flicker.h 11.4-2/wx+ return bmpSquare; }; pnl_.m_bitmapGraphKeyBytes->SetBitmap(generateSquareBitmap(getColorBytes(), getColorBytesRim())); +--- 11.22-0/wx+/rtl.h 2022-06-26 12:01:15.642291514 -0400 ++++ 11.22-1/wx+/rtl.h 2022-06-26 12:58:17.248838575 -0400 +@@ -69,9 +69,6 @@ + if (!buffer || buffer->GetSize() != rect.GetSize()) //[!] since we do a mirror, width needs to match exactly! + buffer.emplace(rect.GetSize()); + +- if (buffer->GetScaleFactor() != dc.GetContentScaleFactor()) //needed here? +- buffer->SetScaleFactor(dc.GetContentScaleFactor()); // +- + wxMemoryDC memDc(*buffer); //copies scale factor from wxBitmap + memDc.Blit(wxPoint(0, 0), rect.GetSize(), &dc, rect.GetTopLeft()); //blit in: background is mirrored due to memDc, dc having different layout direction! + +--- 11.22-0/FreeFileSync/Source/ui/main_dlg.cpp 2022-06-26 12:01:15.634291415 -0400 ++++ 11.22-1/FreeFileSync/Source/ui/main_dlg.cpp 2022-06-26 14:44:38.556188935 -0400 +@@ -3595,7 +3590,6 @@ + }; + + wxBitmap bmpSquare(this->GetCharHeight(), this->GetCharHeight()); //seems we don't need to pass 24-bit depth here even for high-contrast color schemes +- bmpSquare.SetScaleFactor(getDisplayScaleFactor()); + { + wxMemoryDC dc(bmpSquare); + const wxColor borderCol(0xdd, 0xdd, 0xdd); //light grey +--- 11.22-0/wx+/image_tools.cpp 2022-06-26 16:29:25.668035003 -0400 ++++ 11.22-1/wx+/image_tools.cpp 2022-06-27 09:06:04.999244263 -0400 +@@ -188,7 +188,6 @@ + return wxNullImage; + + wxBitmap newBitmap(maxWidth, lineHeight * lineInfo.size()); //seems we don't need to pass 24-bit depth here even for high-contrast color schemes +- newBitmap.SetScaleFactor(getDisplayScaleFactor()); + { + dc.SelectObject(newBitmap); //copies scale factor from wxBitmap + ZEN_ON_SCOPE_EXIT(dc.SelectObject(wxNullBitmap)); diff --git a/freefilesync/ffs_traditional_view.patch b/freefilesync/05_traditional_view.patch index b9b35cc..2c7ab23 100644 --- a/freefilesync/ffs_traditional_view.patch +++ b/freefilesync/05_traditional_view.patch @@ -1,11 +1,11 @@ -Version: 11.6 -Date: 2021-02-02 +Version: 11.22 +Date: 2022-06-26 Author: bgstack15@gmail.com -Message: restore a traditional view to FreeFileSync +Message: restore a traditional view to FreeFileSync, and disable "welcomeShownVersion" About dialog 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 -@@ -493,8 +493,10 @@ +--- 11.21-0/FreeFileSync/Source/ui/file_grid.cpp 2022-05-22 17:09:32.242809600 -0400 ++++ 11.21-1/FreeFileSync/Source/ui/file_grid.cpp 2022-05-22 20:23:04.015916689 -0400 +@@ -475,8 +475,10 @@ case ItemPathFormat::name: return utfTo<std::wstring>(fsObj->getItemName<side>()); case ItemPathFormat::relative: @@ -16,7 +16,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. return AFS::getDisplayPath(fsObj->getAbstractPath<side>()); } assert(false); -@@ -547,8 +549,13 @@ +@@ -529,8 +531,13 @@ else GridData::renderRowBackgound(dc, rect, row, true /*enabled*/, true /*selected*/, rowHover); @@ -31,7 +31,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. clearArea(dc, rectLine, row == pdi.groupLastRow - 1 /*last group item*/ ? getColorGridLine() : getDefaultBackgroundColorAlternating(pdi.groupIdx % 2 != 0)); } -@@ -654,6 +661,26 @@ +@@ -636,6 +643,26 @@ else //=> BaseFolderPair groupParentFolder = AFS::getDisplayPath(pdi.fsObj->base().getAbstractPath<side>()); break; @@ -58,7 +58,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. } //path components should follow the app layout direction and are NOT a single piece of text! -@@ -679,11 +706,42 @@ +@@ -661,11 +688,38 @@ int groupNameWidth = groupName.empty() ? 0 : (gapSize_ + iconSize + gapSize_ + getTextExtentBuffered(dc, groupName).x); const int groupNameMinWidth = groupName.empty() ? 0 : (gapSize_ + iconSize + gapSize_ + ellipsisWidth); @@ -77,10 +77,6 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. + // start trad patch + + // rearrange this one section -+ //add slashes for better readability + a wide gap for disambiguation -+ assert(!contains(groupParentFolder, L'/') || !contains(groupParentFolder, L'\\')); -+ const wchar_t groupParentSep = contains(groupParentFolder, L'/') ? L'/' : (contains(groupParentFolder, L'\\') ? L'\\' : FILE_NAME_SEPARATOR); -+ + switch (itemPathFormat_) + { + case ItemPathFormat::traditional: @@ -89,7 +85,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. + if (!endsWith(groupParentFolder, L'/' ) && //e.g. ftp://server/ + !endsWith(groupParentFolder, L'\\') && /*e.g. C:\ */ + groupParentFolder.size() > 0 ) -+ groupParentFolder += groupParentSep; ++ groupParentFolder += contains(groupParentFolder, L'/') ? L'/' : (contains(groupParentFolder, L'\\') ? L'\\' : FILE_NAME_SEPARATOR); + break; + case ItemPathFormat::name: + case ItemPathFormat::relative: @@ -102,18 +98,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. //not enough space? => collapse if (int excessWidth = groupParentWidth + groupNameWidth + groupItemsWidth - maxWidth; excessWidth > 0) -@@ -693,10 +751,6 @@ - //1. render group components on two rows - stackedGroupRender = true; - -- //add slashes for better readability + a wide gap for disambiguation -- assert(!contains(groupParentFolder, L'/') || !contains(groupParentFolder, L'\\')); -- const wchar_t groupParentSep = contains(groupParentFolder, L'/') ? L'/' : (contains(groupParentFolder, L'\\') ? L'\\' : FILE_NAME_SEPARATOR); -- - if (!endsWith(groupParentFolder, L'/' ) && //e.g. ftp://server/ - !endsWith(groupParentFolder, L'\\')) /*e.g. C:\ */ - groupParentFolder += groupParentSep; -@@ -755,6 +809,11 @@ +@@ -731,6 +785,11 @@ } } } @@ -125,7 +110,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. return { -@@ -873,6 +932,9 @@ +@@ -851,6 +910,9 @@ rectGroup = rectGroupParent = rectGroupName = rectTmp; rectGroupParent.width = groupParentWidth; @@ -135,7 +120,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. rectGroupName .width = groupNameWidth; if (stackedGroupRender) -@@ -896,6 +958,11 @@ +@@ -874,6 +936,11 @@ rectGroupItems.width = 0; } @@ -147,7 +132,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. //------------------------------------------------------------------------- { //clear background below parent path => harmonize with renderRowBackgound() -@@ -906,8 +973,8 @@ +@@ -884,8 +951,8 @@ wxRect rectGroupBack = rectGroup; rectGroupBack.width += 2 * gapSize_; //include gap before vline @@ -158,7 +143,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. clearArea(dc, rectGroupBack, getDefaultBackgroundColorAlternating(pdi.groupIdx % 2 == 0)); //clearArea() is surprisingly expensive => call just once! -@@ -924,7 +991,8 @@ +@@ -900,7 +967,8 @@ rectNav.width = fastFromDIP(20); if (row == pdi.groupLastRow - 1 /*last group item*/) //preserve the group separation line! @@ -168,7 +153,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. wxColor backCol = wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW); dc.GetPixel(rectNav.GetTopRight(), &backCol); //e.g. selected row! -@@ -914,13 +982,13 @@ +@@ -908,13 +976,13 @@ dc.GradientFillLinear(rectNav, getColorSelectionGradientFrom(), backCol, wxEAST); } @@ -184,7 +169,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. wxDCTextColourChanger textColorGroupName(dc); //folder background: coordinate with renderRowBackgound() -@@ -974,9 +1042,9 @@ +@@ -947,9 +1015,9 @@ drawCellText(dc, rectGroupName, groupName, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL, &getTextExtentBuffered(dc, groupName)); } @@ -196,7 +181,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. (groupName.empty() || !pdi.folderGroupObj->isEmpty<side>())) //don't show for missing folders { wxRect rectGroupParentText = rectGroupParent; -@@ -975,16 +1043,16 @@ +@@ -969,16 +1037,16 @@ rectGroupItems.x += 2 * gapSize_; rectGroupItems.width -= 2 * gapSize_; @@ -217,7 +202,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. drawCudHighlight(rectItemsBack, pdi.fsObj->getSyncOperation()); -@@ -1134,7 +1202,12 @@ +@@ -1105,7 +1173,12 @@ groupNameWidth] = getGroupRenderLayout(dc, row, pdi, insanelyHugeWidth); assert(!stackedGroupRender); @@ -231,7 +216,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. const int fileIconWidth = getIconManager().getIconBuffer() ? gapSize_ + getIconManager().getIconSize() : 0; const int ellipsisWidth = getTextExtentBuffered(dc, ELLIPSIS).x; const int itemWidth = itemName.empty() ? 0 : -@@ -1166,6 +1239,10 @@ +@@ -1137,6 +1210,10 @@ return _("Relative path"); case ItemPathFormat::full: return _("Full path"); @@ -242,7 +227,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. } assert(false); break; -@@ -1423,7 +1500,8 @@ +@@ -1393,7 +1470,8 @@ GridData::renderRowBackgound(dc, rect, row, true /*enabled*/, true /*selected*/, rowHover); //---------------------------------------------------------------------------------- @@ -252,7 +237,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. clearArea(dc, rectLine, row == pdi.groupLastRow - 1 /*last group item*/ ? getColorGridLine() : getDefaultBackgroundColorAlternating(pdi.groupIdx % 2 != 0)); } -@@ -1447,7 +1525,8 @@ +@@ -1417,7 +1495,8 @@ { wxRect rectBack = rect; if (row == pdi.groupLastRow - 1 /*last group item*/) //preserve the group separation line! @@ -276,8 +261,8 @@ diff -x '.git*' -x '*.orig' -x '*.rej' -aur 11.2-1/FreeFileSync/Source/ui/file_g const ItemPathFormat defaultItemPathFormatLeftGrid = ItemPathFormat::relative; diff -x '.git*' -x '*.orig' -x '*.rej' -aur 11.2-1/FreeFileSync/Source/ui/main_dlg.cpp 11.2-1-trad3/FreeFileSync/Source/ui/main_dlg.cpp --- 11.2-1/FreeFileSync/Source/ui/main_dlg.cpp 2020-10-02 20:49:11.487782099 -0400 -+++ 11.12-1/FreeFileSync/Source/ui/main_dlg.cpp 2021-07-15 20:22:02.191278722 -0400 -@@ -2653,6 +2647,8 @@ ++++ 11.21-1/FreeFileSync/Source/ui/main_dlg.cpp 2022-05-22 20:26:31.350461792 -0400 +@@ -2741,6 +2741,8 @@ addFormatEntry(_("Item name" ), ItemPathFormat::name); addFormatEntry(_("Relative path"), ItemPathFormat::relative); addFormatEntry(_("Full path" ), ItemPathFormat::full); @@ -285,7 +270,7 @@ diff -x '.git*' -x '*.orig' -x '*.rej' -aur 11.2-1/FreeFileSync/Source/ui/main_d + addFormatEntry(_("Trad. relative"),ItemPathFormat::tradrel); //---------------------------------------------------------------------------------------------- - auto setIconSize = [&](FileIconSize sz, bool showIcons) + auto setIconSize = [&](GridIconSize sz, bool showIcons) diff -x '.git*' -x '*.orig' -x '*.rej' -aur 11.2-1/FreeFileSync/Source/config.cpp 11.2-1-trad3/FreeFileSync/Source/config.cpp --- 11.2-1/FreeFileSync/Source/config.cpp 2020-10-02 14:39:05.233462578 -0400 +++ 11.2-1-trad3/FreeFileSync/Source/config.cpp 2020-10-02 20:22:24.275555557 -0400 @@ -330,4 +315,14 @@ diff -x '.git*' -x '*.orig' -x '*.rej' -aur 11.2-1/FreeFileSync/Source/ui/file_v if ( ascending && onLeft) std::sort(sortedRef_.begin(), sortedRef_.end(), LessFullPath<true, SelectSide::left>(folderPairs_)); else if ( ascending && !onLeft) std::sort(sortedRef_.begin(), sortedRef_.end(), LessFullPath<true, SelectSide::right>(folderPairs_)); else if (!ascending && onLeft) std::sort(sortedRef_.begin(), sortedRef_.end(), LessFullPath<false, SelectSide::left>(folderPairs_)); - +diff -aur 11.22-0/FreeFileSync/Source/ui/main_dlg.cpp 11.22-1/FreeFileSync/Source/ui/main_dlg.cpp +--- 11.22-0/FreeFileSync/Source/ui/main_dlg.cpp 2022-06-26 12:01:15.634291415 -0400 ++++ 11.22-1/FreeFileSync/Source/ui/main_dlg.cpp 2022-06-26 15:39:46.313320272 -0400 +@@ -436,7 +436,6 @@ + if (mainDlg->globalCfg_.welcomeShownVersion != ffsVersion) + { + mainDlg->globalCfg_.welcomeShownVersion = ffsVersion; +- showAboutDialog(mainDlg); + } + + diff --git a/freefilesync/ffs_icon_loader.patch b/freefilesync/06_icon_loader.patch index 2575ec5..14035d5 100644 --- a/freefilesync/ffs_icon_loader.patch +++ b/freefilesync/06_icon_loader.patch @@ -1,20 +1,21 @@ Summary: Solve libglib2.0 problem in sketchy manner -Date: 2021-09-22 -Version: 11.14 +Date: 2022-05-24 +Version: 11.21 Author: bgstack15 Message: Warning! I have absolutely no idea what I am doing. Check https://freefilesync.org/forum/viewtopic.php?t=8780 for future developments. In Devuan Ceres, starting in 2021-08 with libglib2.0-0=2.68.3-2 the file icon_loader.cpp fails to compile. By removing the static_cast, this file can compile. The built application throws all sorts of GLib-GObject-CRITICIAL messages but the application operates. Downgrade to "deb [check-valid-until=no] https://snapshot.debian.org/archive/debian/20210801T144205Z/ unstable main non-free contrib" in /etc/apt/sources.list and install the exact libglib version necessary to compile without this patch. $ sudo apt-get -V install libglib2.0-0=2.66.8-1 libglib2.0-bin=2.66.8-1 libglib2.0-data=2.66.8-1 libglib2.0-dev=2.66.8-1 libglib2.0-dev-bin=2.66.8-1 libglib2.0-0:i386=2.66.8-1 ---- 11.13-0/FreeFileSync/Source/base/icon_loader.cpp 2021-09-22 07:35:40.991208133 -0400 -+++ 11.14-0/FreeFileSync/Source/base/icon_loader.cpp 2021-09-22 14:40:10.981215352 -0400 +Zenju tried addressing this for me, but it still does not compile, even with g++-12. So I still have to omit this macro call. +--- 11.21-0/FreeFileSync/Source/base/icon_loader.cpp 2022-05-22 17:09:32.234809499 -0400 ++++ 11.21-1/FreeFileSync/Source/base/icon_loader.cpp 2022-05-24 08:59:15.433965993 -0400 @@ -216,7 +216,7 @@ //the remaining icon types won't block! assert(GDK_IS_PIXBUF(gicon) || G_IS_THEMED_ICON(gicon) || G_IS_EMBLEMED_ICON(gicon)); -- return FileIconHolder(static_cast<GIcon*>(::g_object_ref(gicon)) /*pass ownership*/, maxSize); -+ return FileIconHolder(gicon /*pass ownership*/, maxSize); +- ::g_object_ref(gicon); //pass ownership ++ //::g_object_ref(gicon); //pass ownership + return FileIconHolder(gicon, maxSize); // } - diff --git a/freefilesync/ffs_libssh2.patch b/freefilesync/07_libssh2.patch index 022914b..022914b 100644 --- a/freefilesync/ffs_libssh2.patch +++ b/freefilesync/07_libssh2.patch diff --git a/freefilesync/_service b/freefilesync/_service new file mode 100644 index 0000000..c31e008 --- /dev/null +++ b/freefilesync/_service @@ -0,0 +1,28 @@ +<services> + <service name="tar_scm"> + <param name="scm">git</param> + <param name="url">https://gitlab.com/bgstack15/stackrpms.git</param> + <param name="subdir">freefilesync/debian</param> + <param name="filename">debian</param> + <param name="revision">freefilesync-bump</param> + <param name="version">_none_</param> + </service> + <service name="recompress"> + <param name="file">*.tar</param> + <param name="compression">xz</param> + </service> + <service name="tar_scm"> + <param name="scm">git</param> + <param name="url">https://gitlab.com/opensource-tracking/FreeFileSync.git</param> + <param name="revision">11.22</param> + <param name="version">_none_</param> + </service> + <service name="recompress"> + <param name="file">*.tar</param> + <param name="compression">gz</param> + </service> + <service name="extract_file"> + <param name="archive">*.tar.xz</param> + <param name="files">*/*.dsc</param> + </service> +</services> diff --git a/freefilesync/debian/changelog b/freefilesync/debian/changelog index 9037cac..5ab5cdd 100644 --- a/freefilesync/debian/changelog +++ b/freefilesync/debian/changelog @@ -1,13 +1,46 @@ +freefilesync (11.22-1+devuan) obs; urgency=medium + + * Upstream updates + * Allow to change default log folder in global settings + * Fixed sort order when items existing on one side only + * Consider HOME environment variable for home path (Linux) + * Fixed config selection using shift and arrow keys + * Start comparison, then sync by only pressing Enter after startup + * Fall back to default path when failing to save log file + * Improved relative config path handling in portable mode + * Dpkg updates + * Fix sloppiness regarding missing Animal.dat + * Suppress showing About dialog after upgrade + + -- B. Stack <bgstack15@gmail.com> Sun, 26 Jun 2022 16:21:42 -0400 + +freefilesync (11.21-1+devuan) obs; urgency=medium + + * Upstream updates + * Support volume GUID as path: + \\?\Volume{01234567-89ab-cdef-0123-456789abcdef} (Windows) + * Avoid Two-Way conflict when changing folder name upper/lower-case + * List hidden warning messages in options dialog + * Fixed buffer overflow while receiving SFTP server banner + * Create crash dumps even if FFS-internal crash handling doesn't kick in + * Log time when error occured, not when it is reported + * Swap sides: Require confirmation only after comparison + * Updated translation files + * Dpkg updates + * Remove icon loader patch (addressed by upstream) + + -- B. Stack <bgstack15@gmail.com> Sun, 22 May 2022 20:35:38 -0400 + freefilesync (11.20-1+devuan) obs; urgency=medium * Upstream updates * Fixed broken icon scaling on high-DPI displays - * Improved performance for huge exclusion filter lists: linear to + * Improved performance for huge exclusion filter lists: linear to constant(!) time * Support sync with Google Drive starred folders - * Access "My Computers" (as created by Google Backup and Sync) if + * Access "My Computers" (as created by Google Backup and Sync) if starred - * Western Digital Mycloud NAS: fixed ERROR_ALREADY_EXISTS when changing + * Western Digital Mycloud NAS: fixed ERROR_ALREADY_EXISTS when changing case * Added per-file progress for "copy to" function * Have filter wildcard ? not match path separator @@ -35,7 +68,7 @@ freefilesync (11.18-1+devuan) obs; urgency=medium * Fixed SFTP key file login error on OpenSSH_8.8p1 * Add error details for NSFileReadUnknownError (macOS) * Disable new config button when already at default - * Use user language instead of region locale during installation + * Use user language instead of region locale during installation * Bump required libcurl4-openssl-dev >= 7.82.0 -- B. Stack <bgstack15@gmail.com> Wed, 09 Mar 2022 09:38:41 -0500 diff --git a/freefilesync/debian/control b/freefilesync/debian/control index 9301bd0..9baed3d 100644 --- a/freefilesync/debian/control +++ b/freefilesync/debian/control @@ -4,12 +4,12 @@ Priority: optional Maintainer: B. Stack <bgstack15@gmail.com> Build-Depends: debhelper (>=12~), imagemagick, - g++-11, + g++-12, libbrotli-dev, - libcurl4-openssl-dev (>=7.82.0), + libcurl4-openssl-dev (>=7.83.1-1+b1), libglibmm-2.4-dev, - libssh2-1-dev, - libssl-dev, + libssh2-1-dev (>=1.10.0-3+b1), + libssl-dev (>=3.0.3-5), wx3.0-headers, unzip, # gtk3 version, and these must be removed for gtk2 build diff --git a/freefilesync/debian/freefilesync+devuan.dsc b/freefilesync/debian/freefilesync+devuan.dsc index e2ca5a6..b6f4f0f 100644 --- a/freefilesync/debian/freefilesync+devuan.dsc +++ b/freefilesync/debian/freefilesync+devuan.dsc @@ -2,11 +2,11 @@ Format: 3.0 (quilt) Source: freefilesync Binary: freefilesync Architecture: any -Version: 11.20-1+devuan +Version: 11.22-1+devuan Maintainer: B. Stack <bgstack15@gmail.com> Homepage: https://freefilesync.org/ Standards-Version: 4.1.4 -Build-Depends: debhelper (>= 12~), g++-11, imagemagick, libbrotli-dev, libcurl4-openssl-dev (>= 7.82.0), libglibmm-2.4-dev, libssh2-1-dev, libssl-dev, wx3.0-headers, unzip, libgtk-3-dev, libwxgtk3.0-gtk3-dev, libfontconfig-dev +Build-Depends: debhelper (>= 12~), g++-12, imagemagick, libbrotli-dev, libcurl4-openssl-dev (>= 7.83.1-1+b1), libglibmm-2.4-dev, libssh2-1-dev (>= 1.10.0-3+b1), libssl-dev (>= 3.0.3-5), wx3.0-headers, unzip, libgtk-3-dev, libwxgtk3.0-gtk3-dev, libfontconfig-dev Package-List: freefilesync deb utils optional arch=any Files: diff --git a/freefilesync/debian/patches/ffs_allow_parallel_ops.patch b/freefilesync/debian/patches/ffs_allow_parallel_ops.patch index 473ae46..65226bb 100644 --- a/freefilesync/debian/patches/ffs_allow_parallel_ops.patch +++ b/freefilesync/debian/patches/ffs_allow_parallel_ops.patch @@ -1,5 +1,6 @@ -Last version tested: 11.13 -The source release appears not to actually include the logic that performs operations in parallel, so this patch doesn't actually do anything. +Version: 11.22 +Date: 2022-06-26 +Message: The source release appears not to actually include the logic that performs operations in parallel, so this patch doesn't actually do anything. 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 @@ -44,14 +45,15 @@ diff -Naur -x '*.orig' -x '*.rej' -x '*.git*' 11.4-0/FreeFileSync/Source/ui/smal m_targetFolderPath->setHistory(std::make_shared<HistoryList>(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.13-0/FreeFileSync/Source/ui/sync_cfg.cpp 2021-08-17 19:18:02.039992429 -0400 -+++ 11.13-1/FreeFileSync/Source/ui/sync_cfg.cpp 2021-08-17 19:33:01.693071327 -0400 -@@ -348,7 +348,7 @@ +--- 11.22-0/FreeFileSync/Source/ui/sync_cfg.cpp 2022-06-26 12:01:15.638291465 -0400 ++++ 11.22-1/FreeFileSync/Source/ui/sync_cfg.cpp 2022-06-26 12:42:38.181161442 -0400 +@@ -352,7 +352,7 @@ commandHistoryOut_(commandHistory), globalPairCfg_(globalPairCfg), localPairCfg_(localPairCfg), - enableExtraFeatures_(false), + enableExtraFeatures_(true), - showMultipleCfgs_(showMultipleCfgs) + showMultipleCfgs_(showMultipleCfgs), + globalLogFolderPhrase_(globalLogFolderPhrase) { - setStandardButtonLayout(*bSizerStdButtons, StdButtons().setAffirmative(m_buttonOkay).setCancel(m_buttonCancel)); + diff --git a/freefilesync/debian/patches/ffs_devuan.patch b/freefilesync/debian/patches/ffs_devuan.patch index da59209..06de345 100644 --- a/freefilesync/debian/patches/ffs_devuan.patch +++ b/freefilesync/debian/patches/ffs_devuan.patch @@ -1,16 +1,16 @@ Author: bgstack15 Source: Original research -Last modified: 2022-04-18 +Last-Modified: 2022-05-22 +Last-Version: 11.21 Message: Main patch to compile on Devuan. diff -x '*.swp' -x '.git*' -x '*.orig' -x '*.rej' -Naur 10.18-0/FreeFileSync/Source/ffs_paths.cpp 10.18-1/FreeFileSync/Source/ffs_paths.cpp --- 10.13-0/FreeFileSync/Source/ffs_paths.cpp 2019-06-14 20:23:07.615661499 -0400 -+++ 10.18-1/FreeFileSync/Source/ffs_paths.cpp 2019-11-21 09:41:42.287474472 -0500 -@@ -64,7 +64,8 @@ ++++ 11.21-1/FreeFileSync/Source/ffs_paths.cpp 2019-11-21 09:41:42.287474472 -0500 +@@ -49,7 +49,7 @@ - Zstring fff::getResourceDirPf() + Zstring fff::getResourceDirPath() { -- return getProcessParentFolderPath() + FILE_NAME_SEPARATOR + Zstr("Resources") + FILE_NAME_SEPARATOR; -+ // For Fedora, EL and Devuan, install to /usr/share/freefilesync specificly +- return appendPath(getProcessParentFolderPath(), Zstr("Resources")); + return Zstr("/usr/share/freefilesync/"); } @@ -61,4 +61,52 @@ diff -Naur -x '*.orig' -x '*.rej' -x .git 11.4-0/FreeFileSync/Source/RealTimeSyn #Gtk - support "no button border" cxxFlags += `pkg-config --cflags gtk+-2.0` - +Message: Fix some sloppiness by Zenju. +diff -Naur -x '*.orig' -x '*.rej' -x .git 11.21-0/FreeFileSync/Source/application.cpp 11.21-1/FreeFileSync/Source/application.cpp +--- 11.21-0/FreeFileSync/Source/application.cpp 2022-05-22 17:09:32.234809499 -0400 ++++ 11.21-1/FreeFileSync/Source/application.cpp 2022-05-24 08:36:51.949159500 -0400 +@@ -92,7 +92,7 @@ + ZEN_ON_SCOPE_EXIT(if (error) ::g_error_free(error)); + + ::gtk_css_provider_load_from_path(provider, //GtkCssProvider* css_provider, +- (getResourceDirPf() + fileName).c_str(), //const gchar* path, ++ (getResourceDirPath() + fileName).c_str(), //const gchar* path, + &error); //GError** error + if (error) + throw SysError(formatGlibError("gtk_css_provider_load_from_path", error)); +--- 11.21-0/FreeFileSync/Source/RealTimeSync/application.cpp 2022-05-22 17:09:32.226809398 -0400 ++++ 11.21-1/FreeFileSync/Source/RealTimeSync/application.cpp 2022-05-25 09:15:00.262617987 -0400 +@@ -68,7 +68,7 @@ + ZEN_ON_SCOPE_EXIT(if (error) ::g_error_free(error)); + + ::gtk_css_provider_load_from_path(provider, //GtkCssProvider* css_provider, +- (fff::getResourceDirPf() + fileName).c_str(), //const gchar* path, ++ (fff::getResourceDirPath() + fileName).c_str(), //const gchar* path, + &error); //GError** error + if (error) + throw SysError(formatGlibError("gtk_css_provider_load_from_path", error)); +Message: some random sloppiness with a missing graphical asset. It's not important to the application. +--- 11.22-0/FreeFileSync/Source/ui/small_dlgs.cpp 2022-06-26 16:03:49.887270966 -0400 ++++ 11.22-1/FreeFileSync/Source/ui/small_dlgs.cpp 2022-06-26 16:03:52.123298767 -0400 +@@ -140,9 +140,9 @@ + + wxImage::AddHandler(new wxJPEGHandler /*ownership passed*/); //activate support for .jpg files + +- wxImage animalImg(utfTo<wxString>(appendPath(getResourceDirPath(), Zstr("Animal.dat"))), wxBITMAP_TYPE_JPEG); +- convertToVanillaImage(animalImg); +- assert(animalImg.IsOk()); ++ //wxImage animalImg(utfTo<wxString>(appendPath(getResourceDirPath(), Zstr("Animal.dat"))), wxBITMAP_TYPE_JPEG); ++ //convertToVanillaImage(animalImg); ++ //assert(animalImg.IsOk()); + + //-------------------------------------------------------------------------- + //have animal + text match *final* dialog width +@@ -152,7 +152,7 @@ + const int imageWidth = (m_panelDonate->GetSize().GetWidth() - 5 - 5 /* grey border*/) / 2; + const int textWidth = m_panelDonate->GetSize().GetWidth() - 5 - 5 - imageWidth; + +- setImage(*m_bitmapAnimalSmall, shrinkImage(animalImg, imageWidth, -1 /*maxHeight*/)); ++ //setImage(*m_bitmapAnimalSmall, shrinkImage(animalImg, imageWidth, -1 /*maxHeight*/)); + + m_staticTextDonate->Show(); + m_staticTextDonate->Wrap(textWidth - 10 /*left gap*/); //wrap *after* changing font size diff --git a/freefilesync/debian/patches/ffs_gcc.patch b/freefilesync/debian/patches/ffs_gcc.patch index dd9e628..e5a5a96 100644 --- a/freefilesync/debian/patches/ffs_gcc.patch +++ b/freefilesync/debian/patches/ffs_gcc.patch @@ -1,13 +1,13 @@ -Date: 2022-04-18 -Version: 11.20 -Message: Parameterize the C++ compiler invocation +Date: 2022-05-24 +Version: 11.21 +Message: Parameterize the C++ compiler invocation, and use g++-12 Author: bgstack15 diff -aur 11.2-1/FreeFileSync/Source/Makefile 11.2-2/FreeFileSync/Source/Makefile --- 11.2-1/FreeFileSync/Source/Makefile 2020-10-02 14:59:35.816639878 -0400 +++ 11.2-2/FreeFileSync/Source/Makefile 2020-10-02 14:59:54.220866929 -0400 @@ -1,4 +1,5 @@ exeName = FreeFileSync -+CXX=g++-11 ++CXX=g++-12 cxxFlags += -std=c++2b -pipe -DWXINTL_NO_GETTEXT_MACRO -I../.. -I../../zenXml -include "zen/i18n.h" -include "zen/warn_static.h" \ -Wall -Wfatal-errors -Wmissing-include-dirs -Wswitch-enum -Wcast-align -Wnon-virtual-dtor -Wno-unused-function -Wshadow -Wno-maybe-uninitialized \ @@ -30,7 +30,7 @@ diff -aur 11.2-1/FreeFileSync/Source/RealTimeSync/Makefile 11.2-2/FreeFileSync/S +++ 11.2-2/FreeFileSync/Source/RealTimeSync/Makefile 2020-10-02 14:59:54.220866929 -0400 @@ -1,4 +1,5 @@ exeName = RealTimeSync -+CXX=g++-11 ++CXX=g++-12 cxxFlags += -std=c++2b -pipe -DWXINTL_NO_GETTEXT_MACRO -I../../.. -I../../../zenXml -include "zen/i18n.h" -include "zen/warn_static.h" \ -Wall -Wfatal-errors -Wmissing-include-dirs -Wswitch-enum -Wcast-align -Wnon-virtual-dtor -Wno-unused-function -Wshadow -Wno-maybe-uninitialized \ diff --git a/freefilesync/debian/patches/ffs_icon_loader.patch b/freefilesync/debian/patches/ffs_icon_loader.patch index 2575ec5..14035d5 100644 --- a/freefilesync/debian/patches/ffs_icon_loader.patch +++ b/freefilesync/debian/patches/ffs_icon_loader.patch @@ -1,20 +1,21 @@ Summary: Solve libglib2.0 problem in sketchy manner -Date: 2021-09-22 -Version: 11.14 +Date: 2022-05-24 +Version: 11.21 Author: bgstack15 Message: Warning! I have absolutely no idea what I am doing. Check https://freefilesync.org/forum/viewtopic.php?t=8780 for future developments. In Devuan Ceres, starting in 2021-08 with libglib2.0-0=2.68.3-2 the file icon_loader.cpp fails to compile. By removing the static_cast, this file can compile. The built application throws all sorts of GLib-GObject-CRITICIAL messages but the application operates. Downgrade to "deb [check-valid-until=no] https://snapshot.debian.org/archive/debian/20210801T144205Z/ unstable main non-free contrib" in /etc/apt/sources.list and install the exact libglib version necessary to compile without this patch. $ sudo apt-get -V install libglib2.0-0=2.66.8-1 libglib2.0-bin=2.66.8-1 libglib2.0-data=2.66.8-1 libglib2.0-dev=2.66.8-1 libglib2.0-dev-bin=2.66.8-1 libglib2.0-0:i386=2.66.8-1 ---- 11.13-0/FreeFileSync/Source/base/icon_loader.cpp 2021-09-22 07:35:40.991208133 -0400 -+++ 11.14-0/FreeFileSync/Source/base/icon_loader.cpp 2021-09-22 14:40:10.981215352 -0400 +Zenju tried addressing this for me, but it still does not compile, even with g++-12. So I still have to omit this macro call. +--- 11.21-0/FreeFileSync/Source/base/icon_loader.cpp 2022-05-22 17:09:32.234809499 -0400 ++++ 11.21-1/FreeFileSync/Source/base/icon_loader.cpp 2022-05-24 08:59:15.433965993 -0400 @@ -216,7 +216,7 @@ //the remaining icon types won't block! assert(GDK_IS_PIXBUF(gicon) || G_IS_THEMED_ICON(gicon) || G_IS_EMBLEMED_ICON(gicon)); -- return FileIconHolder(static_cast<GIcon*>(::g_object_ref(gicon)) /*pass ownership*/, maxSize); -+ return FileIconHolder(gicon /*pass ownership*/, maxSize); +- ::g_object_ref(gicon); //pass ownership ++ //::g_object_ref(gicon); //pass ownership + return FileIconHolder(gicon, maxSize); // } - diff --git a/freefilesync/debian/patches/ffs_no_check_updates.patch b/freefilesync/debian/patches/ffs_no_check_updates.patch index bdc2ebd..1d11f96 100644 --- a/freefilesync/debian/patches/ffs_no_check_updates.patch +++ b/freefilesync/debian/patches/ffs_no_check_updates.patch @@ -1,10 +1,10 @@ -Version: 11.20 -Date: 2022-04-18 +Version: 11.22 +Date: 2022-06-26 Author: bgstack15 Message: This is a major rewrite of the ffs_no_check_updates patch from before 11.10 which disabled only a few technical www interactions. This current version completely deletes all logic associated with checking the version of the program. diff -aur 11.18-0/FreeFileSync/Source/ui/gui_generated.cpp 11.18-1/FreeFileSync/Source/ui/gui_generated.cpp ---- 11.18-0/FreeFileSync/Source/ui/gui_generated.cpp 2022-03-08 16:51:21.090657955 -0500 -+++ 11.18-1/FreeFileSync/Source/ui/gui_generated.cpp 2022-03-08 16:55:57.009584234 -0500 +--- 11.22-0/FreeFileSync/Source/ui/gui_generated.cpp 2022-06-26 12:01:15.634291415 -0400 ++++ 11.22-1/FreeFileSync/Source/ui/gui_generated.cpp 2022-06-26 12:39:05.058511306 -0400 @@ -110,15 +110,6 @@ m_menuHelp->AppendSeparator(); @@ -31,9 +31,9 @@ diff -aur 11.18-0/FreeFileSync/Source/ui/gui_generated.cpp 11.18-1/FreeFileSync/ m_bpButtonCmpConfig->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onCmpSettings ), NULL, this ); m_bpButtonCmpConfig->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onCompSettingsContextMouse ), NULL, this ); diff -aur 11.18-0/FreeFileSync/Source/ui/gui_generated.h 11.18-1/FreeFileSync/Source/ui/gui_generated.h ---- 11.18-0/FreeFileSync/Source/ui/gui_generated.h 2022-03-08 16:51:21.114658209 -0500 -+++ 11.18-1/FreeFileSync/Source/ui/gui_generated.h 2022-03-08 16:56:17.057796860 -0500 -@@ -95,8 +95,6 @@ +--- 11.22-0/FreeFileSync/Source/ui/gui_generated.h 2022-06-26 12:01:15.634291415 -0400 ++++ 11.22-1/FreeFileSync/Source/ui/gui_generated.h 2022-06-26 12:38:30.522081852 -0400 +@@ -96,8 +96,6 @@ wxMenuItem* m_menuItemShowOverview; wxMenu* m_menuHelp; wxMenuItem* m_menuItemHelp; @@ -42,7 +42,7 @@ diff -aur 11.18-0/FreeFileSync/Source/ui/gui_generated.h 11.18-1/FreeFileSync/So wxMenuItem* m_menuItemAbout; wxBoxSizer* bSizerPanelHolder; wxPanel* m_panelTopButtons; -@@ -231,8 +229,6 @@ +@@ -232,8 +230,6 @@ virtual void onMenuExportFileList( wxCommandEvent& event ) { event.Skip(); } virtual void onMenuResetLayout( wxCommandEvent& event ) { event.Skip(); } virtual void onShowHelp( wxCommandEvent& event ) { event.Skip(); } @@ -54,7 +54,15 @@ diff -aur 11.18-0/FreeFileSync/Source/ui/gui_generated.h 11.18-1/FreeFileSync/So diff -aur 11.10-1/FreeFileSync/Source/ui/main_dlg.cpp 11.10-2/FreeFileSync/Source/ui/main_dlg.cpp --- 11.16-0/FreeFileSync/Source/ui/main_dlg.cpp 2022-01-04 08:52:19.811432573 -0500 +++ 11.16-1/FreeFileSync/Source/ui/main_dlg.cpp 2022-01-04 08:57:14.506728896 -0500 -@@ -744,7 +744,6 @@ +@@ -31,7 +31,6 @@ + #include <wx+/image_resources.h> + //#include <wx+/std_button_layout.h> + #include "cfg_grid.h" +-#include "version_check.h" + #include "gui_status_handler.h" + #include "small_dlgs.h" + #include "progress_indicator.h" +@@ -821,7 +820,6 @@ setImage(*m_menuItemHelp, loadImage("help_sicon")); setImage(*m_menuItemAbout, loadImage("about_sicon")); @@ -62,7 +70,7 @@ diff -aur 11.10-1/FreeFileSync/Source/ui/main_dlg.cpp 11.10-2/FreeFileSync/Sourc fixMenuIcons(*m_menuFile); fixMenuIcons(*m_menuActions); -@@ -854,9 +853,6 @@ +@@ -922,9 +920,6 @@ //mainly to update row label sizes... updateGui(); @@ -81,7 +89,7 @@ diff -aur 11.10-1/FreeFileSync/Source/ui/main_dlg.cpp 11.10-2/FreeFileSync/Sourc auiMgr_.Update(); } -@@ -5680,72 +5674,6 @@ +@@ -5740,72 +5734,6 @@ } } @@ -103,7 +111,7 @@ diff -aur 11.10-1/FreeFileSync/Source/ui/main_dlg.cpp 11.10-2/FreeFileSync/Sourc - - if (shouldRunAutomaticUpdateCheck(globalCfg_.lastUpdateCheck)) - { -- flashStatusInformation(_("Searching for program updates...")); +- flashStatusInfo(_("Searching for program updates...")); - //synchronous update check is sufficient here: - automaticUpdateCheckEval(*this, globalCfg_.lastUpdateCheck, globalCfg_.lastOnlineVersion, - automaticUpdateCheckRunAsync(automaticUpdateCheckPrepare(*this).get()).get()); @@ -134,7 +142,7 @@ diff -aur 11.10-1/FreeFileSync/Source/ui/main_dlg.cpp 11.10-2/FreeFileSync/Sourc - - if (shouldRunAutomaticUpdateCheck(globalCfg_.lastUpdateCheck)) - { -- flashStatusInformation(_("Searching for program updates...")); +- flashStatusInfo(_("Searching for program updates...")); - - std::shared_ptr<const UpdateCheckResultPrep> resultPrep = automaticUpdateCheckPrepare(*this); //run on main thread: - @@ -271,3 +279,25 @@ diff -aur 11.10-1/FreeFileSync/Source/ui/version_check.h 11.10-2/FreeFileSync/So } #endif //VERSION_CHECK_H_324872374893274983275 +diff -aur /usr/src/freefilesync/11.22-0/FreeFileSync/Source/Makefile /usr/src/freefilesync/11.22-1/FreeFileSync/Source/Makefile +--- 11.22-0/FreeFileSync/Source/Makefile 2022-06-26 11:47:06.603733867 -0400 ++++ 11.22-1/FreeFileSync/Source/Makefile 2022-06-26 14:01:34.640058450 -0400 +@@ -76,7 +85,6 @@ + cppFiles+=ui/sync_cfg.cpp + cppFiles+=ui/tray_icon.cpp + cppFiles+=ui/triple_splitter.cpp +-cppFiles+=ui/version_check.cpp + cppFiles+=../../libcurl/curl_wrap.cpp + cppFiles+=../../zen/file_access.cpp + cppFiles+=../../zen/file_io.cpp +diff -aur /usr/src/freefilesync/11.22-0/FreeFileSync/Source/ui/small_dlgs.cpp /usr/src/freefilesync/11.22-1/FreeFileSync/Source/ui/small_dlgs.cpp +--- 11.22-0/FreeFileSync/Source/ui/small_dlgs.cpp 2022-06-26 12:01:15.638291465 -0400 ++++ 11.22-1/FreeFileSync/Source/ui/small_dlgs.cpp 2022-06-26 14:01:37.516094208 -0400 +@@ -27,7 +27,6 @@ + #include <wx+/image_resources.h> + #include "gui_generated.h" + #include "folder_selector.h" +-#include "version_check.h" + #include "abstract_folder_picker.h" + #include "../afs/concrete.h" + #include "../afs/gdrive.h" diff --git a/freefilesync/debian/patches/ffs_no_wx311.patch b/freefilesync/debian/patches/ffs_no_wx311.patch index 1671e4c..e74da90 100644 --- a/freefilesync/debian/patches/ffs_no_wx311.patch +++ b/freefilesync/debian/patches/ffs_no_wx311.patch @@ -1,10 +1,10 @@ -Last modified: 2022-04-18 -Version: 11.20 +Last modified: 2022-05-24 +Version: 11.21 Author: bgstack15 Message: Just compile by stepping around wxWidgets 3.1.1 calls 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 ++++ 11.21-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())); @@ -15,6 +15,16 @@ diff -Naur -x '*.orig' -x '*.rej' -x .git 11.4-0/FreeFileSync/Source/ui/small_dl //set default values for Google Drive: use first item of m_listBoxGdriveUsers if (!gdriveAccounts.empty() && !acceptsItemPathPhraseGdrive(folderPathPhrase)) +@@ -1292,7 +1298,8 @@ + for (const auto& [dlgShown, dlgSetShown, msg] : hiddenDialogCfgMapping_) + dialogMessages.push_back(msg); + +- m_checkListHiddenDialogs->Append(dialogMessages); ++ for (const wxString& item :dialogMessages) // reverted to pre-wx 3.1.1 logic ++ m_checkListHiddenDialogs->Append(item); + + unsigned int itemPos = 0; + for (const auto& [dlgShown, dlgSetShown, msg] : hiddenDialogCfgMapping_) @@ -1689,7 +1690,6 @@ //setMainInstructionFont(*m_staticTextMain); @@ -63,3 +73,66 @@ diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/FreeFileSync/Source/ui/fol //this->SetSelection(wxNOT_FOUND); //don't select anything ChangeValue(folderPathPhrase); //preserve main text! +--- 11.21-0/FreeFileSync/Source/config.cpp 2022-05-22 17:09:32.238809549 -0400 ++++ 11.21-1/FreeFileSync/Source/config.cpp 2022-05-24 08:41:55.360955076 -0400 +@@ -1502,13 +1512,13 @@ + if (lngName == "English (US)") + cfg.programLanguage = wxLANGUAGE_ENGLISH_US; + else if (lngName == "Chinese (Simplified)") +- cfg.programLanguage = wxLANGUAGE_CHINESE_CHINA; ++ cfg.programLanguage = wxLANGUAGE_CHINESE_SIMPLIFIED; + else if (lngName == "Chinese (Traditional)") + cfg.programLanguage = wxLANGUAGE_CHINESE_TAIWAN; + else if (lngName == "English (U.K.)") + cfg.programLanguage = wxLANGUAGE_ENGLISH_UK; + else if (lngName == "Norwegian (Bokmal)") +- cfg.programLanguage = wxLANGUAGE_NORWEGIAN; ++ cfg.programLanguage = wxLANGUAGE_NORWEGIAN_BOKMAL; + else if (lngName == "Portuguese (Brazilian)") + cfg.programLanguage = wxLANGUAGE_PORTUGUESE_BRAZILIAN; + else if (const wxLanguageInfo* lngInfo = wxLocale::FindLanguageInfo(utfTo<wxString>(lngName))) +--- 11.21-0/FreeFileSync/Source/localization.cpp 2022-05-22 17:09:32.238809549 -0400 ++++ 11.21-1/FreeFileSync/Source/localization.cpp 2022-05-24 08:48:56.398222091 -0400 +@@ -195,19 +195,19 @@ + if (lngCode == "zh") + { + if (lng == wxLANGUAGE_CHINESE) //wxWidgets assigns this to "zh" or "zh_TW" for some reason +- return wxLANGUAGE_CHINESE_CHINA; ++ return wxLANGUAGE_CHINESE_SIMPLIFIED; + + for (const char* l : {"zh_HK", "zh_MO", "zh_TW"}) + if (locale == l) + return wxLANGUAGE_CHINESE_TAIWAN; + +- return wxLANGUAGE_CHINESE_CHINA; ++ return wxLANGUAGE_CHINESE_SIMPLIFIED; + } + + if (lngCode == "en") + { + if (lng == wxLANGUAGE_ENGLISH || //wxWidgets assigns this to "en" or "en_GB" for some reason +- lng == wxLANGUAGE_ENGLISH_WORLD) ++ lng == wxLANGUAGE_ENGLISH_EIRE) + return wxLANGUAGE_ENGLISH_US; + + for (const char* l : {"en_US", "en_CA", "en_AS", "en_UM", "en_VI"}) +@@ -218,7 +218,7 @@ + } + + if (lngCode == "nb" || lngCode == "nn") //wxLANGUAGE_NORWEGIAN_BOKMAL, wxLANGUAGE_NORWEGIAN_NYNORSK +- return wxLANGUAGE_NORWEGIAN; ++ return wxLANGUAGE_NORWEGIAN_BOKMAL; + + if (locale == "pt_BR") + return wxLANGUAGE_PORTUGUESE_BRAZILIAN; +--- 11.21-0/FreeFileSync/Source/ui/main_dlg.cpp 2022-05-22 17:09:32.246809650 -0400 ++++ 11.21-1/FreeFileSync/Source/ui/main_dlg.cpp 2022-05-24 09:29:32.384695364 -0400 +@@ -1759,7 +1753,7 @@ + if (statusTxts_.empty()) + { + m_staticTextStatusCenter->SetForegroundColour(highlight ? wxColor(31, 57, 226) /*blue*/ : wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT)); +- m_staticTextStatusCenter->SetFont((m_staticTextStatusCenter->GetFont().*(highlight ? &wxFont::Bold : &wxFont::GetBaseFont))()); ++ m_staticTextStatusCenter->SetFont(m_staticTextStatusCenter->GetFont().Bold()); + + setText(*m_staticTextStatusCenter, text); + m_panelStatusBar->Layout(); diff --git a/freefilesync/debian/patches/ffs_traditional_view.patch b/freefilesync/debian/patches/ffs_traditional_view.patch index b9b35cc..2c7ab23 100644 --- a/freefilesync/debian/patches/ffs_traditional_view.patch +++ b/freefilesync/debian/patches/ffs_traditional_view.patch @@ -1,11 +1,11 @@ -Version: 11.6 -Date: 2021-02-02 +Version: 11.22 +Date: 2022-06-26 Author: bgstack15@gmail.com -Message: restore a traditional view to FreeFileSync +Message: restore a traditional view to FreeFileSync, and disable "welcomeShownVersion" About dialog 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 -@@ -493,8 +493,10 @@ +--- 11.21-0/FreeFileSync/Source/ui/file_grid.cpp 2022-05-22 17:09:32.242809600 -0400 ++++ 11.21-1/FreeFileSync/Source/ui/file_grid.cpp 2022-05-22 20:23:04.015916689 -0400 +@@ -475,8 +475,10 @@ case ItemPathFormat::name: return utfTo<std::wstring>(fsObj->getItemName<side>()); case ItemPathFormat::relative: @@ -16,7 +16,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. return AFS::getDisplayPath(fsObj->getAbstractPath<side>()); } assert(false); -@@ -547,8 +549,13 @@ +@@ -529,8 +531,13 @@ else GridData::renderRowBackgound(dc, rect, row, true /*enabled*/, true /*selected*/, rowHover); @@ -31,7 +31,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. clearArea(dc, rectLine, row == pdi.groupLastRow - 1 /*last group item*/ ? getColorGridLine() : getDefaultBackgroundColorAlternating(pdi.groupIdx % 2 != 0)); } -@@ -654,6 +661,26 @@ +@@ -636,6 +643,26 @@ else //=> BaseFolderPair groupParentFolder = AFS::getDisplayPath(pdi.fsObj->base().getAbstractPath<side>()); break; @@ -58,7 +58,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. } //path components should follow the app layout direction and are NOT a single piece of text! -@@ -679,11 +706,42 @@ +@@ -661,11 +688,38 @@ int groupNameWidth = groupName.empty() ? 0 : (gapSize_ + iconSize + gapSize_ + getTextExtentBuffered(dc, groupName).x); const int groupNameMinWidth = groupName.empty() ? 0 : (gapSize_ + iconSize + gapSize_ + ellipsisWidth); @@ -77,10 +77,6 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. + // start trad patch + + // rearrange this one section -+ //add slashes for better readability + a wide gap for disambiguation -+ assert(!contains(groupParentFolder, L'/') || !contains(groupParentFolder, L'\\')); -+ const wchar_t groupParentSep = contains(groupParentFolder, L'/') ? L'/' : (contains(groupParentFolder, L'\\') ? L'\\' : FILE_NAME_SEPARATOR); -+ + switch (itemPathFormat_) + { + case ItemPathFormat::traditional: @@ -89,7 +85,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. + if (!endsWith(groupParentFolder, L'/' ) && //e.g. ftp://server/ + !endsWith(groupParentFolder, L'\\') && /*e.g. C:\ */ + groupParentFolder.size() > 0 ) -+ groupParentFolder += groupParentSep; ++ groupParentFolder += contains(groupParentFolder, L'/') ? L'/' : (contains(groupParentFolder, L'\\') ? L'\\' : FILE_NAME_SEPARATOR); + break; + case ItemPathFormat::name: + case ItemPathFormat::relative: @@ -102,18 +98,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. //not enough space? => collapse if (int excessWidth = groupParentWidth + groupNameWidth + groupItemsWidth - maxWidth; excessWidth > 0) -@@ -693,10 +751,6 @@ - //1. render group components on two rows - stackedGroupRender = true; - -- //add slashes for better readability + a wide gap for disambiguation -- assert(!contains(groupParentFolder, L'/') || !contains(groupParentFolder, L'\\')); -- const wchar_t groupParentSep = contains(groupParentFolder, L'/') ? L'/' : (contains(groupParentFolder, L'\\') ? L'\\' : FILE_NAME_SEPARATOR); -- - if (!endsWith(groupParentFolder, L'/' ) && //e.g. ftp://server/ - !endsWith(groupParentFolder, L'\\')) /*e.g. C:\ */ - groupParentFolder += groupParentSep; -@@ -755,6 +809,11 @@ +@@ -731,6 +785,11 @@ } } } @@ -125,7 +110,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. return { -@@ -873,6 +932,9 @@ +@@ -851,6 +910,9 @@ rectGroup = rectGroupParent = rectGroupName = rectTmp; rectGroupParent.width = groupParentWidth; @@ -135,7 +120,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. rectGroupName .width = groupNameWidth; if (stackedGroupRender) -@@ -896,6 +958,11 @@ +@@ -874,6 +936,11 @@ rectGroupItems.width = 0; } @@ -147,7 +132,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. //------------------------------------------------------------------------- { //clear background below parent path => harmonize with renderRowBackgound() -@@ -906,8 +973,8 @@ +@@ -884,8 +951,8 @@ wxRect rectGroupBack = rectGroup; rectGroupBack.width += 2 * gapSize_; //include gap before vline @@ -158,7 +143,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. clearArea(dc, rectGroupBack, getDefaultBackgroundColorAlternating(pdi.groupIdx % 2 == 0)); //clearArea() is surprisingly expensive => call just once! -@@ -924,7 +991,8 @@ +@@ -900,7 +967,8 @@ rectNav.width = fastFromDIP(20); if (row == pdi.groupLastRow - 1 /*last group item*/) //preserve the group separation line! @@ -168,7 +153,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. wxColor backCol = wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW); dc.GetPixel(rectNav.GetTopRight(), &backCol); //e.g. selected row! -@@ -914,13 +982,13 @@ +@@ -908,13 +976,13 @@ dc.GradientFillLinear(rectNav, getColorSelectionGradientFrom(), backCol, wxEAST); } @@ -184,7 +169,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. wxDCTextColourChanger textColorGroupName(dc); //folder background: coordinate with renderRowBackgound() -@@ -974,9 +1042,9 @@ +@@ -947,9 +1015,9 @@ drawCellText(dc, rectGroupName, groupName, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL, &getTextExtentBuffered(dc, groupName)); } @@ -196,7 +181,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. (groupName.empty() || !pdi.folderGroupObj->isEmpty<side>())) //don't show for missing folders { wxRect rectGroupParentText = rectGroupParent; -@@ -975,16 +1043,16 @@ +@@ -969,16 +1037,16 @@ rectGroupItems.x += 2 * gapSize_; rectGroupItems.width -= 2 * gapSize_; @@ -217,7 +202,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. drawCudHighlight(rectItemsBack, pdi.fsObj->getSyncOperation()); -@@ -1134,7 +1202,12 @@ +@@ -1105,7 +1173,12 @@ groupNameWidth] = getGroupRenderLayout(dc, row, pdi, insanelyHugeWidth); assert(!stackedGroupRender); @@ -231,7 +216,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. const int fileIconWidth = getIconManager().getIconBuffer() ? gapSize_ + getIconManager().getIconSize() : 0; const int ellipsisWidth = getTextExtentBuffered(dc, ELLIPSIS).x; const int itemWidth = itemName.empty() ? 0 : -@@ -1166,6 +1239,10 @@ +@@ -1137,6 +1210,10 @@ return _("Relative path"); case ItemPathFormat::full: return _("Full path"); @@ -242,7 +227,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. } assert(false); break; -@@ -1423,7 +1500,8 @@ +@@ -1393,7 +1470,8 @@ GridData::renderRowBackgound(dc, rect, row, true /*enabled*/, true /*selected*/, rowHover); //---------------------------------------------------------------------------------- @@ -252,7 +237,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. clearArea(dc, rectLine, row == pdi.groupLastRow - 1 /*last group item*/ ? getColorGridLine() : getDefaultBackgroundColorAlternating(pdi.groupIdx % 2 != 0)); } -@@ -1447,7 +1525,8 @@ +@@ -1417,7 +1495,8 @@ { wxRect rectBack = rect; if (row == pdi.groupLastRow - 1 /*last group item*/) //preserve the group separation line! @@ -276,8 +261,8 @@ diff -x '.git*' -x '*.orig' -x '*.rej' -aur 11.2-1/FreeFileSync/Source/ui/file_g const ItemPathFormat defaultItemPathFormatLeftGrid = ItemPathFormat::relative; diff -x '.git*' -x '*.orig' -x '*.rej' -aur 11.2-1/FreeFileSync/Source/ui/main_dlg.cpp 11.2-1-trad3/FreeFileSync/Source/ui/main_dlg.cpp --- 11.2-1/FreeFileSync/Source/ui/main_dlg.cpp 2020-10-02 20:49:11.487782099 -0400 -+++ 11.12-1/FreeFileSync/Source/ui/main_dlg.cpp 2021-07-15 20:22:02.191278722 -0400 -@@ -2653,6 +2647,8 @@ ++++ 11.21-1/FreeFileSync/Source/ui/main_dlg.cpp 2022-05-22 20:26:31.350461792 -0400 +@@ -2741,6 +2741,8 @@ addFormatEntry(_("Item name" ), ItemPathFormat::name); addFormatEntry(_("Relative path"), ItemPathFormat::relative); addFormatEntry(_("Full path" ), ItemPathFormat::full); @@ -285,7 +270,7 @@ diff -x '.git*' -x '*.orig' -x '*.rej' -aur 11.2-1/FreeFileSync/Source/ui/main_d + addFormatEntry(_("Trad. relative"),ItemPathFormat::tradrel); //---------------------------------------------------------------------------------------------- - auto setIconSize = [&](FileIconSize sz, bool showIcons) + auto setIconSize = [&](GridIconSize sz, bool showIcons) diff -x '.git*' -x '*.orig' -x '*.rej' -aur 11.2-1/FreeFileSync/Source/config.cpp 11.2-1-trad3/FreeFileSync/Source/config.cpp --- 11.2-1/FreeFileSync/Source/config.cpp 2020-10-02 14:39:05.233462578 -0400 +++ 11.2-1-trad3/FreeFileSync/Source/config.cpp 2020-10-02 20:22:24.275555557 -0400 @@ -330,4 +315,14 @@ diff -x '.git*' -x '*.orig' -x '*.rej' -aur 11.2-1/FreeFileSync/Source/ui/file_v if ( ascending && onLeft) std::sort(sortedRef_.begin(), sortedRef_.end(), LessFullPath<true, SelectSide::left>(folderPairs_)); else if ( ascending && !onLeft) std::sort(sortedRef_.begin(), sortedRef_.end(), LessFullPath<true, SelectSide::right>(folderPairs_)); else if (!ascending && onLeft) std::sort(sortedRef_.begin(), sortedRef_.end(), LessFullPath<false, SelectSide::left>(folderPairs_)); - +diff -aur 11.22-0/FreeFileSync/Source/ui/main_dlg.cpp 11.22-1/FreeFileSync/Source/ui/main_dlg.cpp +--- 11.22-0/FreeFileSync/Source/ui/main_dlg.cpp 2022-06-26 12:01:15.634291415 -0400 ++++ 11.22-1/FreeFileSync/Source/ui/main_dlg.cpp 2022-06-26 15:39:46.313320272 -0400 +@@ -436,7 +436,6 @@ + if (mainDlg->globalCfg_.welcomeShownVersion != ffsVersion) + { + mainDlg->globalCfg_.welcomeShownVersion = ffsVersion; +- showAboutDialog(mainDlg); + } + + diff --git a/freefilesync/debian/patches/revert_zenju_aggressive_upstreamisms.patch b/freefilesync/debian/patches/revert_zenju_aggressive_upstreamisms.patch index fda8cc2..ee34b5b 100644 --- a/freefilesync/debian/patches/revert_zenju_aggressive_upstreamisms.patch +++ b/freefilesync/debian/patches/revert_zenju_aggressive_upstreamisms.patch @@ -1,6 +1,6 @@ Message: Some of these can be traced back to version 10.23 which was the last to not use <unordered_map> -Date: 2022-04-18 -Version: 11.20 +Date: 2022-06-26 +Version: 11.22 Author: bgstack15 diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/wx+/choice_enum.h 10.24-1/wx+/choice_enum.h --- 10.24-0/wx+/choice_enum.h 2020-05-17 18:30:59.441499418 -0400 @@ -143,9 +143,9 @@ diff -x '*.orig' -x '*.rej' -aur 11.2-0/FreeFileSync/Source/ui/folder_selector.c //It looks like wxDD_SHOW_HIDDEN only sets the default when opening for the first time!? if (folderSelector.ShowModal() != wxID_OK) diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/bitmap_button.h 11.1-2/wx+/bitmap_button.h ---- 11.1-1/wx+/bitmap_button.h 2020-09-01 19:07:43.727122311 -0400 -+++ 11.1-2/wx+/bitmap_button.h 2020-09-01 20:10:31.385364671 -0400 -@@ -26,7 +26,7 @@ +--- 11.22-0/wx+/bitmap_button.h 2022-06-26 12:01:15.638291465 -0400 ++++ 11.22-1/wx+/bitmap_button.h 2022-06-26 12:51:34.527830821 -0400 +@@ -28,7 +28,7 @@ const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator = wxDefaultValidator, @@ -154,9 +154,25 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/bitmap_button.h 11.1-2/wx+/bitmap_bu wxBitmapButton(parent, id, wxNullBitmap, pos, size, style, validator, name) { SetLabel(label); +@@ -104,7 +104,6 @@ + wxBitmap renderSelectedButton(const wxSize& sz) + { + wxBitmap bmp(sz); //seems we don't need to pass 24-bit depth here even for high-contrast color schemes +- bmp.SetScaleFactor(getDisplayScaleFactor()); + { + wxMemoryDC dc(bmp); + +@@ -120,7 +119,6 @@ + wxBitmap renderPressedButton(const wxSize& sz) + { + wxBitmap bmp(sz); //seems we don't need to pass 24-bit depth here even for high-contrast color schemes +- bmp.SetScaleFactor(getDisplayScaleFactor()); + { + //draw rectangle border with gradient + const wxColor colFrom = wxSystemSettings::GetColour(wxSYS_COLOUR_BTNFACE); diff -aur -x '*.git*' -x '.*.swp' -x '*.orig' -x '*.rej' 11.6-0/wx+/dc.h 11.6-1/wx+/dc.h ---- 11.20-0/wx+/dc.h 2022-04-18 09:49:31.921386600 -0400 -+++ 11.20-1/wx+/dc.h 2022-04-18 10:12:04.667907393 -0400 +--- 11.21-0/wx+/dc.h 2022-05-22 17:09:32.250809701 -0400 ++++ 11.21-1/wx+/dc.h 2022-05-22 20:28:53.788193992 -0400 @@ -12,7 +12,7 @@ #include <zen/basic_math.h> #include <wx/dcbuffer.h> //for macro: wxALWAYS_NATIVE_DOUBLE_BUFFER @@ -175,18 +191,17 @@ diff -aur -x '*.git*' -x '.*.swp' -x '*.orig' -x '*.rej' 11.6-0/wx+/dc.h 11.6-1/ -#endif //GTK2 doesn't properly support high DPI: https://freefilesync.org/forum/viewtopic.php?t=6114 //=> requires general fix at wxWidgets-level - -@@ -119,11 +116,11 @@ + +@@ -126,11 +123,10 @@ inline -wxBitmapBundle toBitmapBundle(const wxImage& img /*expected to be DPI-scaled!*/) +wxBitmap toBitmapBundle(const wxImage& img /*expected to be DPI-scaled!*/) { - //return wxBitmap(img, -1 /*depth*/, static_cast<double>(getDPI()) / defaultDpi); not (yet) implemented + //return wxBitmap(img, -1 /*depth*/, static_cast<double>(getDPI()) / defaultDpi); implementation just ignores scale parameter! WTF! wxBitmap bmpScaled(img); -- bmpScaled.SetScaleFactor(static_cast<double>(getDPI()) / defaultDpi); -+ //bmpScaled.SetScaleFactor(static_cast<double>(getDPI()) / defaultDpi); +- bmpScaled.SetScaleFactor(getDisplayScaleFactor()); return bmpScaled; } @@ -329,7 +344,12 @@ diff -Naur -x '*.orig' -x '*.rej' -x '*.git*' 11.4-1/wx+/no_flicker.h 11.4-2/wx+ richCtrl.SetMargins({0, 0}); --- 11.20-0/FreeFileSync/Source/ui/progress_indicator.cpp 2022-04-18 09:49:31.917386558 -0400 +++ 11.20-1/FreeFileSync/Source/ui/progress_indicator.cpp 2022-04-18 11:02:10.988781908 -0400 -@@ -882,7 +885,6 @@ +@@ -878,12 +881,10 @@ + auto generateSquareBitmap = [&](const wxColor& fillCol, const wxColor& borderCol) + { + wxBitmap bmpSquare(this->GetCharHeight(), this->GetCharHeight()); //seems we don't need to pass 24-bit depth here even for high-contrast color schemes +- bmpSquare.SetScaleFactor(getDisplayScaleFactor()); + { wxMemoryDC dc(bmpSquare); drawInsetRectangle(dc, wxRect(bmpSquare.GetSize()), fastFromDIP(1), borderCol, fillCol); } @@ -337,3 +357,25 @@ diff -Naur -x '*.orig' -x '*.rej' -x '*.git*' 11.4-1/wx+/no_flicker.h 11.4-2/wx+ return bmpSquare; }; pnl_.m_bitmapGraphKeyBytes->SetBitmap(generateSquareBitmap(getColorBytes(), getColorBytesRim())); +--- 11.22-0/wx+/rtl.h 2022-06-26 12:01:15.642291514 -0400 ++++ 11.22-1/wx+/rtl.h 2022-06-26 12:58:17.248838575 -0400 +@@ -69,9 +69,6 @@ + if (!buffer || buffer->GetSize() != rect.GetSize()) //[!] since we do a mirror, width needs to match exactly! + buffer.emplace(rect.GetSize()); + +- if (buffer->GetScaleFactor() != dc.GetContentScaleFactor()) //needed here? +- buffer->SetScaleFactor(dc.GetContentScaleFactor()); // +- + wxMemoryDC memDc(*buffer); //copies scale factor from wxBitmap + memDc.Blit(wxPoint(0, 0), rect.GetSize(), &dc, rect.GetTopLeft()); //blit in: background is mirrored due to memDc, dc having different layout direction! + +--- 11.22-0/FreeFileSync/Source/ui/main_dlg.cpp 2022-06-26 12:01:15.634291415 -0400 ++++ 11.22-1/FreeFileSync/Source/ui/main_dlg.cpp 2022-06-26 14:44:38.556188935 -0400 +@@ -3595,7 +3590,6 @@ + }; + + wxBitmap bmpSquare(this->GetCharHeight(), this->GetCharHeight()); //seems we don't need to pass 24-bit depth here even for high-contrast color schemes +- bmpSquare.SetScaleFactor(getDisplayScaleFactor()); + { + wxMemoryDC dc(bmpSquare); + const wxColor borderCol(0xdd, 0xdd, 0xdd); //light grey diff --git a/freefilesync/debian/patches/series b/freefilesync/debian/patches/series index 92dd680..467d69a 100644 --- a/freefilesync/debian/patches/series +++ b/freefilesync/debian/patches/series @@ -10,5 +10,5 @@ revert_zenju_aggressive_upstreamisms.patch ffs_gcc.patch ffs_traditional_view.patch ffs_desktop_notifications.patch -ffs_openssl.patch +#ffs_openssl.patch ffs_icon_loader.patch diff --git a/freefilesync/ffs_el.patch b/freefilesync/ffs_distro_el6_el7.patch index ad9ae15..ad9ae15 100644 --- a/freefilesync/ffs_el.patch +++ b/freefilesync/ffs_distro_el6_el7.patch diff --git a/freefilesync/ffs_fedora.patch b/freefilesync/ffs_distro_fedora.patch index 7f5c4d1..17287ef 100644 --- a/freefilesync/ffs_fedora.patch +++ b/freefilesync/ffs_distro_fedora.patch @@ -1,14 +1,16 @@ -Last modified date: 2022-04-18 +Author: bgstack15 +Source: Original research +Last-Modified: 2022-05-22 +Message: Main patch to compile on Fedora History: ffs_fedora 2020-07-22 now uses gtk3 diff -Naur 10.13-0/FreeFileSync/Source/ffs_paths.cpp 10.13-1/FreeFileSync/Source/ffs_paths.cpp --- 10.13-0/FreeFileSync/Source/ffs_paths.cpp 2019-06-14 20:23:07.615661499 -0400 -+++ 10.13-1/FreeFileSync/Source/ffs_paths.cpp 2019-06-14 20:36:28.178274292 -0400 -@@ -55,7 +55,8 @@ ++++ 11.21-1/FreeFileSync/Source/ffs_paths.cpp 2019-11-21 09:41:42.287474472 -0500 +@@ -49,7 +49,7 @@ - Zstring fff::getResourceDirPf() + Zstring fff::getResourceDirPath() { -- return getProcessParentFolderPath() + FILE_NAME_SEPARATOR + Zstr("Resources") + FILE_NAME_SEPARATOR; -+ // For Fedora, EL and Devuan, install to /usr/share/freefilesync specificly +- return appendPath(getProcessParentFolderPath(), Zstr("Resources")); + return Zstr("/usr/share/freefilesync/"); } @@ -80,3 +82,52 @@ diff -x '*.swp' -x '.git*' -x '*.orig' -x '*.rej' -Naur 10.19-0/FreeFileSync/Sou build += SPACED_BULLET; build += utfTo<wxString>(formatTime(formatDateTag, getCompileTime())); +Message: Fix some sloppiness by Zenju. +diff -Naur -x '*.orig' -x '*.rej' -x .git 11.21-0/FreeFileSync/Source/application.cpp 11.21-1/FreeFileSync/Source/application.cpp +--- 11.21-0/FreeFileSync/Source/application.cpp 2022-05-22 17:09:32.234809499 -0400 ++++ 11.21-1/FreeFileSync/Source/application.cpp 2022-05-24 08:36:51.949159500 -0400 +@@ -92,7 +92,7 @@ + ZEN_ON_SCOPE_EXIT(if (error) ::g_error_free(error)); + + ::gtk_css_provider_load_from_path(provider, //GtkCssProvider* css_provider, +- (getResourceDirPf() + fileName).c_str(), //const gchar* path, ++ (getResourceDirPath() + fileName).c_str(), //const gchar* path, + &error); //GError** error + if (error) + throw SysError(formatGlibError("gtk_css_provider_load_from_path", error)); +--- 11.21-0/FreeFileSync/Source/RealTimeSync/application.cpp 2022-05-22 17:09:32.226809398 -0400 ++++ 11.21-1/FreeFileSync/Source/RealTimeSync/application.cpp 2022-05-25 09:15:00.262617987 -0400 +@@ -68,7 +68,7 @@ + ZEN_ON_SCOPE_EXIT(if (error) ::g_error_free(error)); + + ::gtk_css_provider_load_from_path(provider, //GtkCssProvider* css_provider, +- (fff::getResourceDirPf() + fileName).c_str(), //const gchar* path, ++ (fff::getResourceDirPath() + fileName).c_str(), //const gchar* path, + &error); //GError** error + if (error) + throw SysError(formatGlibError("gtk_css_provider_load_from_path", error)); +Message: some random sloppiness with a missing graphical asset. It's not important to the application. +--- 11.22-0/FreeFileSync/Source/ui/small_dlgs.cpp 2022-06-26 16:03:49.887270966 -0400 ++++ 11.22-1/FreeFileSync/Source/ui/small_dlgs.cpp 2022-06-26 16:03:52.123298767 -0400 +@@ -140,9 +140,9 @@ + + wxImage::AddHandler(new wxJPEGHandler /*ownership passed*/); //activate support for .jpg files + +- wxImage animalImg(utfTo<wxString>(appendPath(getResourceDirPath(), Zstr("Animal.dat"))), wxBITMAP_TYPE_JPEG); +- convertToVanillaImage(animalImg); +- assert(animalImg.IsOk()); ++ //wxImage animalImg(utfTo<wxString>(appendPath(getResourceDirPath(), Zstr("Animal.dat"))), wxBITMAP_TYPE_JPEG); ++ //convertToVanillaImage(animalImg); ++ //assert(animalImg.IsOk()); + + //-------------------------------------------------------------------------- + //have animal + text match *final* dialog width +@@ -152,7 +152,7 @@ + const int imageWidth = (m_panelDonate->GetSize().GetWidth() - 5 - 5 /* grey border*/) / 2; + const int textWidth = m_panelDonate->GetSize().GetWidth() - 5 - 5 - imageWidth; + +- setImage(*m_bitmapAnimalSmall, shrinkImage(animalImg, imageWidth, -1 /*maxHeight*/)); ++ //setImage(*m_bitmapAnimalSmall, shrinkImage(animalImg, imageWidth, -1 /*maxHeight*/)); + + m_staticTextDonate->Show(); + m_staticTextDonate->Wrap(textWidth - 10 /*left gap*/); //wrap *after* changing font size diff --git a/freefilesync/ffs_bit.patch b/freefilesync/ffs_el6_el7_bit.patch index 3cc6ccc..3cc6ccc 100644 --- a/freefilesync/ffs_bit.patch +++ b/freefilesync/ffs_el6_el7_bit.patch diff --git a/freefilesync/ffs_no_eraseif.patch b/freefilesync/ffs_el6_el7_no_eraseif.patch index 71239e4..71239e4 100644 --- a/freefilesync/ffs_no_eraseif.patch +++ b/freefilesync/ffs_el6_el7_no_eraseif.patch diff --git a/freefilesync/ffs_libcurl_7.61.1.patch b/freefilesync/ffs_libcurl_7.61.1.patch new file mode 100644 index 0000000..a6b8532 --- /dev/null +++ b/freefilesync/ffs_libcurl_7.61.1.patch @@ -0,0 +1,79 @@ +Author: Brulhart, bgstack15 +Date: 2022-06-07 +Message: remove assertion for libcurl version >1.61 for EL8 +Version: FreeFileSync 11.21 +Message: We have to omit checking for certain definitions. +Distro: AlmaLinux 8. File ffs_curl.patch is different between all distros! +diff -r -u 10.17-0/FreeFileSync/Source/afs/ftp.cpp 10.17-1/FreeFileSync/Source/afs/ftp.cpp +--- 10.21-0/FreeFileSync/Source/afs/ftp.cpp 2020-03-18 08:56:08.608066350 -0400 ++++ 10.21-1/FreeFileSync/Source/afs/ftp.cpp 2020-03-18 09:23:46.882110499 -0400 +@@ -635,7 +635,7 @@ + curlRelPath += compFmt; + } + +- static_assert(LIBCURL_VERSION_MAJOR > 7 || (LIBCURL_VERSION_MAJOR == 7 && LIBCURL_VERSION_MINOR >= 67)); ++ static_assert(LIBCURL_VERSION_MAJOR > 7 || (LIBCURL_VERSION_MAJOR == 7 && LIBCURL_VERSION_MINOR >= 61 )); + /* 1. CURLFTPMETHOD_NOCWD requires absolute paths to unconditionally skip CWDs: https://github.com/curl/curl/pull/4382 + 2. CURLFTPMETHOD_SINGLECWD requires absolute paths to skip one needless "CWD entry path": https://github.com/curl/curl/pull/4332 + => https://curl.haxx.se/docs/faq.html#How_do_I_list_the_root_dir_of_an +diff -aur 11.21-{0,1}/libcurl/curl_wrap.h +--- FreeFileSync-11.21-0/libcurl/curl_wrap.h 2022-05-22 17:09:26.000000000 -0400 ++++ FreeFileSync-11.21-1/libcurl/curl_wrap.h 2022-06-07 13:27:43.530380754 -0400 +@@ -17,10 +17,6 @@ + #include <curl/curl.h> + //------------------------------------------------- + +-#ifndef CURLINC_CURL_H +- #error curl.h header guard changed +-#endif +- + namespace zen + { + void libcurlInit(); +diff -aur 11.21-{0,1}/libcurl/curl_wrap.cpp +--- FreeFileSync-11.21/libcurl/curl_wrap.cpp 2022-05-22 17:09:26.000000000 -0400 ++++ FreeFileSync-11.21-2/libcurl/curl_wrap.cpp 2022-06-07 13:34:11.216294490 -0400 +@@ -331,9 +331,8 @@ + ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OBSOLETE46); + ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_TOO_MANY_REDIRECTS); + ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_UNKNOWN_OPTION); +- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SETOPT_OPTION_SYNTAX); ++ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_TELNET_OPTION_SYNTAX); + ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OBSOLETE50); +- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OBSOLETE51); + ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_GOT_NOTHING); + ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_ENGINE_NOTFOUND); + ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_ENGINE_SETFAILED); +@@ -344,7 +343,7 @@ + ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_CIPHER); + ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_PEER_FAILED_VERIFICATION); + ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_BAD_CONTENT_ENCODING); +- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OBSOLETE62); ++ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_LDAP_INVALID_URL); // < libcurl 7.82.0 + ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_FILESIZE_EXCEEDED); + ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_USE_SSL_FAILED); + ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SEND_FAIL_REWIND); +@@ -358,7 +357,7 @@ + ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_REMOTE_FILE_EXISTS); + ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_TFTP_NOSUCHUSER); + ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_CONV_FAILED); +- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OBSOLETE76); ++ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_CONV_REQD); // < libcurl 7.82.0 + ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_CACERT_BADFILE); + ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_REMOTE_FILE_NOT_FOUND); + ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSH); +@@ -376,14 +375,8 @@ + ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_INVALIDCERTSTATUS); + ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_HTTP2_STREAM); + ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_RECURSIVE_API_CALL); +- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_AUTH_ERROR); +- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_HTTP3); +- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_QUIC_CONNECT_ERROR); +- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_PROXY); +- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_CLIENTCERT); + ZEN_CHECK_CASE_FOR_CONSTANT(CURL_LAST); + } +- static_assert(CURL_LAST == CURLE_SSL_CLIENTCERT + 1); + + return replaceCpy<std::wstring>(L"Curl status %x", L"%x", numberTo<std::wstring>(static_cast<int>(sc))); + } diff --git a/freefilesync/ffs_curl.patch b/freefilesync/ffs_libcurl_7.71.1.patch index bd0354a..bd0354a 100644 --- a/freefilesync/ffs_curl.patch +++ b/freefilesync/ffs_libcurl_7.71.1.patch diff --git a/freefilesync/ffs_libcurl_7.79.1.patch b/freefilesync/ffs_libcurl_7.79.1.patch new file mode 100644 index 0000000..d76eac8 --- /dev/null +++ b/freefilesync/ffs_libcurl_7.79.1.patch @@ -0,0 +1,39 @@ +Author: Brulhart, bgstack15 +Date: 2022-06-27 +Message: remove assertion for libcurl version >1.79 +Version: FreeFileSync 11.22 +Message: We have to omit checking for certain definitions. +Distro: Fedora 35. File ffs_curl.patch is different between fc34 and devuan! +diff -r -u 10.17-0/FreeFileSync/Source/afs/ftp.cpp 10.17-1/FreeFileSync/Source/afs/ftp.cpp +--- 10.21-0/FreeFileSync/Source/afs/ftp.cpp 2020-03-18 08:56:08.608066350 -0400 ++++ 10.21-1/FreeFileSync/Source/afs/ftp.cpp 2020-03-18 09:23:46.882110499 -0400 +@@ -635,7 +635,7 @@ + curlRelPath += compFmt; + } + +- static_assert(LIBCURL_VERSION_MAJOR > 7 || (LIBCURL_VERSION_MAJOR == 7 && LIBCURL_VERSION_MINOR >= 67)); ++ static_assert(LIBCURL_VERSION_MAJOR > 7 || (LIBCURL_VERSION_MAJOR == 7 && LIBCURL_VERSION_MINOR >= 79 )); + /* 1. CURLFTPMETHOD_NOCWD requires absolute paths to unconditionally skip CWDs: https://github.com/curl/curl/pull/4382 + 2. CURLFTPMETHOD_SINGLECWD requires absolute paths to skip one needless "CWD entry path": https://github.com/curl/curl/pull/4332 + => https://curl.haxx.se/docs/faq.html#How_do_I_list_the_root_dir_of_an +diff -aur 11.18-{0,1}/libcurl/curl_wrap.cpp +--- 11.18-0/libcurl/curl_wrap.cpp 2022-03-09 10:19:42.961942416 -0500 ++++ 11.18-1/libcurl/curl_wrap.cpp 2022-03-09 10:37:44.702421086 -0500 +@@ -343,7 +343,7 @@ + ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_CIPHER); + ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_PEER_FAILED_VERIFICATION); + ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_BAD_CONTENT_ENCODING); +- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OBSOLETE62); ++ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_LDAP_INVALID_URL); // < libcurl 7.82.0 + ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_FILESIZE_EXCEEDED); + ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_USE_SSL_FAILED); + ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SEND_FAIL_REWIND); +@@ -357,7 +357,7 @@ + ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_REMOTE_FILE_EXISTS); + ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_TFTP_NOSUCHUSER); + ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_CONV_FAILED); +- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OBSOLETE76); ++ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_CONV_REQD); // < libcurl 7.82.0 + ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_CACERT_BADFILE); + ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_REMOTE_FILE_NOT_FOUND); + ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSH); diff --git a/freefilesync/ffs_no_gcc12.patch b/freefilesync/ffs_no_gcc12.patch new file mode 100644 index 0000000..b25edac --- /dev/null +++ b/freefilesync/ffs_no_gcc12.patch @@ -0,0 +1,63 @@ +Message: Because we do not use gcc 12, we have an error with unordered_map and std::pair. +Author: zensubz +Date-Modified: 2022-06-27 +Version: 11.22 +Source: https://freefilesync.org/forum/viewtopic.php?t=9376&p=34044#p34044 +Distro: any distro with g++ < 12 +--- a/FreeFileSync/Source/base/db_file.cpp ++++ b/FreeFileSync/Source/base/db_file.cpp +@@ -642,7 +642,7 @@ + + void process(const ContainerObject::FolderList& currentFolders, const Zstring& parentRelPath, InSyncFolder::FolderList& dbFolders) + { +- std::unordered_map<ZstringNorm, const FolderPair*> toPreserve; ++ std::map<ZstringNorm, const FolderPair*> toPreserve; + + for (const FolderPair& folder : currentFolders) + if (!folder.isPairEmpty()) +--- a/FreeFileSync/Source/base/db_file.h ++++ b/FreeFileSync/Source/base/db_file.h +@@ -67,9 +67,9 @@ + InSyncStatus status = DIR_STATUS_STRAW_MAN; + + //------------------------------------------------------------------ +- using FolderList = std::unordered_map<ZstringNorm, InSyncFolder >; // +- using FileList = std::unordered_map<ZstringNorm, InSyncFile >; // key: file name (ignoring Unicode normal forms) +- using SymlinkList = std::unordered_map<ZstringNorm, InSyncSymlink>; // ++ using FolderList = std::map<ZstringNorm, InSyncFolder >; // ++ using FileList = std::map<ZstringNorm, InSyncFile >; // key: file name (ignoring Unicode normal forms) ++ using SymlinkList = std::map<ZstringNorm, InSyncSymlink>; // + //------------------------------------------------------------------ + + FolderList folders; +--- a/FreeFileSync/Source/base/file_hierarchy.h ++++ b/FreeFileSync/Source/base/file_hierarchy.h +@@ -7,12 +7,14 @@ + #ifndef FILE_HIERARCHY_H_257235289645296 + #define FILE_HIERARCHY_H_257235289645296 + ++#include <map> + #include <string> + #include <memory> + #include <list> + #include <functional> + #include <unordered_set> +-#include <unordered_map> ++#include <zen/zstring.h> ++#include <zen/stl_tools.h> + #include "structures.h" + #include "path_filter.h" + #include "../afs/abstract.h" +@@ -94,9 +96,9 @@ + //------------------------------------------------------------------ + //key: raw file name, without any (Unicode) normalization, preserving original upper-/lower-case + //"Changing data [...] to NFC would cause interoperability problems. Always leave data as it is." +- using FolderList = std::unordered_map<Zstring, std::pair<FolderAttributes, FolderContainer>>; +- using FileList = std::unordered_map<Zstring, FileAttributes>; +- using SymlinkList = std::unordered_map<Zstring, LinkAttributes>; ++ using FolderList = std::map<Zstring, std::pair<FolderAttributes, FolderContainer>>; ++ using FileList = std::map<Zstring, FileAttributes>; ++ using SymlinkList = std::map<Zstring, LinkAttributes>; + //------------------------------------------------------------------ + + FolderContainer() = default; diff --git a/freefilesync/ffs_no_wx311.patch b/freefilesync/ffs_no_wx311.patch deleted file mode 100644 index 1671e4c..0000000 --- a/freefilesync/ffs_no_wx311.patch +++ /dev/null @@ -1,65 +0,0 @@ -Last modified: 2022-04-18 -Version: 11.20 -Author: bgstack15 -Message: Just compile by stepping around wxWidgets 3.1.1 calls -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())); - } -- m_listBoxGdriveUsers->Append(gdriveAccounts); -+ for (const wxString& item : gdriveAccounts) // reverted to pre-wx 3.1.1 logic -+ m_listBoxGdriveUsers->Append(item); - - //set default values for Google Drive: use first item of m_listBoxGdriveUsers - if (!gdriveAccounts.empty() && !acceptsItemPathPhraseGdrive(folderPathPhrase)) -@@ -1689,7 +1690,6 @@ - //setMainInstructionFont(*m_staticTextMain); - - setImage(*m_bitmapActivation, loadImage("internet")); -- m_textCtrlOfflineActivationKey->ForceUpper(); - - setTextWithUrls(*m_richTextLastError, lastErrorMsg); - setTextWithUrls(*m_richTextManualActivationUrl, manualActivationUrl); -diff -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 @@ - { - if (overlapPix != 0) - { -- const double scrollSpeed = wnd_.ToDIP(overlapPix) * mouseDragSpeedIncScrollU; //unit: [scroll units / sec] -+ // Fedora 28 does not have wxGTK 3.1.1 yet. This probably breaks HiDPI usage -+ //const double scrollSpeed = wnd_.ToDIP(overlapPix) * mouseDragSpeedIncScrollU; //unit: [scroll units / sec] -+ const double scrollSpeed = overlapPix * mouseDragSpeedIncScrollU; //unit: [scroll units / sec] - toScroll += scrollSpeed * deltaSecs; - } - else -diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/FreeFileSync/Source/ui/command_box.cpp 10.24-1/FreeFileSync/Source/ui/command_box.cpp ---- 10.24-0/FreeFileSync/Source/ui/command_box.cpp 2020-05-17 11:01:12.893890567 -0400 -+++ 10.24-1/FreeFileSync/Source/ui/command_box.cpp 2020-05-17 11:22:18.069114993 -0400 -@@ -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) // reverted to pre-wx 3.1.1 logic -+ this->Append(item); - - //this->SetSelection(wxNOT_FOUND); //don't select anything - ChangeValue(value); //preserve main text! -diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/FreeFileSync/Source/ui/folder_history_box.cpp 10.24-1/FreeFileSync/Source/ui/folder_history_box.cpp ---- 10.24-0/FreeFileSync/Source/ui/folder_history_box.cpp 2020-05-17 11:01:12.909890709 -0400 -+++ 10.24-1/FreeFileSync/Source/ui/folder_history_box.cpp 2020-05-17 11:21:18.460583251 -0400 -@@ -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& itemk : items) // reverted to pre-wx 3.1.1 logic -+ this->Append(itemk); - - //this->SetSelection(wxNOT_FOUND); //don't select anything - ChangeValue(folderPathPhrase); //preserve main text! diff --git a/freefilesync/ffs_openssl.patch b/freefilesync/ffs_openssl.patch index 7097d33..b77d8ac 100644 --- a/freefilesync/ffs_openssl.patch +++ b/freefilesync/ffs_openssl.patch @@ -1,8 +1,8 @@ Summary: Compile for libss-dev 1.1.1m Author: bgstack15 -Date: 2022-01-04 +Date: 2022-06-07 Version: 11.16 -Message: Compile on Devuan Ceres with libssl-dev_1.1.1m-1 +Message: Compile on any distro with openssl < 3.0.0 diff -aur 11.13/zen/open_ssl.cpp 11.14/zen/open_ssl.cpp --- 11.16-0/zen/open_ssl.cpp 2022-01-04 10:04:34.135914294 -0500 +++ 11.16-1/zen/open_ssl.cpp 2022-01-04 10:29:12.544451067 -0500 diff --git a/freefilesync/freefilesync.spec b/freefilesync/freefilesync.spec index 3636de0..1beec2a 100644 --- a/freefilesync/freefilesync.spec +++ b/freefilesync/freefilesync.spec @@ -6,20 +6,37 @@ %define min_libssh2 %{nil} %define min_openssl %{nil} %define scl_env %{nil} -%define scl_buildreq coreutils +%define scl_buildreq %{nil} %if 0%{?el6}%{?el7} %define scl_env devtoolset-7 %define scl_buildreq devtoolset-7-toolchain - %define min_libcurl >= 7.64.0 + %define min_libcurl >= 7.61.0 %define min_libssh2 >= 1.8.0 %define min_openssl >= 1.1.1c %endif +%if 0%{?el8} + %define scl_env gcc-toolset-11 + %define scl_buildreq gcc-toolset-11-gcc-c++, gcc-toolset-11-annobin-plugin-gcc + %define min_libcurl >= 7.61.0 + %define min_libssh2 >= 1.9.0 + %define min_openssl >= 1.1.1k +%endif %define libssh2_name libssh2 -%if 0%{?rhel} >= 8 -%define libssh2_name libssh2-%{name} +%define openssl_name openssl +# EL8 copr has some dnf module weirdness with libssh2, not a version problem. +%if 0%{?el6}%{?el7}%{?el8} +%define libssh2_name libssh2-freefilesync +%endif +%if 0%{?el6}%{?el7} +%define openssl_name openssl-freefilesync +%endif +%if 0%{?fedora} >= 36 +# https://www.spinics.net/lists/fedora-devel/msg296646.html +# https://fedoraproject.org/wiki/Changes/Package_information_on_ELF_objects +%undefine _package_note_file %endif Name: freefilesync -Version: 11.20 +Version: 11.22 Release: 1%{?dist} Summary: A file synchronization utility @@ -32,21 +49,29 @@ Source0: https://gitlab.com/opensource-tracking/%{pkgname}/-/archive/%{versio Source1: %{pkgname}.desktop Source2: %{prog2name}.desktop Source3: %{name}.xml -Patch0: ffs_allow_parallel_ops.patch -Patch1: ffs_no_check_updates.patch -Patch2: ffs_no_wx311.patch -Patch3: ffs_sftp.patch -Patch4: ffs_fedora.patch -Patch5: ffs_el.patch -Patch6: ffs_libssh2.patch -Patch7: ffs_curl.patch -Patch8: ffs_bit.patch -Patch9: ffs_no_eraseif.patch -Patch10: revert_zenju_aggressive_upstreamisms.patch -Patch11: ffs_traditional_view.patch -Patch12: ffs_desktop_notifications.patch -Patch13: ffs_openssl.patch -Patch14: ffs_icon_loader.patch +# all rpm distros use these +Patch0: 00_allow_parallel_ops.patch +Patch1: 01_no_check_updates.patch +Patch2: 02_no_wx311.patch +Patch3: 03_sftp.patch +Patch4: 04_revert_zenju_aggressive_upstreamisms.patch +Patch5: 05_traditional_view.patch +Patch6: 06_icon_loader.patch +Patch7: 07_libssh2.patch +# distro specific patches +## Fedora and EL8 +Patch20: ffs_distro_fedora.patch +## EL6 and EL7 +Patch30: ffs_distro_el6_el7.patch +Patch31: ffs_el6_el7_bit.patch +Patch32: ffs_el6_el7_no_eraseif.patch +# dependency specific +Patch40: ffs_openssl.patch +Patch41: ffs_no_gcc12.patch +Patch60: ffs_desktop_notifications.patch +Patch70: ffs_libcurl_7.61.1.patch +Patch71: ffs_libcurl_7.71.1.patch +Patch72: ffs_libcurl_7.79.1.patch Packager: B. Stack <bgstack15@gmail.com> BuildRequires: brotli-devel @@ -54,22 +79,34 @@ BuildRequires: wxGTK3-devel BuildRequires: desktop-file-utils BuildRequires: gcc-c++ BuildRequires: ImageMagick +%if "%{?min_libcurl}" != "" BuildRequires: libcurl-devel %{min_libcurl} +%else +BuildRequires: libcurl-devel +%endif +%if "%{?min_libssh2}" != "" BuildRequires: %{libssh2_name}-devel %{min_libssh2} +%else +BuildRequires: %{libssh2_name}-devel +%endif BuildRequires: patch BuildRequires: pkgconfig(giomm-2.4) BuildRequires: pkgconfig(gtk+-2.0) BuildRequires: pkgconfig(libselinux) BuildRequires: pkgconfig(zlib) -%if 0%{?el6}%{?el7} +# We need the binary so we can check version number +BuildRequires: %{openssl_name} +%if "%{?scl_buildreq}" != "" BuildRequires: %{scl_buildreq} -BuildRequires: openssl-%{name}-devel %{min_openssl} -Requires: libcurl %{min_libcurl} -Requires: %{libssh2_name} %{min_libssh2} -Requires: openssl-%{name}-libs %{min_openssl} +%endif +%if "%{?min_openssl}" != "" +BuildRequires: %{openssl_name}-devel %{min_openssl} %else -BuildRequires: openssl-devel +BuildRequires: %{openssl_name}-devel %endif +#Requires: libcurl %%{?min_libcurl} +#Requires: %%{libssh2_name} %%{?min_libssh2} +#Requires: openssl-%%{name}-libs %%{?min_openssl} Requires: hicolor-icon-theme Requires: xdg-utils Provides: mimehandler(application/x-freefilesync-ffs) @@ -84,36 +121,63 @@ having nice visual feedback along the way. %prep %setup -n %{pkgname}-%{version} - # fix text file line endings and permissions to unix find . ! -type d \( -name '*.c' -o -name '*.cpp' -o -name '*.h' \) \ -exec %{__sed} -i -r -e 's/\r$//' {} + - %patch0 -p1 %patch1 -p1 %patch2 -p1 %patch3 -p1 +%patch4 -p1 +%patch5 -p1 +%patch6 -p1 +%patch7 -p1 %if 0%{?el6}%{?el7} # use the el patch -%patch5 -p1 +%patch30 -p1 +%patch31 -p1 +%patch32 -p1 %else # use the fedora patch, even for el8 -%patch4 -p1 +%patch20 -p1 %endif -%patch6 -p1 -%patch7 -p1 -%if 0%{?el6}%{?el7}%{?el8}%{?fc29} -%patch8 -p1 -%patch9 -p1 +# Determine if openssl < 3.0.0 +opensslver="$( openssl version | awk '{if($2>=3){print "3"}else{print"1"}}' )" +if test ${opensslver} -lt 3 ; +then +%patch40 -p1 +fi +# Determine if g++ < 12 +g__version="$( +%if "%{?scl_env}" != "" + scl enable %{scl_env} /bin/bash <<'EOFSCL' %endif -%patch10 -p1 -%patch11 -p1 -%patch12 -p1 -%if 0%{?fedora} < 36 -# Patch13 openssl is only for openssl < 3.0.0 -%patch13 -p1 + g++ --version +%if "%{?scl_env}" != "" +EOFSCL %endif -%patch14 -p1 +)" +g__version="$( echo "${g__version}" | awk 'NR==1{if($3>=12){print "12"}else{print"11"}}' )" +echo "G__version=${g_version}" +if test ${g__version} -lt 12 ; +then +%patch41 -p1 +fi +# desktop notifications merely has to happen after distro patch +%patch60 -p1 +# Determine version of libcurl +%define libcurl_ver %( rpm -q libcurl-devel --queryformat '%%{version}' ) +case "%{libcurl_ver}" in + 7.61.1) +%patch70 -p1 + ;; + 7.79.1) +%patch72 -p1 + ;; + *) +%patch71 -p1 + ;; +esac # custom build parameters for packaging application in rpm # fedora provides build_cxxflags, which is really just optflags @@ -137,7 +201,7 @@ EOFSCL %install %if !%{dummy_package} -# removed by upstream! +# removed by upstream around version 11 #%%make_install -C %%{pkgname}/Source #%%make_install -C %%{pkgname}/Source/%%{prog2name} pushd %{pkgname}/Build @@ -155,12 +219,6 @@ mkdir -p %{buildroot}%{_datadir}/applications desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE1} desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE2} -# application start script -# none - -# man pages -# none - # mimetypes install -d %{buildroot}%{_datadir}/mime/packages install -Dm 0644 -t %{buildroot}%{_datadir}/mime/packages %{SOURCE3} @@ -188,12 +246,6 @@ done %post touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : -%preun -# is it a final removal? -#if test "$1" = "0" ; -#then -#fi - %postun if test "$1" = "0" ; then @@ -217,6 +269,17 @@ update-mime-database -n ${_datadir}/mime 1>/dev/null 2>&1 & : %ghost %config %attr(666, -, -) %{_datadir}/%{name}/GlobalSettings.xml %changelog +* Mon Jun 27 2022 B. Stack <bgstack15@gmail.com> - 11.22-1 +- version bump + +* Tue Jun 07 2022 B. Stack <bgstack15@gmail.com> - 11.21-2 +- rewrite spec for easier cross-distro support +- fix builds for el8 + +* Wed May 25 2022 B. Stack <bgstack15@gmail.com> - 11.21-1 +- version bump +- add ffs_no_gcc12 patch + * Mon Apr 18 2022 B. Stack <bgstack15@gmail.com> - 11.20-1 - version bump - remove a few patches from r_z_a_u for when gcc < 11 diff --git a/librewolf/debian/bgstack15-librewolf-prefs.js b/librewolf/debian/bgstack15-librewolf-prefs.js deleted file mode 100644 index cf38fb2..0000000 --- a/librewolf/debian/bgstack15-librewolf-prefs.js +++ /dev/null @@ -1,121 +0,0 @@ -// file: /usr/lib/librewolf/browser/defaults/preferences/bgstack15-newmoon-prefs.js -// deployed with librewolf (stackrpms) package (rpm or dpkg) built by bgstack15 -// last modified 2022-01-08 -// reference: -// https://support.mozilla.org/en-US/kb/customizing-firefox-using-autoconfig -// vm2 librewolf user profile prefs.js -pref("browser.allTabs.previews", false); -pref("browser.backspace_action", 0); -pref("browser.ctrlTab.previews", false); -pref("browser.ctrlTab.recentlyUsedOrder", false); -pref("browser.ctrlTab.migrated", true); -pref("browser.engagement.ctrlTab.has-used", true); -pref("browser.uidensity", 1); -pref("browser.download.useDownloadDir", true); -pref("browser.newtabpage.activity-stream.migrationExpired", true); -pref("browser.newtabpage.activity-stream.prerender", false); -pref("browser.newtabpage.activity-stream.showSearch", false); -pref("browser.newtabpage.activity-stream.showTopSites", false); -pref("browser.newtabpage.directory.ping", "http://127.0.0.1:9999/"); -pref("browser.newtabpage.directory.source", "http://127.0.0.1:9999/"); -pref("browser.newtabpage.enabled", false); -pref("browser.newtabpage.enhanced", false); -pref("browser.newtab.choice", 1); -pref("browser.newtabpage.storageVersion", 1); -pref("browser.newtabpage.directory.ping", "http://127.0.0.1:9999/"); -pref("browser.newtabpage.directory.source", "http://127.0.0.1:9999/"); -pref("browser.search.update", false); -pref("browser.sessionstore.restore_on_demand", false); -pref("browser.startup.page", 3); -pref("browser.tabs.closeWindowWithLastTab", false); -// These two have to stay undefined in Firefox 77+ in order for the drop-down for autocompletion to still work. -//pref("browser.urlbar.disableExtendForTests", true); -//pref("browser.urlbar.maxRichResults", 0); -pref("browser.urlbar.trimURLs", false); -pref("browser.urlbar.update1", false); -pref("browser.xul.error_pages.enabled", false); -pref("camera.control.face_detection.enabled", false); -pref("canvas.filters.enabled", false); -pref("canvas.focusring.enabled", false); -pref("canvas.path.enabled", false); -pref("captivedetect.canonicalURL", "http://127.0.0.1:9980"); -pref("devtools.devedition.promo.url", "http://127.0.0.1:9999/"); -pref("dom.event.clipboardevents.enabled", false); -pref("experiments.manifest.uri", "http://127.0.0.1:9999/"); -pref("extensions.enabledAddons", "%7B972ce4c6-7e08-4474-a285-3208198ce6fd%7D:28.3.0"); -pref("extensions.blocklist.detailsURL", "http://127.0.0.1:9999/"); -pref("extensions.blocklist.itemURL", "http://127.0.0.1:9999/"); -pref("extensions.pocket.api", "localhost:9999"); -pref("extensions.pocket.site", "localhost:9999"); -pref("extensions.shownSelectionUI", true); -pref("extensions.update.autoUpdateDefault", false); -pref("general.warnOnAboutConfig", false); -pref("media.videocontrols.picture-in-picture.allow-multiple", false); -pref("media.videocontrols.picture-in-picture.enabled", false); -pref("media.videocontrols.picture-in-picture.video-toggle.has-used", true); -pref("network.automatic-ntlm-auth.trusted-uris", ".ipa.smith122.com"); -pref("network.cookie.prefsMigrated", true); -pref("network.http.spdy.enabled", false); -pref("network.negotiate-auth.trusted-uris", ".ipa.smith122.com"); -pref("network.stricttransportsecurity.preloadlist", false); -pref("privacy.sanitize.migrateFx3Prefs", true); -pref("pref.privacy.disable_button.cookie_exceptions", false); -pref("pref.privacy.disable_button.view_passwords", false); -pref("privacy.annotate_channels.strict_list.enabled", true); -pref("privacy.donottrackheader.enabled", true); -pref("privacy.partition.network_state.ocsp_cache", true); -pref("privacy.purge_trackers.date_in_cookie_database", "0"); -pref("privacy.purge_trackers.last_purge", "1641399136538"); -pref("privacy.resistFingerprinting", false); -pref("privacy.resistFingerprinting.autoDeclineNoUserInputCanvasPrompts", false); -pref("privacy.sanitize.pending", "[{\"id\":\"newtab-container\",\"itemsToClear\":[],\"options\":{}}]"); -pref("privacy.sanitize.sanitizeOnShutdown", false); -pref("privacy.trackingprotection.enabled", true); -pref("privacy.trackingprotection.socialtracking.enabled", true); -pref("reader.parse-on-load.enabled", false); -pref("security.cert_pinning.enforcement_level", 0); -pref("services.sync.declinedEngines", ""); -pref("services.sync.serverURL", "http://127.0.0.1:9999/"); -pref("services.sync.tabs.lastSync", "0"); -pref("services.sync.tabs.lastSyncLocal", "0"); -pref("signon.autofillForms", true); -pref("signon.importedFromSqlite", true); -pref("signon.rememberSignons", true); -pref("startup.homepage_welcome_url", "http://127.0.0.1:9999/"); -pref("browser.startup.homepage", "https://start.duckduckgo.com/"); -pref("startup.homepage_override_url", ""); -pref("toolkit.telemetry.reportingpolicy.firstRun", false); -pref("xpinstall.whitelist.add", ""); -// Control DNS over HTTPS (DoH) and Trusted Recursive Resolver (TRR). -// More about DoH: https://github.com/bambenek/block-doh -// https://blog.nightly.mozilla.org/2018/06/01/improving-dns-privacy-in-firefox/ -// https://support.mozilla.org/en-US/kb/configuring-networks-disable-dns-over-https -// https://wiki.mozilla.org/Trusted_Recursive_Resolver -// 0: Off by default, 1: Firefox chooses faster, 2: TRR default w/DNS fallback, -// 3: TRR only mode, 4: Use DNS and shadow TRR for timings, 5: Disabled. -pref("network.trr.mode", 0); -pref("extensions.pocket.enabled", false); -pref("extensions.pocket.api", "http://localhost:9980"); -pref("extensions.pocket.site", "http://localhost:9980"); -// show menu -pref("ui.key.menuAccessKeyFocuses", false); -pref("browser.uiCustomization.state", "{\"placements\":{\"widget-overflow-fixed-list\":[],\"nav-bar\":[\"back-button\",\"forward-button\",\"stop-reload-button\",\"urlbar-container\",\"save-to-pocket-button\",\"downloads-button\",\"fxa-toolbar-menu-button\",\"ublock0_raymondhill_net-browser-action\"],\"toolbar-menubar\":[\"menubar-items\"],\"TabsToolbar\":[\"tabbrowser-tabs\",\"new-tab-button\",\"alltabs-button\"],\"PersonalToolbar\":[\"personal-bookmarks\"]},\"seen\":[\"developer-button\",\"ublock0_raymondhill_net-browser-action\"],\"dirtyAreaCache\":[\"nav-bar\",\"PersonalToolbar\",\"toolbar-menubar\",\"TabsToolbar\"],\"currentVersion\":17,\"newElementCount\":3}"); -pref("bgstack15-librewolf-prefs.js.version", "20220108.140650"); -pref("browser.startup.page", 3); -pref("privacy.userContext.enabled", false); -pref("browser.download.useDownloadDir", true); -pref("media.videocontrols.picture-in-picture.video-toggle.enabled", false); -pref("browser.urlbar.placeholderName", "DuckDuckGo"); -pref("browser.urlbar.placeholderName.private", "DuckDuckGo"); -pref("browser.formfill.enable", true); -pref("dom.security.https_only_mode", false); -pref("network.cookie.lifetimePolicy", 0); -pref("places.history.enabled", true); -pref("privacy.sanitize.pending", "[{\"id\":\"newtab-container\",\"itemsToClear\":[],\"options\":{}},{\"id\":\"newtab-container\",\"itemsToClear\":[],\"options\":{}}]"); -pref("privacy.sanitize.sanitizeOnShutdown", false); -pref("signon.autofillForms", true); -pref("signon.rememberSignons", true); -pref("browser.toolbars.bookmarks.visibility", "always"); -pref("browser.compactmode.show", true); -pref("extensions.webextensions.ExtensionStorageIDB.migrated.uBlock0@raymondhill.net", true); -pref("extensions.webextensions.uuids", "{\"formautofill@mozilla.org\":\"932d9ca1-4ab4-4176-908a-775a8c5c232b\",\"pictureinpicture@mozilla.org\":\"d20931db-dda1-4902-85fd-c324857cc611\",\"proxy-failover@mozilla.com\":\"9511d4e1-5bce-4214-90ba-cf9004a1896a\",\"screenshots@mozilla.org\":\"74a504ec-3b68-40db-b8de-213e87ec1f0d\",\"default-theme@mozilla.org\":\"e2607c67-dc48-4ce0-99c9-9422500c5397\",\"addons-search-detection@mozilla.com\":\"00ce34b6-f943-4060-970e-7ab093b1263f\",\"wikipedia@search.mozilla.org\":\"fd8e14ab-a33d-4393-8023-6a8a34382417\",\"ddg@search.mozilla.org\":\"e810f6e1-24e9-4e11-9a36-3be0691aef77\",\"uBlock0@raymondhill.net\":\"44aaf03a-52f1-402c-9300-d41904ab3746\"}"); diff --git a/librewolf/debian/browser.install.in b/librewolf/debian/browser.install.in index f77a234..d2b7944 100644 --- a/librewolf/debian/browser.install.in +++ b/librewolf/debian/browser.install.in @@ -75,9 +75,8 @@ usr/lib/@browser@/fonts/TwemojiMozilla.ttf usr/lib/@browser@/pingsender debian/@browser@-symbolic.svg usr/share/icons/hicolor/symbolic/apps - debian/librewolf_settings/@browser@.cfg usr/share/@browser@ debian/librewolf_settings/defaults/pref/local-settings.js usr/share/@browser@/defaults/pref debian/librewolf_settings/distribution/policies.json usr/share/@browser@/distribution -debian/bgstack15-librewolf-prefs.js usr/lib/@browser@/defaults/pref debian/uBlock0@raymondhill.net.xpi usr/lib/@browser@/browser/extensions +debian/bgstack15-librewolf-prefs.js usr/lib/@browser@/defaults/pref diff --git a/librewolf/debian/browser.links.in b/librewolf/debian/browser.links.in index f75bb6b..04ad826 100644 --- a/librewolf/debian/browser.links.in +++ b/librewolf/debian/browser.links.in @@ -11,7 +11,6 @@ /usr/share/@browser@/browser/defaults /usr/lib/@browser@/browser/defaults - /usr/share/distribution/policies.json usr/lib/@browser@/distribution/policies.json /usr/share/@browser@/defaults/pref/local-settings.js usr/lib/@browser@/defaults/pref/local-settings.js /usr/share/@browser@/@browser@.cfg /usr/lib/@browser@/@browser@.cfg diff --git a/librewolf/debian/browser.mozconfig.in b/librewolf/debian/browser.mozconfig.in index 22ba73f..e240c73 100644 --- a/librewolf/debian/browser.mozconfig.in +++ b/librewolf/debian/browser.mozconfig.in @@ -67,8 +67,6 @@ mk_add_options MOZ_TELEMETRY_REPORTING=0 #export RANLIB=llvm-ranlib-11 ac_add_options --enable-optimize -# Devuan style +# Stackrpms style ac_add_options --disable-dbus -ac_add_options --disable-pulseaudio -ac_add_options --enable-alsa ac_add_options --disable-necko-wifi diff --git a/librewolf/debian/changelog b/librewolf/debian/changelog index 561a836..bf3a220 100644 --- a/librewolf/debian/changelog +++ b/librewolf/debian/changelog @@ -1,14 +1,42 @@ -librewolf (98.0-2+stackrpms) obs; urgency=low +librewolf (100.0.2-1+stackrpms) obs; urgency=low - * Fork to librewolf release + * Custom build for myself - -- B. Stack <bgstack15@gmail.com> Wed, 30 Mar 2022 13:55:33 -0400 + -- B. Stack <bgstack15@gmail.com> Wed, 25 May 2022 16:16:08 -0400 -librewolf (98.0-2) unstable; urgency=low +librewolf (100.0.2-1) unstable; urgency=low * Fork to librewolf release - -- B. Stack <bgstack15@gmail.com> Tue, 22 Mar 2022 19:01:42 -0400 + -- B. Stack <bgstack15@gmail.com> Mon, 23 May 2022 12:23:10 -0400 + +firefox (100.0.2-1) unstable; urgency=medium + + * New upstream release. + * Fixes for mfsa2022-19, also known as CVE-2022-1802 and CVE-2022-1529. + + -- Mike Hommey <glandium@debian.org> Sat, 21 May 2022 07:32:04 +0900 + +firefox (100.0-1) unstable; urgency=medium + + * New upstream release. + * Fixes for mfsa2022-16, also known as: + CVE-2022-29914, CVE-2022-29909, CVE-2022-29916, CVE-2022-29911, + CVE-2022-29912, CVE-2022-29915, CVE-2022-29917, CVE-2022-29918. + + -- Mike Hommey <glandium@debian.org> Wed, 04 May 2022 08:48:41 +0900 + +firefox (99.0-1) unstable; urgency=medium + + * New upstream release. + * Fixes for mfsa2022-13, also known as: + CVE-2022-1097, CVE-2022-28281, CVE-2022-28282, CVE-2022-28283, + CVE-2022-28284, CVE-2022-28285, CVE-2022-28286, CVE-2022-28287, + CVE-2022-24713, CVE-2022-28289, CVE-2022-28288. + + * debian/control*: Bump nss build dependency. + + -- Mike Hommey <glandium@debian.org> Wed, 06 Apr 2022 09:04:22 +0900 firefox (98.0-2) unstable; urgency=medium diff --git a/librewolf/debian/control b/librewolf/debian/control index 22a5093..d5c07de 100644 --- a/librewolf/debian/control +++ b/librewolf/debian/control @@ -18,11 +18,12 @@ Build-Depends: autotools-dev, python3 (>= 3.6), dpkg-dev, libnspr4-dev (>= 2:4.32~), - libnss3-dev (>= 2:3.75~), + libnss3-dev (>= 2:3.76~), libvpx-dev (>= 1.8.0), libdbus-glib-1-dev, libffi-dev, libevent-dev, + libpulse-dev, libasound2-dev, libjack-dev, yasm, nasm (>= 2.14) [amd64 i386], @@ -57,14 +58,15 @@ Depends: ${shlibs:Depends}, procps, debianutils (>= 1.16), libnspr4 (>= 2:4.32~), - libnss3 (>= 2:3.75~) -Recommends: libavcodec58 | libavcodec-extra58 | libavcodec57 | libavcodec-extra57 | libavcodec56 | libavcodec-extra56 | libavcodec55 | libavcodec-extra55 | libavcodec54 | libavcodec-extra54 | libavcodec53 | libavcodec-extra53 + libnss3 (>= 2:3.76~) +Recommends: libavcodec59 | libavcodec-extra59 | libavcodec58 | libavcodec-extra58 | libavcodec57 | libavcodec-extra57 | libavcodec56 | libavcodec-extra56 | libavcodec55 | libavcodec-extra55 | libavcodec54 | libavcodec-extra54 | libavcodec53 | libavcodec-extra53 Suggests: fonts-stix | otf-stix, fonts-lmodern, libgssapi-krb5-2 | libkrb53, libcanberra0, + pulseaudio Provides: www-browser, gnome-www-browser -Description: LibreWolf for Stackrpms +Description: LibreWolf variant of Mozilla Firefox web browser LibreWolf is a build of Firefox that seeks to protect user privacy, security, and freedom. diff --git a/librewolf/debian/control.in b/librewolf/debian/control.in index 7c45bab..0a7ed78 100644 --- a/librewolf/debian/control.in +++ b/librewolf/debian/control.in @@ -24,7 +24,7 @@ Build-Depends: autotools-dev, libnspr4-dev (>= 2:@NSPR_VERSION@~), %endif %if USE_SYSTEM_NSS -%define NSS_VERSION 3.75 +%define NSS_VERSION 3.76 libnss3-dev (>= 2:@NSS_VERSION@~), %endif %if USE_SYSTEM_VPX @@ -37,6 +37,7 @@ Build-Depends: autotools-dev, %if USE_SYSTEM_LIBEVENT libevent-dev, %endif + libpulse-dev, libasound2-dev, yasm, %if DIST == stretch @@ -106,6 +107,7 @@ Suggests: fonts-stix | otf-stix, fonts-lmodern, libgssapi-krb5-2 | libkrb53, libcanberra0, + pulseaudio %if TRANSITION Conflicts: iceweasel (<< 45) %endif diff --git a/librewolf/debian/librewolf.dsc b/librewolf/debian/librewolf.dsc index c5ab7c2..9d1b0bc 100644 --- a/librewolf/debian/librewolf.dsc +++ b/librewolf/debian/librewolf.dsc @@ -2,11 +2,11 @@ Format: 3.0 (quilt) Source: librewolf Binary: librewolf Architecture: any all -Version: 98.0-2+stackrpms +Version: 100.0.2-1+stackrpms Maintainer: B. Stack <bgstack15@gmail.com> XSBC-Original-Maintainer: Maintainers of Mozilla-related packages <team+pkg-mozilla@tracker.debian.org> Standards-Version: 3.9.8.0 -Build-Depends: autotools-dev, debhelper (>= 9.20160114), libx11-dev, libx11-xcb-dev, libxt-dev, libgtk-3-dev, libglib2.0-dev, libdrm-dev, libstartup-notification0-dev, libjpeg-dev, zlib1g-dev, libreadline-dev, python3 (>= 3.6), dpkg-dev, libnspr4-dev (>= 2:4.32~), libnss3-dev (>= 2:3.72~), libvpx-dev (>= 1.8.0), libdbus-glib-1-dev, libffi-dev, libevent-dev, libasound2-dev, libjack-dev, yasm, nasm (>= 2.14) [amd64 i386], rustc (>= 1.53), cargo (>= 0.54), llvm-dev, libclang-dev, clang, cbindgen (>= 0.19.0), nodejs (>= 10), zip, unzip, locales, xvfb, xfonts-base, xauth, ttf-bitstream-vera, fonts-freefont-ttf, fonts-dejima-mincho, iso-codes +Build-Depends: autotools-dev, debhelper (>= 9.20160114), libx11-dev, libx11-xcb-dev, libxt-dev, libgtk-3-dev, libglib2.0-dev, libdrm-dev, libstartup-notification0-dev, libjpeg-dev, zlib1g-dev, libreadline-dev, python3 (>= 3.6), dpkg-dev, libnspr4-dev (>= 2:4.32~), libnss3-dev (>= 2:3.72~), libvpx-dev (>= 1.8.0), libdbus-glib-1-dev, libffi-dev, libevent-dev, libasound2-dev, libjack-dev, libpulse-dev, yasm, nasm (>= 2.14) [amd64 i386], rustc (>= 1.53), cargo (>= 0.54), llvm-dev, libclang-dev, clang, cbindgen (>= 0.19.0), nodejs (>= 10), zip, unzip, locales, xvfb, xfonts-base, xauth, ttf-bitstream-vera, fonts-freefont-ttf, fonts-dejima-mincho, iso-codes Build-Conflicts: graphicsmagick-imagemagick-compat, libhildonmime-dev, liboss4-salsa-dev, libosso-dev Package-List: librewolf deb web optional arch=any diff --git a/librewolf/debian/librewolf_settings/README.md b/librewolf/debian/librewolf_settings/README.md index 0b0edee..f0ed372 100755 --- a/librewolf/debian/librewolf_settings/README.md +++ b/librewolf/debian/librewolf_settings/README.md @@ -8,11 +8,13 @@ we encourage users to find **their own setup** and to use our default configurat - [website](https://librewolf.net/): read the docs. - [faq](https://librewolf.net/docs/faq/): for any question you might have, and to help you creating your own pref file. - [all releases](https://gitlab.com/librewolf-community/browser). -- [issue tracker](https://gitlab.com/librewolf-community/settings/-/issues). issues that have the `provide info` label need user input or they will be quarantined after a week, and closed after ten days. +- [issue tracker](https://gitlab.com/librewolf-community/settings/-/issues). + - if you ignore the pre-requisites and the template the issues might be closed. + - issues that have the `provide info` label need user input or they will be quarantined after a week, and closed after ten days. - find us on [gitter](https://gitter.im/librewolf-community/librewolf) / [matrix](https://matrix.to/#/#librewolf:matrix.org) / [reddit](https://www.reddit.com/r/LibreWolf/) / [lemmy](https://lemmy.ml/c/librewolf). ## Notes and thanks - this repository benefits from the knowledge and research provided by [arkenfox](https://github.com/arkenfox), so special thanks to the project. -we do not use arkenfox's user.js but we try to keep up with it, and we also consider it a great resource for users who want to find their own setup. -- some of the older prefs in this project were taken from [pyllyukko](https://github.com/pyllyukko/user.js/) and many more were investigated on [bugzilla](https://bugzilla.mozilla.org/home); -- thanks to the whole LibreWolf community and to all the contributors of this repo.
\ No newline at end of file +we do not use arkenfox's `user.js` but we try to keep up with it, and we also consider it a great resource for users who want to find their own setup. +- many thanks to the firefox team and to the people working on [bugzilla](https://bugzilla.mozilla.org/home); +- thanks to the whole LibreWolf community and to all the contributors of this repo. diff --git a/librewolf/debian/librewolf_settings/distribution/policies.json b/librewolf/debian/librewolf_settings/distribution/policies.json index 50a0eb2..b726d3e 100644 --- a/librewolf/debian/librewolf_settings/distribution/policies.json +++ b/librewolf/debian/librewolf_settings/distribution/policies.json @@ -29,7 +29,7 @@ }, "Extensions": { "Install": [ - "https://addons.cdn.mozilla.net/user-media/addons/607454/ublock_origin-1.41.8-an+fx.xpi" + "https://addons.mozilla.org/firefox/downloads/file/3933192/ublock_origin-1.42.4-an+fx.xpi" ], "Uninstall": [ "google@search.mozilla.org", diff --git a/librewolf/debian/librewolf_settings/docs/Changelog.md b/librewolf/debian/librewolf_settings/docs/Changelog.md index 1b1b657..b3a325c 100644 --- a/librewolf/debian/librewolf_settings/docs/Changelog.md +++ b/librewolf/debian/librewolf_settings/docs/Changelog.md @@ -1,9 +1,98 @@ This changelog will be used from now on to document changes in a precise manner, with a list of changes for each setting version. Setting versions are documented using the pref `librewolf.cfg.version`, available in about:config. +# 6.4 + +**target commit**: eea09ca07333dc166213fa9c873e4916d979e97f + +**base librewolf version**: 100.x + +**References**: +- hide Firefox Focus promo in private tabs. +- double checking revoked certificates with both CRL and OCSP allows to detect false positives and it is also [the default](https://hg.mozilla.org/mozilla-central/rev/a6ba7b4ee17). +- [clearOnShutdown prefs now respect exceptions](https://github.com/arkenfox/user.js/issues/1441) so we can tick all boxes in that UI as well. + +#### Added preferences +``` +lockPref("browser.promo.focus.enabled", false); +defaultPref("privacy.clearOnShutdown.offlineApps", true); +``` + +#### Changed preferences +``` +defaultPref("security.pki.crlite_mode", 3); // prev 2 +``` + +#### Removed preferences +``` +defaultPref("privacy.clearOnShutdown.cookies", false); +``` + +# 6.3 + +**target commit**: e84fc950bfd7c3542cb974e9d545b9b8e18c010d + +**base librewolf version**: 99.x + +**References**: +- Fixes the uBlock Origin installation URL + +# 6.2 + +**target commit**: ac95f5195ed82ca6bcec48acf9d1241e3c683b25 + +**base librewolf version**: 99.x + +**References**: +- vpn pref was set to the wrong value by mistake. +- offscreencanvas cannot be read back using JS, plus it is being tracked upstream. see [this comment](https://github.com/arkenfox/user.js/issues/1418#issuecomment-1093390017), which solves doubts from 6.1 changelog. + +#### Removed preferences +``` +defaultPref("gfx.offscreencanvas.domain-enabled", false); +``` + +#### Changed preferences +``` +lockPref("browser.vpn_promo.enabled", false); +``` + +# 6.1 + +**target commit**: 465257e5993893cd7896ef1533d37e245f206fb9 + +**base librewolf version**: 99.x + +**References**: +- csp pref has been deprecated. +- quicksuggest prefs are redundant as it has a master switch. the master switch is now force applied on each restart of the browser. +- do not whitelist offscreencanvas for now, we need to first check how it is tied to the "normal" canvas. + +**Notes**: using the vpn pref should allow us to get rid of one patch. + +#### Added preferences +``` +lockPref("browser.vpn_promo.enabled", true); +defaultPref("gfx.offscreencanvas.domain-enabled", false); +``` + +#### Removed preferences +``` +lockPref("security.csp.enable", true); // enforce csp, default +lockPref("browser.urlbar.suggest.quicksuggest.nonsponsored", false); +lockPref("browser.urlbar.suggest.quicksuggest.sponsored", false); +lockPref("browser.urlbar.quicksuggest.dataCollection.enabled", false); // default +lockPref("browser.urlbar.quicksuggest.scenario", "history"); +``` + +#### Changed preferences +``` +pref("browser.urlbar.quicksuggest.enabled", false); +``` + # 6.0 -**target commit**: +**target commit**: 0822d491d2b377b5cd7f0429cee5aa916538fa50 **base librewolf version**: 98.x @@ -612,4 +701,4 @@ lockPref("privacy.override_rfp_for_color_scheme", false); **base librewolf version**: 89.x This is the initial release from which we start tagging and versioning settings. For previous changes see -[here](https://gitlab.com/librewolf-community/settings/-/blob/master/docs/changelog-legacy.md).
\ No newline at end of file +[here](https://gitlab.com/librewolf-community/settings/-/blob/master/docs/changelog-legacy.md). diff --git a/librewolf/debian/librewolf_settings/librewolf.cfg b/librewolf/debian/librewolf_settings/librewolf.cfg index 8525c82..8f07322 100755 --- a/librewolf/debian/librewolf_settings/librewolf.cfg +++ b/librewolf/debian/librewolf_settings/librewolf.cfg @@ -6,7 +6,7 @@ * * WARNING: please make sure the first line of this file is empty. this is a known bug. */ -defaultPref("librewolf.cfg.version", "6.0"); +defaultPref("librewolf.cfg.version", "6.4"); /** INDEX @@ -54,7 +54,7 @@ defaultPref("network.cookie.thirdparty.nonsecureSessionOnly", true); * we disable it but cookies and site data are still cleared per session unless exceptions are set. * all the cleaning prefs true by default except for siteSetting and offlineApps, which is what we want. */ -defaultPref("privacy.clearOnShutdown.cookies", false); +defaultPref("privacy.clearOnShutdown.offlineApps", true); defaultPref("privacy.sanitize.sanitizeOnShutdown", true); defaultPref("privacy.sanitize.timeSpan", 0); @@ -208,10 +208,10 @@ defaultPref("security.ssl.treat_unsafe_negotiation_as_broken", true); * our strategy with revocation is to perform all possible checks with CRL, but when a cert * cannot be checked with it we use OCSP stapled with hard-fail, to still keep privacy and * increase security. - * switching to crlite mode 3 (v99+) would allow us to detect false positive with OCSP. + * crlite is in mode 3 by default, which allows us to detect false positive with OCSP. */ defaultPref("security.remote_settings.crlite_filters.enabled", true); -defaultPref("security.pki.crlite_mode", 2); // mode 2 means enforce CRL checks +defaultPref("security.pki.crlite_mode", 3); // default defaultPref("security.OCSP.enabled", 1); // default defaultPref("security.OCSP.require", true); // set to hard-fail @@ -255,7 +255,6 @@ lockPref("browser.safebrowsing.provider.google4.dataSharing.enabled", false); lockPref("browser.safebrowsing.provider.google4.dataSharingURL", ""); /** [SECTION] OTHERS */ -lockPref("security.csp.enable", true); // enforce csp, default defaultPref("network.IDN_show_punycode", true); // use punycode in idn to prevent spoofing defaultPref("pdfjs.enableScripting", false); // disable js scripting in the built-in pdf reader @@ -301,15 +300,11 @@ defaultPref("browser.search.suggest.enabled", false); defaultPref("browser.search.update", false); defaultPref("browser.urlbar.trimURLs", false); /** - * quicksuggest is a feature of firefox that shows sponsored suggestions. we disable it in full - * but the list could and should be trimmed at some point. the scenario controls the opt-in, while - * the second pref disables the feature and hides it from the ui. + * the pref disables the whole feature and hide it from the ui + * (as noted in https://bugzilla.mozilla.org/show_bug.cgi?id=1755057). + * this also includes the best match feature, as it is part of firefox suggest. */ -lockPref("browser.urlbar.quicksuggest.scenario", "history"); -lockPref("browser.urlbar.quicksuggest.enabled", false); -lockPref("browser.urlbar.suggest.quicksuggest.nonsponsored", false); -lockPref("browser.urlbar.suggest.quicksuggest.sponsored", false); -lockPref("browser.urlbar.quicksuggest.dataCollection.enabled", false); // default +pref("browser.urlbar.quicksuggest.enabled", false); /** [SECTION] DOWNLOADS * user interaction should always be required for downloads, as a way to enhance security by asking @@ -476,6 +471,8 @@ defaultPref("browser.contentblocking.report.monitor.enabled", false); lockPref("browser.contentblocking.report.hide_vpn_banner", true); lockPref("browser.contentblocking.report.vpn.enabled", false); lockPref("browser.contentblocking.report.show_mobile_app", false); +lockPref("browser.vpn_promo.enabled", false); +lockPref("browser.promo.focus.enabled", false); // ...about:addons recommendations sections and more defaultPref("extensions.htmlaboutaddons.recommendations.enabled", false); defaultPref("extensions.getAddons.showPane", false); diff --git a/librewolf/debian/patches/debian-hacks/Add-another-preferences-directory-for-applications-p.patch b/librewolf/debian/patches/debian-hacks/Add-another-preferences-directory-for-applications-p.patch index 07e1119..7206ab5 100644 --- a/librewolf/debian/patches/debian-hacks/Add-another-preferences-directory-for-applications-p.patch +++ b/librewolf/debian/patches/debian-hacks/Add-another-preferences-directory-for-applications-p.patch @@ -13,10 +13,10 @@ to disable the "set as default browser" dialog. 1 file changed, 2 insertions(+) diff --git a/toolkit/xre/nsXREDirProvider.cpp b/toolkit/xre/nsXREDirProvider.cpp -index a9d291b..c4a37fe 100644 +index f0e449c..89b07ad 100644 --- a/toolkit/xre/nsXREDirProvider.cpp +++ b/toolkit/xre/nsXREDirProvider.cpp -@@ -802,6 +802,7 @@ static const char* const kAppendPrefDir[] = {"defaults", "preferences", +@@ -768,6 +768,7 @@ static const char* const kAppendPrefDir[] = {"defaults", "preferences", static const char* const kAppendBackgroundTasksPrefDir[] = { "defaults", "backgroundtasks", nullptr}; #endif @@ -24,7 +24,7 @@ index a9d291b..c4a37fe 100644 nsresult nsXREDirProvider::GetFilesInternal(const char* aProperty, nsISimpleEnumerator** aResult) { -@@ -818,6 +819,7 @@ nsresult nsXREDirProvider::GetFilesInternal(const char* aProperty, +@@ -784,6 +785,7 @@ nsresult nsXREDirProvider::GetFilesInternal(const char* aProperty, LoadDirIntoArray(mXULAppDir, kAppendBackgroundTasksPrefDir, directories); } #endif diff --git a/librewolf/debian/patches/debian-hacks/Avoid-wrong-sessionstore-data-to-keep-windows-out-of.patch b/librewolf/debian/patches/debian-hacks/Avoid-wrong-sessionstore-data-to-keep-windows-out-of.patch index 094cb02..11b65a0 100644 --- a/librewolf/debian/patches/debian-hacks/Avoid-wrong-sessionstore-data-to-keep-windows-out-of.patch +++ b/librewolf/debian/patches/debian-hacks/Avoid-wrong-sessionstore-data-to-keep-windows-out-of.patch @@ -12,19 +12,19 @@ Closes: #552426, #553453 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/browser/components/sessionstore/SessionStore.jsm b/browser/components/sessionstore/SessionStore.jsm -index 79366e4..0891d87 100644 +index 650a597..de13b8a 100644 --- a/browser/components/sessionstore/SessionStore.jsm +++ b/browser/components/sessionstore/SessionStore.jsm -@@ -4923,7 +4923,7 @@ var SessionStoreInternal = { - !isNaN(aTop) && - (aLeft != win_("screenX") || aTop != win_("screenY")) - ) { -- aWindow.moveTo(aLeft, aTop); -+ aWindow.moveTo((aLeft < -aWidth) ? 0 : aLeft, (aTop < -aHeight) ? 0 : aTop); +@@ -5012,7 +5012,7 @@ var SessionStoreInternal = { + // _getWindowDimension. + let desktopToCssScale = + aWindow.desktopToDeviceScale / aWindow.devicePixelRatio; +- aWindow.moveTo(aLeft * desktopToCssScale, aTop * desktopToCssScale); ++ aWindow.moveTo((aLeft < -aWidth) ? 0 : aLeft * desktopToCssScale, (aTop < -aHeight) ? 0 : aTop * desktopToCssScale); } if ( aWidth && -@@ -4952,9 +4952,8 @@ var SessionStoreInternal = { +@@ -5041,9 +5041,8 @@ var SessionStoreInternal = { case "minimized": if (aSizeModeBeforeMinimized == "maximized") { aWindow.maximize(); diff --git a/librewolf/debian/patches/debian-hacks/Relax-MSRV-to-1.56.0.patch b/librewolf/debian/patches/debian-hacks/Relax-MSRV-to-1.56.0.patch index d8d60c4..46b1035 100644 --- a/librewolf/debian/patches/debian-hacks/Relax-MSRV-to-1.56.0.patch +++ b/librewolf/debian/patches/debian-hacks/Relax-MSRV-to-1.56.0.patch @@ -21,7 +21,7 @@ Subject: Relax MSRV to 1.56.0 create mode 100644 third_party/rust/audioipc2-client/build.rs diff --git a/Cargo.lock b/Cargo.lock -index c90fafe..91370ed 100644 +index 391b904..77c1d86 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -297,6 +297,7 @@ dependencies = [ @@ -32,7 +32,7 @@ index c90fafe..91370ed 100644 ] [[package]] -@@ -4874,6 +4875,7 @@ dependencies = [ +@@ -4925,6 +4926,7 @@ dependencies = [ "precomputed-hash", "rayon", "regex", @@ -54,12 +54,12 @@ index ce3652d..c8a966b 100644 RUSTC_BOOTSTRAP := $(RUSTC_BOOTSTRAP),encoding_rs,packed_simd endif diff --git a/python/mozboot/mozboot/util.py b/python/mozboot/mozboot/util.py -index 484ff52..b3990f6 100644 +index 1d6d546..fdbf48f 100644 --- a/python/mozboot/mozboot/util.py +++ b/python/mozboot/mozboot/util.py -@@ -12,7 +12,7 @@ from mach.site import PythonVirtualenv - from mach.util import get_state_dir - +@@ -23,7 +23,7 @@ if sys.version_info < (3,): + else: + from urllib.request import urlopen -MINIMUM_RUST_VERSION = "1.57.0" +MINIMUM_RUST_VERSION = "1.56.0" @@ -121,10 +121,10 @@ index ee156cf..7048ea0 100644 } diff --git a/servo/components/style/stylist.rs b/servo/components/style/stylist.rs -index 9d5e38d..c72d46f 100644 +index 02610fe..63e2209 100644 --- a/servo/components/style/stylist.rs +++ b/servo/components/style/stylist.rs -@@ -1747,7 +1747,7 @@ impl ExtraStyleData { +@@ -1730,7 +1730,7 @@ impl ExtraStyleData { // TODO: Handle pseudo-classes self.pages.named.try_reserve(page_rule.selectors.0.len())?; for name in page_rule.selectors.as_slice() { @@ -134,21 +134,21 @@ index 9d5e38d..c72d46f 100644 vec.push(PageRuleData{layer, rule: rule.clone()}); } diff --git a/third_party/rust/audioipc2-client/.cargo-checksum.json b/third_party/rust/audioipc2-client/.cargo-checksum.json -index 85789ad..3365cd7 100644 +index 6c0cbc0..f033549 100644 --- a/third_party/rust/audioipc2-client/.cargo-checksum.json +++ b/third_party/rust/audioipc2-client/.cargo-checksum.json @@ -1 +1 @@ --{"files":{"Cargo.toml":"4304d6695b5ae83a67ec50eeb7c8b05f0292b31bf6d93bfec629492116cb05fd","cbindgen.toml":"fb6abe1671497f432a06e40b1db7ed7cd2cceecbd9a2382193ad7534e8855e34","src/context.rs":"060680f87d406cef1f6f94cfae991ae59b5f3a13253e15481716a1a4224682ee","src/lib.rs":"c4a6797734489280f6b97dd72c9e51a7bd7be4104592eece3929e29d45cbca4a","src/send_recv.rs":"450bdb1d8a346634c0237f2081b424d11e2c19ad81670009303f8a03b3bfb196","src/stream.rs":"8f2f33b75b78fb1ef8ebb7b14bbb81dbb0f046f9e91b6110a3c49e424690bb8b"},"package":null} +-{"files":{"Cargo.toml":"722e0313d4de90477ae34dbb95ae7eeff27622329c5689bb4ce6bcd2006c6263","cbindgen.toml":"fb6abe1671497f432a06e40b1db7ed7cd2cceecbd9a2382193ad7534e8855e34","src/context.rs":"33231853817615e01fd1a0f67f69a176d19119bbebb7dc417e96ed88dd3a8d34","src/lib.rs":"c4a6797734489280f6b97dd72c9e51a7bd7be4104592eece3929e29d45cbca4a","src/send_recv.rs":"064a657c845762be1dbcbbfc18b3f8a51582eb540def8d2ceecf200184ad4f7a","src/stream.rs":"a6c07796e6fe704cfa6baf8b904e7ffe874d3c884d44d4ed307e668dec25452b"},"package":null} \ No newline at end of file -+{"files":{"Cargo.toml":"fcf7b1d8c3f72ecac29ebe859e7ea5e216168aad149fad0284a81015bd88c329","build.rs":"91de386f621a91eb125484980f352d52549826c27d1ddff53ce6e3835c79e61d","cbindgen.toml":"fb6abe1671497f432a06e40b1db7ed7cd2cceecbd9a2382193ad7534e8855e34","src/context.rs":"060680f87d406cef1f6f94cfae991ae59b5f3a13253e15481716a1a4224682ee","src/lib.rs":"78c7060e55536cbff4681a300e73c7fa0ff52953caa668c84035d2e975b6871d","src/send_recv.rs":"450bdb1d8a346634c0237f2081b424d11e2c19ad81670009303f8a03b3bfb196","src/stream.rs":"8f2f33b75b78fb1ef8ebb7b14bbb81dbb0f046f9e91b6110a3c49e424690bb8b"},"package":null} ++{"files":{"Cargo.toml":"bdde450635daff287c6a94115c801ccc274766f455dd1606dbdf595158668d4f","build.rs":"91de386f621a91eb125484980f352d52549826c27d1ddff53ce6e3835c79e61d","cbindgen.toml":"fb6abe1671497f432a06e40b1db7ed7cd2cceecbd9a2382193ad7534e8855e34","src/context.rs":"33231853817615e01fd1a0f67f69a176d19119bbebb7dc417e96ed88dd3a8d34","src/lib.rs":"78c7060e55536cbff4681a300e73c7fa0ff52953caa668c84035d2e975b6871d","src/send_recv.rs":"064a657c845762be1dbcbbfc18b3f8a51582eb540def8d2ceecf200184ad4f7a","src/stream.rs":"a6c07796e6fe704cfa6baf8b904e7ffe874d3c884d44d4ed307e668dec25452b"},"package":null} diff --git a/third_party/rust/audioipc2-client/Cargo.toml b/third_party/rust/audioipc2-client/Cargo.toml -index 94afedb..b0a63ea 100644 +index fe71197..ddab501 100644 --- a/third_party/rust/audioipc2-client/Cargo.toml +++ b/third_party/rust/audioipc2-client/Cargo.toml -@@ -14,3 +14,6 @@ audio_thread_priority = "0.23.4" - audioipc = { package = "audioipc2", path="../audioipc" } - cubeb-backend = "0.9" - log = "0.4" +@@ -18,3 +18,6 @@ log = "0.4" + version = "0.26.0" + default_features = false + features = ["winapi"] + +[build-dependencies] +rustc_version = "0.2" diff --git a/librewolf/debian/patches/debian-hacks/Use-the-Mozilla-Location-Service-key-when-the-Google.patch b/librewolf/debian/patches/debian-hacks/Use-the-Mozilla-Location-Service-key-when-the-Google.patch index 1732338..62ee664 100644 --- a/librewolf/debian/patches/debian-hacks/Use-the-Mozilla-Location-Service-key-when-the-Google.patch +++ b/librewolf/debian/patches/debian-hacks/Use-the-Mozilla-Location-Service-key-when-the-Google.patch @@ -7,10 +7,10 @@ Subject: Use the Mozilla Location Service key when the Google Key is not there 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js -index 37dd370..de83075 100644 +index 261e46f..6443cf1 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js -@@ -3725,7 +3725,7 @@ pref("network.psl.onUpdate_notify", false); +@@ -3701,7 +3701,7 @@ pref("network.psl.onUpdate_notify", false); // All the Geolocation preferences are here. // diff --git a/librewolf/debian/patches/fixes/Allow-.js-preference-files-to-set-locked-prefs-with-.patch b/librewolf/debian/patches/fixes/Allow-.js-preference-files-to-set-locked-prefs-with-.patch index c06839f..a474a5b 100644 --- a/librewolf/debian/patches/fixes/Allow-.js-preference-files-to-set-locked-prefs-with-.patch +++ b/librewolf/debian/patches/fixes/Allow-.js-preference-files-to-set-locked-prefs-with-.patch @@ -7,7 +7,7 @@ Subject: Allow .js preference files to set locked prefs with lockPref() 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/modules/libpref/parser/src/lib.rs b/modules/libpref/parser/src/lib.rs -index bce98c0..da33195 100644 +index bce98c0..da33195a 100644 --- a/modules/libpref/parser/src/lib.rs +++ b/modules/libpref/parser/src/lib.rs @@ -11,8 +11,9 @@ diff --git a/librewolf/debian/patches/fixes/Bug-1738845-Add-webrtc-configs-for-arm-and-ppc64-lin.patch b/librewolf/debian/patches/fixes/Bug-1738845-Add-webrtc-configs-for-arm-and-ppc64-lin.patch index 302d130..b700cce 100644 --- a/librewolf/debian/patches/fixes/Bug-1738845-Add-webrtc-configs-for-arm-and-ppc64-lin.patch +++ b/librewolf/debian/patches/fixes/Bug-1738845-Add-webrtc-configs-for-arm-and-ppc64-lin.patch @@ -121407,7 +121407,7 @@ index 0000000..bb14be3 \ No newline at end of file diff --git a/dom/media/webrtc/third_party_build/gn-configs/x64_True_arm_linux.mozconfig b/dom/media/webrtc/third_party_build/gn-configs/x64_True_arm_linux.mozconfig new file mode 100644 -index 0000000..0f162f5 +index 0000000..0f162f57 --- /dev/null +++ b/dom/media/webrtc/third_party_build/gn-configs/x64_True_arm_linux.mozconfig @@ -0,0 +1,4 @@ @@ -151627,7 +151627,7 @@ index 58f0062..b9556dc 100644 Library("audio_encoder_multiopus_gn") diff --git a/third_party/libwebrtc/api/audio_codecs/opus/audio_encoder_opus_config_gn/moz.build b/third_party/libwebrtc/api/audio_codecs/opus/audio_encoder_opus_config_gn/moz.build -index a8f5c61..8426e0f 100644 +index a8f5c61..8426e0f5 100644 --- a/third_party/libwebrtc/api/audio_codecs/opus/audio_encoder_opus_config_gn/moz.build +++ b/third_party/libwebrtc/api/audio_codecs/opus/audio_encoder_opus_config_gn/moz.build @@ -83,7 +83,6 @@ if CONFIG["OS_TARGET"] == "Linux": @@ -152158,7 +152158,7 @@ index bb55b07..6c7ab10 100644 Library("callfactory_api_gn") diff --git a/third_party/libwebrtc/api/crypto/frame_decryptor_interface_gn/moz.build b/third_party/libwebrtc/api/crypto/frame_decryptor_interface_gn/moz.build -index fe4a347..9ca8a02 100644 +index fe4a347c..9ca8a02 100644 --- a/third_party/libwebrtc/api/crypto/frame_decryptor_interface_gn/moz.build +++ b/third_party/libwebrtc/api/crypto/frame_decryptor_interface_gn/moz.build @@ -74,7 +74,6 @@ if CONFIG["OS_TARGET"] == "Linux": @@ -153304,7 +153304,7 @@ index 1a5b0bf..b00f466 100644 Library("network_state_predictor_api_gn") diff --git a/third_party/libwebrtc/api/numerics/numerics_gn/moz.build b/third_party/libwebrtc/api/numerics/numerics_gn/moz.build -index fa11b29..b5e327c 100644 +index fa11b290a..b5e327c 100644 --- a/third_party/libwebrtc/api/numerics/numerics_gn/moz.build +++ b/third_party/libwebrtc/api/numerics/numerics_gn/moz.build @@ -78,7 +78,6 @@ if CONFIG["OS_TARGET"] == "Linux": @@ -153658,7 +153658,7 @@ index 01b92ce..de87a29 100644 Library("rtc_error_gn") diff --git a/third_party/libwebrtc/api/rtc_event_log/rtc_event_log_gn/moz.build b/third_party/libwebrtc/api/rtc_event_log/rtc_event_log_gn/moz.build -index 62dec01..c747f7b 100644 +index 62dec010..c747f7b 100644 --- a/third_party/libwebrtc/api/rtc_event_log/rtc_event_log_gn/moz.build +++ b/third_party/libwebrtc/api/rtc_event_log/rtc_event_log_gn/moz.build @@ -79,7 +79,6 @@ if CONFIG["OS_TARGET"] == "Linux": @@ -154369,7 +154369,7 @@ index 691d7ed..02e2b71 100644 Library("task_queue_gn") diff --git a/third_party/libwebrtc/api/transport/bitrate_settings_gn/moz.build b/third_party/libwebrtc/api/transport/bitrate_settings_gn/moz.build -index 3513f9c..2e670ab 100644 +index 3513f9c2..2e670ab 100644 --- a/third_party/libwebrtc/api/transport/bitrate_settings_gn/moz.build +++ b/third_party/libwebrtc/api/transport/bitrate_settings_gn/moz.build @@ -74,7 +74,6 @@ if CONFIG["OS_TARGET"] == "Linux": @@ -155263,7 +155263,7 @@ index 14b9742..9257173 100644 Library("data_size_gn") diff --git a/third_party/libwebrtc/api/units/frequency_gn/moz.build b/third_party/libwebrtc/api/units/frequency_gn/moz.build -index 79fcff4..5a54b58 100644 +index 79fcff48..5a54b58 100644 --- a/third_party/libwebrtc/api/units/frequency_gn/moz.build +++ b/third_party/libwebrtc/api/units/frequency_gn/moz.build @@ -78,7 +78,6 @@ if CONFIG["OS_TARGET"] == "Linux": @@ -155533,7 +155533,7 @@ index 23aa0ba..83f104b 100644 Library("timestamp_gn") diff --git a/third_party/libwebrtc/api/video/builtin_video_bitrate_allocator_factory_gn/moz.build b/third_party/libwebrtc/api/video/builtin_video_bitrate_allocator_factory_gn/moz.build -index 0ecc793..c0cbd77 100644 +index 0ecc793..c0cbd775 100644 --- a/third_party/libwebrtc/api/video/builtin_video_bitrate_allocator_factory_gn/moz.build +++ b/third_party/libwebrtc/api/video/builtin_video_bitrate_allocator_factory_gn/moz.build @@ -79,7 +79,6 @@ if CONFIG["OS_TARGET"] == "Linux": @@ -157051,7 +157051,7 @@ index 57a39cf..3528c34 100644 Library("video_stream_encoder_create_gn") diff --git a/third_party/libwebrtc/api/video/video_stream_encoder_gn/moz.build b/third_party/libwebrtc/api/video/video_stream_encoder_gn/moz.build -index e5e9a7c..7114a4a 100644 +index e5e9a7c0..7114a4a 100644 --- a/third_party/libwebrtc/api/video/video_stream_encoder_gn/moz.build +++ b/third_party/libwebrtc/api/video/video_stream_encoder_gn/moz.build @@ -74,7 +74,6 @@ if CONFIG["OS_TARGET"] == "Linux": @@ -157405,7 +157405,7 @@ index bd29841..ee6547d 100644 Library("builtin_video_encoder_factory_gn") diff --git a/third_party/libwebrtc/api/video_codecs/rtc_software_fallback_wrappers_gn/moz.build b/third_party/libwebrtc/api/video_codecs/rtc_software_fallback_wrappers_gn/moz.build -index 90afc61..fe91abb 100644 +index 90afc61c..fe91abb 100644 --- a/third_party/libwebrtc/api/video_codecs/rtc_software_fallback_wrappers_gn/moz.build +++ b/third_party/libwebrtc/api/video_codecs/rtc_software_fallback_wrappers_gn/moz.build @@ -80,7 +80,6 @@ if CONFIG["OS_TARGET"] == "Linux": @@ -158302,7 +158302,7 @@ index 8cb24f9..e7ede49 100644 Library("call_gn") diff --git a/third_party/libwebrtc/call/call_interfaces_gn/moz.build b/third_party/libwebrtc/call/call_interfaces_gn/moz.build -index 4f07c8b..f9aa9e3 100644 +index 4f07c8b7..f9aa9e3 100644 --- a/third_party/libwebrtc/call/call_interfaces_gn/moz.build +++ b/third_party/libwebrtc/call/call_interfaces_gn/moz.build @@ -84,7 +84,6 @@ if CONFIG["OS_TARGET"] == "Linux": @@ -158662,7 +158662,7 @@ index 5c1f19a..89009b7 100644 Library("rtp_receiver_gn") diff --git a/third_party/libwebrtc/call/rtp_sender_gn/moz.build b/third_party/libwebrtc/call/rtp_sender_gn/moz.build -index 1d14b03..0ad5b6d 100644 +index 1d14b03..0ad5b6d1 100644 --- a/third_party/libwebrtc/call/rtp_sender_gn/moz.build +++ b/third_party/libwebrtc/call/rtp_sender_gn/moz.build @@ -81,7 +81,6 @@ if CONFIG["OS_TARGET"] == "Linux": @@ -159019,7 +159019,7 @@ index 926361a..12f7e80 100644 Library("video_stream_api_gn") diff --git a/third_party/libwebrtc/common_audio/common_audio_c_arm_asm_gn/moz.build b/third_party/libwebrtc/common_audio/common_audio_c_arm_asm_gn/moz.build -index 7adcbbf..01a3edc 100644 +index 7adcbbf3..01a3edc 100644 --- a/third_party/libwebrtc/common_audio/common_audio_c_arm_asm_gn/moz.build +++ b/third_party/libwebrtc/common_audio/common_audio_c_arm_asm_gn/moz.build @@ -70,7 +70,6 @@ if CONFIG["OS_TARGET"] == "Linux": @@ -159406,7 +159406,7 @@ index e499c12..5c5f4ba 100644 Library("common_audio_gn") diff --git a/third_party/libwebrtc/common_audio/common_audio_neon_c_gn/moz.build b/third_party/libwebrtc/common_audio/common_audio_neon_c_gn/moz.build -index 36ffd6a..3a73dc2 100644 +index 36ffd6ad..3a73dc20 100644 --- a/third_party/libwebrtc/common_audio/common_audio_neon_c_gn/moz.build +++ b/third_party/libwebrtc/common_audio/common_audio_neon_c_gn/moz.build @@ -73,14 +73,12 @@ if CONFIG["OS_TARGET"] == "Darwin": @@ -162143,7 +162143,7 @@ index b389938..4fd2f62 100644 Library("audio_network_adaptor_gn") diff --git a/third_party/libwebrtc/modules/audio_coding/default_neteq_factory_gn/moz.build b/third_party/libwebrtc/modules/audio_coding/default_neteq_factory_gn/moz.build -index df061c6..62c3c16 100644 +index df061c6..62c3c16d 100644 --- a/third_party/libwebrtc/modules/audio_coding/default_neteq_factory_gn/moz.build +++ b/third_party/libwebrtc/modules/audio_coding/default_neteq_factory_gn/moz.build @@ -78,7 +78,6 @@ if CONFIG["OS_TARGET"] == "Linux": @@ -162323,7 +162323,7 @@ index e0f07f2..8cff22c 100644 Library("g711_c_gn") diff --git a/third_party/libwebrtc/modules/audio_coding/g711_gn/moz.build b/third_party/libwebrtc/modules/audio_coding/g711_gn/moz.build -index 3716ec4..d1088db 100644 +index 3716ec4..d1088dba 100644 --- a/third_party/libwebrtc/modules/audio_coding/g711_gn/moz.build +++ b/third_party/libwebrtc/modules/audio_coding/g711_gn/moz.build @@ -79,7 +79,6 @@ if CONFIG["OS_TARGET"] == "Linux": @@ -162503,7 +162503,7 @@ index 8910ce7..d5a2030 100644 Library("g722_c_gn") diff --git a/third_party/libwebrtc/modules/audio_coding/g722_gn/moz.build b/third_party/libwebrtc/modules/audio_coding/g722_gn/moz.build -index 71d1053..31dda4e 100644 +index 71d1053..31dda4e6c 100644 --- a/third_party/libwebrtc/modules/audio_coding/g722_gn/moz.build +++ b/third_party/libwebrtc/modules/audio_coding/g722_gn/moz.build @@ -79,7 +79,6 @@ if CONFIG["OS_TARGET"] == "Linux": @@ -163321,7 +163321,7 @@ index 67f8362..c607ac8 100644 Library("isac_gn") diff --git a/third_party/libwebrtc/modules/audio_coding/isac_neon_gn/moz.build b/third_party/libwebrtc/modules/audio_coding/isac_neon_gn/moz.build -index 3798420..a8ee826 100644 +index 3798420..a8ee826f 100644 --- a/third_party/libwebrtc/modules/audio_coding/isac_neon_gn/moz.build +++ b/third_party/libwebrtc/modules/audio_coding/isac_neon_gn/moz.build @@ -14,12 +14,7 @@ COMPILE_FLAGS["OS_INCLUDES"] = [] @@ -164491,7 +164491,7 @@ index 8e1e8c6..99fe511 100644 Library("audio_device_buffer_gn") diff --git a/third_party/libwebrtc/modules/audio_device/audio_device_default_gn/moz.build b/third_party/libwebrtc/modules/audio_device/audio_device_default_gn/moz.build -index a079f00..c949f26 100644 +index a079f00..c949f260 100644 --- a/third_party/libwebrtc/modules/audio_device/audio_device_default_gn/moz.build +++ b/third_party/libwebrtc/modules/audio_device/audio_device_default_gn/moz.build @@ -74,7 +74,6 @@ if CONFIG["OS_TARGET"] == "Linux": @@ -165112,7 +165112,7 @@ index b1898d5..950331d 100644 Library("adaptive_fir_filter_erl_gn") diff --git a/third_party/libwebrtc/modules/audio_processing/aec3/adaptive_fir_filter_gn/moz.build b/third_party/libwebrtc/modules/audio_processing/aec3/adaptive_fir_filter_gn/moz.build -index 249c41b..793a944 100644 +index 249c41b..793a944d 100644 --- a/third_party/libwebrtc/modules/audio_processing/aec3/adaptive_fir_filter_gn/moz.build +++ b/third_party/libwebrtc/modules/audio_processing/aec3/adaptive_fir_filter_gn/moz.build @@ -74,7 +74,6 @@ if CONFIG["OS_TARGET"] == "Linux": @@ -165637,7 +165637,7 @@ index 33c5ef2..03f2b1d 100644 Library("matched_filter_gn") diff --git a/third_party/libwebrtc/modules/audio_processing/aec3/render_buffer_gn/moz.build b/third_party/libwebrtc/modules/audio_processing/aec3/render_buffer_gn/moz.build -index a2685d2..7a83f11 100644 +index a2685d26..7a83f11 100644 --- a/third_party/libwebrtc/modules/audio_processing/aec3/render_buffer_gn/moz.build +++ b/third_party/libwebrtc/modules/audio_processing/aec3/render_buffer_gn/moz.build @@ -74,7 +74,6 @@ if CONFIG["OS_TARGET"] == "Linux": @@ -171310,7 +171310,7 @@ index 60e216f..875ba0f 100644 Library("fft_gn") diff --git a/third_party/libwebrtc/modules/third_party/g711/g711_3p_gn/moz.build b/third_party/libwebrtc/modules/third_party/g711/g711_3p_gn/moz.build -index 4004c61..67610e7 100644 +index 4004c613..67610e7 100644 --- a/third_party/libwebrtc/modules/third_party/g711/g711_3p_gn/moz.build +++ b/third_party/libwebrtc/modules/third_party/g711/g711_3p_gn/moz.build @@ -74,7 +74,6 @@ if CONFIG["OS_TARGET"] == "Linux": @@ -173291,7 +173291,7 @@ index 4b0b804..90c9ddb 100644 Library("webrtc_vp9_helpers_gn") diff --git a/third_party/libwebrtc/modules/video_processing/denoiser_filter_gn/moz.build b/third_party/libwebrtc/modules/video_processing/denoiser_filter_gn/moz.build -index 7407051..d31e40d 100644 +index 7407051e..d31e40d 100644 --- a/third_party/libwebrtc/modules/video_processing/denoiser_filter_gn/moz.build +++ b/third_party/libwebrtc/modules/video_processing/denoiser_filter_gn/moz.build @@ -70,7 +70,6 @@ if CONFIG["OS_TARGET"] == "Linux": @@ -173598,7 +173598,7 @@ index 1131355..01086f1 100644 "/third_party/libwebrtc/modules/desktop_capture/desktop_capture_differ_sse2_gn", "/third_party/libwebrtc/modules/video_processing/video_processing_sse2_gn" diff --git a/third_party/libwebrtc/rtc_base/atomicops_gn/moz.build b/third_party/libwebrtc/rtc_base/atomicops_gn/moz.build -index e81ee45..970aa26 100644 +index e81ee452..970aa26 100644 --- a/third_party/libwebrtc/rtc_base/atomicops_gn/moz.build +++ b/third_party/libwebrtc/rtc_base/atomicops_gn/moz.build @@ -70,7 +70,6 @@ if CONFIG["OS_TARGET"] == "Linux": @@ -173685,7 +173685,7 @@ index e81ee45..970aa26 100644 Library("atomicops_gn") diff --git a/third_party/libwebrtc/rtc_base/audio_format_to_string_gn/moz.build b/third_party/libwebrtc/rtc_base/audio_format_to_string_gn/moz.build -index 1562c0c..460d0d5 100644 +index 1562c0c1..460d0d5 100644 --- a/third_party/libwebrtc/rtc_base/audio_format_to_string_gn/moz.build +++ b/third_party/libwebrtc/rtc_base/audio_format_to_string_gn/moz.build @@ -78,7 +78,6 @@ if CONFIG["OS_TARGET"] == "Linux": @@ -177429,7 +177429,7 @@ index 5f14995..81e19e5 100644 Library("rw_lock_wrapper_gn") diff --git a/third_party/libwebrtc/rtc_base/synchronization/sequence_checker_gn/moz.build b/third_party/libwebrtc/rtc_base/synchronization/sequence_checker_gn/moz.build -index 5ec0cff..40a1809 100644 +index 5ec0cff6..40a1809 100644 --- a/third_party/libwebrtc/rtc_base/synchronization/sequence_checker_gn/moz.build +++ b/third_party/libwebrtc/rtc_base/synchronization/sequence_checker_gn/moz.build @@ -78,7 +78,6 @@ if CONFIG["OS_TARGET"] == "Linux": @@ -178905,7 +178905,7 @@ index a3c1b2d..fbbd5da 100644 Library("sigslot_gn") diff --git a/third_party/libwebrtc/rtc_base/thread_checker_gn/moz.build b/third_party/libwebrtc/rtc_base/thread_checker_gn/moz.build -index eb1c598..cbe6e31 100644 +index eb1c598..cbe6e316 100644 --- a/third_party/libwebrtc/rtc_base/thread_checker_gn/moz.build +++ b/third_party/libwebrtc/rtc_base/thread_checker_gn/moz.build @@ -74,7 +74,6 @@ if CONFIG["OS_TARGET"] == "Linux": @@ -179346,7 +179346,7 @@ index 5d22a05..45e5410 100644 Library("unit_base_gn") diff --git a/third_party/libwebrtc/rtc_base/weak_ptr_gn/moz.build b/third_party/libwebrtc/rtc_base/weak_ptr_gn/moz.build -index a9a520b..b1e60d9 100644 +index a9a520b..b1e60d90 100644 --- a/third_party/libwebrtc/rtc_base/weak_ptr_gn/moz.build +++ b/third_party/libwebrtc/rtc_base/weak_ptr_gn/moz.build @@ -78,7 +78,6 @@ if CONFIG["OS_TARGET"] == "Linux": @@ -180418,7 +180418,7 @@ index fa970ef..ecf69a0 100644 Library("flat_hash_map_gn") diff --git a/third_party/libwebrtc/third_party/abseil-cpp/absl/container/inlined_vector_gn/moz.build b/third_party/libwebrtc/third_party/abseil-cpp/absl/container/inlined_vector_gn/moz.build -index a75033f..7a353bc 100644 +index a75033fa..7a353bc 100644 --- a/third_party/libwebrtc/third_party/abseil-cpp/absl/container/inlined_vector_gn/moz.build +++ b/third_party/libwebrtc/third_party/abseil-cpp/absl/container/inlined_vector_gn/moz.build @@ -53,7 +53,6 @@ if CONFIG["OS_TARGET"] == "Linux": @@ -181105,7 +181105,7 @@ index 41cd799..c97aec9 100644 Library("span_gn") diff --git a/third_party/libwebrtc/third_party/abseil-cpp/absl/types/variant_gn/moz.build b/third_party/libwebrtc/third_party/abseil-cpp/absl/types/variant_gn/moz.build -index bb22317..879e032 100644 +index bb22317..879e032f 100644 --- a/third_party/libwebrtc/third_party/abseil-cpp/absl/types/variant_gn/moz.build +++ b/third_party/libwebrtc/third_party/abseil-cpp/absl/types/variant_gn/moz.build @@ -53,7 +53,6 @@ if CONFIG["OS_TARGET"] == "Linux": diff --git a/librewolf/debian/patches/fixes/Bug-1756347-part-1-Work-around-a-GCC-issue-with-gene.patch b/librewolf/debian/patches/fixes/Bug-1756347-part-1-Work-around-a-GCC-issue-with-gene.patch deleted file mode 100644 index 52daa27..0000000 --- a/librewolf/debian/patches/fixes/Bug-1756347-part-1-Work-around-a-GCC-issue-with-gene.patch +++ /dev/null @@ -1,235 +0,0 @@ -From: Jan de Mooij <jdemooij@mozilla.com> -Date: Mon, 28 Feb 2022 14:50:25 +0000 -Subject: Bug 1756347 part 1 - Work around a GCC issue with generated atomics. - r=lth - -Use MOZ_NEVER_INLINE for GCC x86-32. It seems to run out of byte registers when -inlining these functions. - -Differential Revision: https://phabricator.services.mozilla.com/D139703 ---- - js/src/jit/GenerateAtomicOperations.py | 52 +++++++++++++++----------- - 1 file changed, 30 insertions(+), 22 deletions(-) - -diff --git a/js/src/jit/GenerateAtomicOperations.py b/js/src/jit/GenerateAtomicOperations.py -index dbde8d8..08dd562 100644 ---- a/js/src/jit/GenerateAtomicOperations.py -+++ b/js/src/jit/GenerateAtomicOperations.py -@@ -10,6 +10,7 @@ import buildconfig - - is_64bit = "JS_64BIT" in buildconfig.defines - cpu_arch = buildconfig.substs["CPU_ARCH"] -+is_gcc = buildconfig.substs["CC_TYPE"] == "gcc" - - - def fmt_insn(s): -@@ -19,21 +20,21 @@ def fmt_insn(s): - def gen_seqcst(fun_name): - if cpu_arch in ("x86", "x86_64"): - return r""" -- inline void %(fun_name)s() { -+ INLINE_ATTR void %(fun_name)s() { - asm volatile ("mfence\n\t" ::: "memory"); - }""" % { - "fun_name": fun_name, - } - if cpu_arch == "aarch64": - return r""" -- inline void %(fun_name)s() { -+ INLINE_ATTR void %(fun_name)s() { - asm volatile ("dmb ish\n\t" ::: "memory"); - }""" % { - "fun_name": fun_name, - } - if cpu_arch == "arm": - return r""" -- inline void %(fun_name)s() { -+ INLINE_ATTR void %(fun_name)s() { - asm volatile ("dmb sy\n\t" ::: "memory"); - }""" % { - "fun_name": fun_name, -@@ -63,7 +64,7 @@ def gen_load(fun_name, cpp_type, size, barrier): - if barrier: - insns += fmt_insn("mfence") - return """ -- inline %(cpp_type)s %(fun_name)s(const %(cpp_type)s* arg) { -+ INLINE_ATTR %(cpp_type)s %(fun_name)s(const %(cpp_type)s* arg) { - %(cpp_type)s res; - asm volatile (%(insns)s - : [res] "=r" (res) -@@ -91,7 +92,7 @@ def gen_load(fun_name, cpp_type, size, barrier): - if barrier: - insns += fmt_insn("dmb ish") - return """ -- inline %(cpp_type)s %(fun_name)s(const %(cpp_type)s* arg) { -+ INLINE_ATTR %(cpp_type)s %(fun_name)s(const %(cpp_type)s* arg) { - %(cpp_type)s res; - asm volatile (%(insns)s - : [res] "=r" (res) -@@ -117,7 +118,7 @@ def gen_load(fun_name, cpp_type, size, barrier): - if barrier: - insns += fmt_insn("dmb sy") - return """ -- inline %(cpp_type)s %(fun_name)s(const %(cpp_type)s* arg) { -+ INLINE_ATTR %(cpp_type)s %(fun_name)s(const %(cpp_type)s* arg) { - %(cpp_type)s res; - asm volatile (%(insns)s - : [res] "=r" (res) -@@ -154,7 +155,7 @@ def gen_store(fun_name, cpp_type, size, barrier): - if barrier: - insns += fmt_insn("mfence") - return """ -- inline void %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { -+ INLINE_ATTR void %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { - asm volatile (%(insns)s - : - : [addr] "r" (addr), [val] "r"(val) -@@ -180,7 +181,7 @@ def gen_store(fun_name, cpp_type, size, barrier): - if barrier: - insns += fmt_insn("dmb ish") - return """ -- inline void %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { -+ INLINE_ATTR void %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { - asm volatile (%(insns)s - : - : [addr] "r" (addr), [val] "r"(val) -@@ -204,7 +205,7 @@ def gen_store(fun_name, cpp_type, size, barrier): - if barrier: - insns += fmt_insn("dmb sy") - return """ -- inline void %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { -+ INLINE_ATTR void %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { - asm volatile (%(insns)s - : - : [addr] "r" (addr), [val] "r"(val) -@@ -235,7 +236,7 @@ def gen_exchange(fun_name, cpp_type, size): - assert size == 64 - insns += fmt_insn("xchgq %[val], (%[addr])") - return """ -- inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { -+ INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { - asm volatile (%(insns)s - : [val] "+r" (val) - : [addr] "r" (addr) -@@ -266,7 +267,7 @@ def gen_exchange(fun_name, cpp_type, size): - insns += fmt_insn("cbnz %w[scratch], 0b") - insns += fmt_insn("dmb ish") - return """ -- inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { -+ INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { - %(cpp_type)s res; - uint32_t scratch; - asm volatile (%(insns)s -@@ -297,7 +298,7 @@ def gen_exchange(fun_name, cpp_type, size): - insns += fmt_insn("beq 0b") - insns += fmt_insn("dmb sy") - return """ -- inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { -+ INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { - %(cpp_type)s res; - uint32_t scratch; - asm volatile (%(insns)s -@@ -321,7 +322,7 @@ def gen_cmpxchg(fun_name, cpp_type, size): - # Use a +A constraint to load `oldval` into EDX:EAX as input/output. - # `newval` is loaded into ECX:EBX. - return r""" -- inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, -+ INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, - %(cpp_type)s oldval, - %(cpp_type)s newval) { - asm volatile ("lock; cmpxchg8b (%%[addr])\n\t" -@@ -337,7 +338,7 @@ def gen_cmpxchg(fun_name, cpp_type, size): - } - if cpu_arch == "arm" and size == 64: - return r""" -- inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, -+ INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, - %(cpp_type)s oldval, - %(cpp_type)s newval) { - uint32_t oldval0 = oldval & 0xffff'ffff; -@@ -380,7 +381,7 @@ def gen_cmpxchg(fun_name, cpp_type, size): - assert size == 64 - insns += fmt_insn("lock; cmpxchgq %[newval], (%[addr])") - return """ -- inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, -+ INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, - %(cpp_type)s oldval, - %(cpp_type)s newval) { - asm volatile (%(insns)s -@@ -425,7 +426,7 @@ def gen_cmpxchg(fun_name, cpp_type, size): - insns += fmt_insn("cbnz %w[scratch], 0b") - insns += fmt_insn("1: dmb ish") - return """ -- inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, -+ INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, - %(cpp_type)s oldval, - %(cpp_type)s newval) { - %(cpp_type)s res, scratch; -@@ -466,7 +467,7 @@ def gen_cmpxchg(fun_name, cpp_type, size): - insns += fmt_insn("beq 0b") - insns += fmt_insn("1: dmb sy") - return """ -- inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, -+ INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, - %(cpp_type)s oldval, - %(cpp_type)s newval) { - %(cpp_type)s res, scratch; -@@ -501,7 +502,7 @@ def gen_fetchop(fun_name, cpp_type, size, op): - assert size == 64 - insns += fmt_insn("lock; xaddq %[val], (%[addr])") - return """ -- inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { -+ INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { - asm volatile (%(insns)s - : [val] "+&r" (val) - : [addr] "r" (addr) -@@ -539,7 +540,7 @@ def gen_fetchop(fun_name, cpp_type, size, op): - insns = insns.replace("OP", op) - insns += fmt_insn("jnz 0b") - return """ -- inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { -+ INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { - %(cpp_type)s res, scratch; - asm volatile (%(insns)s - : [res] "=&a" (res), [scratch] "=&r" (scratch) -@@ -581,7 +582,7 @@ def gen_fetchop(fun_name, cpp_type, size, op): - insns += fmt_insn("cbnz %w[scratch2], 0b") - insns += fmt_insn("dmb ish") - return """ -- inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { -+ INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { - %(cpp_type)s res; - uintptr_t scratch1, scratch2; - asm volatile (%(insns)s -@@ -621,7 +622,7 @@ def gen_fetchop(fun_name, cpp_type, size, op): - insns += fmt_insn("beq 0b") - insns += fmt_insn("dmb sy") - return """ -- inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { -+ INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { - %(cpp_type)s res; - uintptr_t scratch1, scratch2; - asm volatile (%(insns)s -@@ -681,7 +682,7 @@ def gen_copy(fun_name, cpp_type, size, unroll, direction): - offset -= 1 - - return """ -- inline void %(fun_name)s(uint8_t* dst, const uint8_t* src) { -+ INLINE_ATTR void %(fun_name)s(uint8_t* dst, const uint8_t* src) { - %(cpp_type)s* dst_ = reinterpret_cast<%(cpp_type)s*>(dst); - const %(cpp_type)s* src_ = reinterpret_cast<const %(cpp_type)s*>(src); - %(cpp_type)s scratch; -@@ -853,6 +854,13 @@ def generate_atomics_header(c_out): - "constexpr size_t JS_GENERATED_ATOMICS_WORDSIZE = " + str(wordsize) + ";\n" - ) - -+ # Work around a GCC issue on 32-bit x86 by adding MOZ_NEVER_INLINE. -+ # See bug 1756347. -+ if is_gcc and cpu_arch == "x86": -+ contents = contents.replace("INLINE_ATTR", "MOZ_NEVER_INLINE inline") -+ else: -+ contents = contents.replace("INLINE_ATTR", "inline") -+ - c_out.write( - HEADER_TEMPLATE - % { diff --git a/librewolf/debian/patches/librewolf/aboutLogos.patch b/librewolf/debian/patches/librewolf/aboutLogos.patch new file mode 100644 index 0000000..6584e40 --- /dev/null +++ b/librewolf/debian/patches/librewolf/aboutLogos.patch @@ -0,0 +1,17 @@ +--- a/browser/base/jar.mn ++++ b/browser/base/jar.mn +@@ -97,6 +97,14 @@ browser.jar: + #endif + content/browser/webrtcIndicator.xhtml (content/webrtcIndicator.xhtml) + content/browser/webrtcIndicator.js (content/webrtcIndicator.js) ++ content/browser/aboutLogos/0.png (content/aboutLogos/0.png) ++ content/browser/aboutLogos/1.png (content/aboutLogos/1.png) ++ content/browser/aboutLogos/2.png (content/aboutLogos/2.png) ++ content/browser/aboutLogos/3.png (content/aboutLogos/3.png) ++ content/browser/aboutLogos/4.png (content/aboutLogos/4.png) ++ content/browser/aboutLogos/5.png (content/aboutLogos/5.png) ++ content/browser/aboutLogos/6.png (content/aboutLogos/6.png) ++ content/browser/aboutLogos/original.svg (content/aboutLogos/original.svg) + # the following files are browser-specific overrides + * content/browser/license.html (/toolkit/content/license.html) + % override chrome://global/content/license.html chrome://browser/content/license.html diff --git a/librewolf/debian/patches/librewolf/bootstrap-without-vcs2.patch b/librewolf/debian/patches/librewolf/bootstrap-without-vcs.patch index 6bedf32..d213d70 100644 --- a/librewolf/debian/patches/librewolf/bootstrap-without-vcs2.patch +++ b/librewolf/debian/patches/librewolf/bootstrap-without-vcs.patch @@ -1,17 +1,16 @@ diff --git a/python/mozboot/mozboot/bootstrap.py b/python/mozboot/mozboot/bootstrap.py -index b0d6965..8ea2e15 100644 +index 0c5ecbf..d9a6d9d 100644 --- a/python/mozboot/mozboot/bootstrap.py +++ b/python/mozboot/mozboot/bootstrap.py -@@ -549,10 +549,8 @@ def current_firefox_checkout(env, hg: Optional[Path] = None): - if not len(path.parents): +@@ -550,10 +550,7 @@ def current_firefox_checkout(env, hg: Optional[Path] = None): break + path = path.parent - raise UserError( - "Could not identify the root directory of your checkout! " - "Are you running `mach bootstrap` in an hg or git clone?" - ) -+ return ("local", os.getcwd()) -+ ++ return ("local", Path.cwd()) def update_git_tools(git: Optional[Path], root_state_dir: Path): @@ -67,3 +66,60 @@ index dd31f53..6f0087a 100644 else: raise MissingVCSInfo("unknown VCS_CHECKOUT_TYPE value: %s" % flavor) +diff --git a/third_party/python/taskcluster_taskgraph/taskgraph/util/vcs.py b/third_party/python/taskcluster_taskgraph/taskgraph/util/vcs.py +index 016578b..7525139 100644 +--- a/third_party/python/taskcluster_taskgraph/taskgraph/util/vcs.py ++++ b/third_party/python/taskcluster_taskgraph/taskgraph/util/vcs.py +@@ -168,6 +168,43 @@ class GitRepository(Repository): + self.run("checkout", ref) + + ++class LocalRepository(Repository): ++ tool = "true" ++ ++ @property ++ def head_ref(self): ++ return "" ++ ++ def get_outgoing_files(self): ++ return [] ++ ++ def get_changed_files(self): ++ return [] ++ ++ def base_ref(self): ++ raise Exception("Unimplemented") ++ ++ def branch(self): ++ raise Exception("Unimplemented") ++ ++ def get_commit_message(self): ++ raise Exception("Unimplemented") ++ ++ def get_url(self): ++ return "" ++ ++ def update(self): ++ raise Exception("Unimplemented") ++ ++ def working_directory_clean(self): ++ raise Exception("Unimplemented") ++ ++ def get_tracked_files_finder(self): ++ files = [os.path.relpath(os.path.join(dp, f), self.path).replace("\\","/") for dp, dn, fn in os.walk(self.path) for f in fn] ++ files.sort() ++ return FileListFinder(files) ++ ++ + def get_repository(path): + """Get a repository object for the repository at `path`. + If `path` is not a known VCS repository, raise an exception. +@@ -178,7 +215,7 @@ def get_repository(path): + elif os.path.exists(os.path.join(path, ".git")): + return GitRepository(path) + +- raise RuntimeError("Current directory is neither a git or hg repository") ++ return LocalRepository(path) + + + def find_hg_revision_push_info(repository, revision): diff --git a/librewolf/debian/patches/librewolf/context-menu.patch b/librewolf/debian/patches/librewolf/context-menu.patch index 5685f96..da19aa6 100644 --- a/librewolf/debian/patches/librewolf/context-menu.patch +++ b/librewolf/debian/patches/librewolf/context-menu.patch @@ -1,12 +1,8 @@ diff --git a/browser/base/content/browser-context.inc b/browser/base/content/browser-context.inc +index 39a139f..c565bce 100644 --- a/browser/base/content/browser-context.inc +++ b/browser/base/content/browser-context.inc -@@ -102,19 +102,16 @@ - oncommand="gContextMenu.openLinkInPrivateWindow();"/> - <menuseparator id="context-sep-open"/> - <menuitem id="context-bookmarklink" - data-l10n-id="main-context-menu-bookmark-link" - oncommand="gContextMenu.bookmarkLink();"/> +@@ -100,9 +100,6 @@ <menuitem id="context-savelink" data-l10n-id="main-context-menu-save-link" oncommand="gContextMenu.saveLink();"/> @@ -16,17 +12,7 @@ diff --git a/browser/base/content/browser-context.inc b/browser/base/content/bro <menuitem id="context-copyemail" data-l10n-id="main-context-menu-copy-email" oncommand="gContextMenu.copyEmail();"/> - <menuitem id="context-copylink" - data-l10n-id="main-context-menu-copy-link-simple" - oncommand="gContextMenu.copyLink();"/> - <menu id="context-sendlinktodevice" - class="sync-ui-item" -@@ -254,19 +251,16 @@ - #ifdef XP_MACOSX - <menuitem id="context-bookmarkpage" - data-l10n-id="main-context-menu-bookmark-add-mac" - oncommand="gContextMenu.bookmarkThisPage();"/> - #endif +@@ -256,9 +253,6 @@ <menuitem id="context-savepage" data-l10n-id="main-context-menu-page-save" oncommand="gContextMenu.savePageAs();"/> @@ -36,8 +22,3 @@ diff --git a/browser/base/content/browser-context.inc b/browser/base/content/bro <menu id="context-sendpagetodevice" class="sync-ui-item" data-l10n-id="main-context-menu-send-to-device" - hidden="true"> - <menupopup id="context-sendpagetodevice-popup" - onpopupshowing="(() => { gSync.populateSendTabToDevicesMenu(event.target, gBrowser.currentURI.spec, gBrowser.contentTitle); })()"/> - </menu> - <menu id="fill-login" hidden="true"> diff --git a/librewolf/debian/patches/librewolf/handlers.patch b/librewolf/debian/patches/librewolf/handlers.patch new file mode 100644 index 0000000..2916500 --- /dev/null +++ b/librewolf/debian/patches/librewolf/handlers.patch @@ -0,0 +1,232 @@ +--- a/uriloader/exthandler/HandlerList.jsm ++++ b/uriloader/exthandler/HandlerList.jsm +@@ -13,228 +13,7 @@ this.kHandlerList = { + schemes: { + mailto: { + handlers: [ +- { +- name: "Gmail", +- uriTemplate: "https://mail.google.com/mail/?extsrc=mailto&url=%s", +- }, +- ], +- }, +- }, +- }, +- cs: { +- schemes: { +- mailto: { +- handlers: [ +- { +- name: "Seznam", +- uriTemplate: "https://email.seznam.cz/newMessageScreen?mailto=%s", +- }, +- { +- name: "Gmail", +- uriTemplate: "https://mail.google.com/mail/?extsrc=mailto&url=%s", +- }, +- ], +- }, +- }, +- }, +- csb: { +- schemes: { +- mailto: { +- handlers: [ +- { +- name: "Poczta Interia.pl", +- uriTemplate: "http://poczta.interia.pl/mh/?mailto=%s", +- }, +- { +- name: "OnetPoczta", +- uriTemplate: "http://poczta.onet.pl/napisz.html?uri=%s", +- }, +- ], +- }, +- }, +- }, +- "es-CL": { +- schemes: { +- mailto: { +- handlers: [ +- { +- name: "Gmail", +- uriTemplate: "https://mail.google.com/mail/?extsrc=mailto&url=%s", +- }, +- { +- name: "Outlook", +- uriTemplate: +- "https://outlook.live.com/default.aspx?rru=compose&to=%s", +- }, +- ], +- }, +- }, +- }, +- "ja-JP-mac": { +- schemes: { +- mailto: { +- handlers: [ +- { +- name: "Yahoo!メール", +- uriTemplate: "https://mail.yahoo.co.jp/compose/?To=%s", +- }, +- { +- name: "Gmail", +- uriTemplate: "https://mail.google.com/mail/?extsrc=mailto&url=%s", +- }, +- ], +- }, +- }, +- }, +- ja: { +- schemes: { +- mailto: { +- handlers: [ +- { +- name: "Yahoo!メール", +- uriTemplate: "https://mail.yahoo.co.jp/compose/?To=%s", +- }, +- { +- name: "Gmail", +- uriTemplate: "https://mail.google.com/mail/?extsrc=mailto&url=%s", +- }, +- ], +- }, +- }, +- }, +- kk: { +- schemes: { +- mailto: { +- handlers: [ +- { +- name: "Яндекс.Почта", +- uriTemplate: "https://mail.yandex.ru/compose?mailto=%s", +- }, +- { +- name: "Mail.Ru", +- uriTemplate: "https://e.mail.ru/cgi-bin/sentmsg?mailto=%s", +- }, +- { +- name: "Gmail", +- uriTemplate: "https://mail.google.com/mail/?extsrc=mailto&url=%s", +- }, +- ], +- }, +- }, +- }, +- ltg: { +- schemes: { +- mailto: { +- handlers: [ +- { +- name: "Gmail", +- uriTemplate: "https://mail.google.com/mail/?extsrc=mailto&url=%s", +- }, +- { +- name: "inbox.lv mail", +- uriTemplate: "https://mail.inbox.lv/compose?to=%s", +- }, +- ], +- }, +- }, +- }, +- lv: { +- schemes: { +- mailto: { +- handlers: [ +- { +- name: "Gmail", +- uriTemplate: "https://mail.google.com/mail/?extsrc=mailto&url=%s", +- }, +- { +- name: "inbox.lv mail", +- uriTemplate: "https://mail.inbox.lv/compose?to=%s", +- }, +- ], +- }, +- }, +- }, +- pl: { +- schemes: { +- mailto: { +- handlers: [ +- { +- name: "Poczta Interia.pl", +- uriTemplate: "https://poczta.interia.pl/mh/?mailto=%s", +- }, +- { +- name: "Gmail", +- uriTemplate: "https://mail.google.com/mail/?extsrc=mailto&url=%s", +- }, +- ], +- }, +- }, +- }, +- ru: { +- schemes: { +- mailto: { +- handlers: [ +- { +- name: "Яндекс.Почту", +- uriTemplate: "https://mail.yandex.ru/compose?mailto=%s", +- }, +- { +- name: "Mail.Ru", +- uriTemplate: "https://e.mail.ru/cgi-bin/sentmsg?mailto=%s", +- }, +- { +- name: "Gmail", +- uriTemplate: "https://mail.google.com/mail/?extsrc=mailto&url=%s", +- }, +- ], +- }, +- }, +- }, +- sah: { +- schemes: { +- mailto: { +- handlers: [ +- { +- name: "Яндекс.Почта", +- uriTemplate: "https://mail.yandex.ru/compose?mailto=%s", +- }, +- { +- name: "Mail.Ru", +- uriTemplate: "https://e.mail.ru/cgi-bin/sentmsg?mailto=%s", +- }, +- ], +- }, +- }, +- }, +- uk: { +- schemes: { +- mailto: { +- handlers: [ +- { +- name: "Gmail", +- uriTemplate: "https://mail.google.com/mail/?extsrc=mailto&url=%s", +- }, +- { +- name: "Outlook", +- uriTemplate: +- "https://outlook.live.com/default.aspx?rru=compose&to=%s", +- }, +- ], +- }, +- }, +- }, +- uz: { +- schemes: { +- mailto: { +- handlers: [ +- { +- name: "Gmail", +- uriTemplate: "https://mail.google.com/mail/?extsrc=mailto&url=%s", +- }, +- { +- name: "Mail.Ru", +- uriTemplate: "https://e.mail.ru/cgi-bin/sentmsg?mailto=%s", +- }, ++ {}, + ], + }, + }, diff --git a/librewolf/debian/patches/librewolf/hide-default-browser.patch b/librewolf/debian/patches/librewolf/hide-default-browser.patch index 4923780..3db1aa3 100644 --- a/librewolf/debian/patches/librewolf/hide-default-browser.patch +++ b/librewolf/debian/patches/librewolf/hide-default-browser.patch @@ -1,8 +1,10 @@ -diff --git a/browser/components/preferences/main.inc.xhtml b/browser/components/preferences/main.inc.xhtml -index 855ee64..617911a 100644 --- a/browser/components/preferences/main.inc.xhtml +++ b/browser/components/preferences/main.inc.xhtml -@@ -32,7 +32,7 @@ +@@ -29,10 +29,11 @@ + <vbox id="startupPageBox"> + <checkbox id="browserRestoreSession" + data-l10n-id="startup-restore-windows-and-tabs"/> ++ <label id="sessionRestoreLearnMore" is="text-link" class="learnMore" data-l10n-id="session-restore-learn-more"/> </vbox> #ifdef HAVE_SHELL_SERVICE diff --git a/librewolf/debian/patches/librewolf/hide-passwordmgr.patch b/librewolf/debian/patches/librewolf/hide-passwordmgr.patch new file mode 100644 index 0000000..933b4e6 --- /dev/null +++ b/librewolf/debian/patches/librewolf/hide-passwordmgr.patch @@ -0,0 +1,29 @@ +--- a/browser/base/content/browser.js ++++ b/browser/base/content/browser.js +@@ -1847,6 +1847,13 @@ var gBrowserInit = { + )?.removeAttribute("key"); + } + ++ if (Services.prefs.getBoolPref("librewolf.hidePasswdmgr", false)) { ++ PanelMultiView.getViewNode( ++ document, ++ "appMenu-passwords-button" ++ )?.remove(); ++ } ++ + this._loadHandled = true; + }, + +--- a/browser/components/preferences/privacy.js ++++ b/browser/components/preferences/privacy.js +@@ -810,6 +810,10 @@ var gPrivacyPane = { + /* init HTTPS-Only mode */ + this.initHttpsOnly(); + ++ if (Services.prefs.getBoolPref("librewolf.hidePasswdmgr", false)) { ++ document.getElementById("passwordsGroup")?.remove(); ++ } ++ + // Notify observers that the UI is now ready + Services.obs.notifyObservers(window, "privacy-pane-loaded"); + }, diff --git a/librewolf/debian/patches/librewolf/librewolf-pref-pane.patch b/librewolf/debian/patches/librewolf/librewolf-pref-pane.patch index 931526a..9dcb97d 100644 --- a/librewolf/debian/patches/librewolf/librewolf-pref-pane.patch +++ b/librewolf/debian/patches/librewolf/librewolf-pref-pane.patch @@ -1,23 +1,5 @@ -diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml -new file mode 100644 -index 0000000..2badfe9 ---- /dev/null -+++ b/.gitlab-ci.yml -@@ -0,0 +1,12 @@ -+stages: -+ - build -+ -+create-patch: -+ stage: build -+ variables: -+ GIT_DEPTH: 200 -+ script: -+ - git diff 1fee314adc81000294fc0cf3196a758e4b64dace > librewolf-pref-pane.patch -+ artifacts: -+ paths: -+ - librewolf-pref-pane.patch diff --git a/browser/components/preferences/jar.mn b/browser/components/preferences/jar.mn -index 4f3babe..97c7ec2 100644 +index 912d9edf0855..30a83da4edca 100644 --- a/browser/components/preferences/jar.mn +++ b/browser/components/preferences/jar.mn @@ -11,6 +11,7 @@ browser.jar: @@ -30,10 +12,10 @@ index 4f3babe..97c7ec2 100644 content/browser/preferences/experimental.js diff --git a/browser/components/preferences/librewolf.inc.xhtml b/browser/components/preferences/librewolf.inc.xhtml new file mode 100644 -index 0000000..f27541d +index 000000000000..c2dfea6d0858 --- /dev/null +++ b/browser/components/preferences/librewolf.inc.xhtml -@@ -0,0 +1,224 @@ +@@ -0,0 +1,254 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -78,6 +60,18 @@ index 0000000..f27541d + </vbox> + </vbox> + ++ <hbox> ++ <checkbox id="librewolf-sync-checkbox" data-l10n-id="librewolf-sync-checkbox" preference="identity.fxaccounts.enabled" flex="1" /> ++ <html:label for="librewolf-sync-collapse" class="sidebar-footer-link" pack="end"> <image class="sidebar-footer-icon help-icon"/> </html:label> ++ </hbox> ++ <vbox class="librewolf-collapse indent"> ++ <html:input type="checkbox" id="librewolf-sync-collapse" /> ++ <vbox class="librewolf-collapsed tracking-protection-ui content-blocking-category"> ++ <label data-l10n-id="librewolf-sync-description" /> ++ <html:div> <image src="chrome://browser/skin/warning.svg" /> <label data-l10n-id="librewolf-sync-warning1" class="librewolf-warning" /> </html:div> ++ <checkbox preference="identity.fxaccounts.enabled" label="identity.fxaccounts.enabled" /> ++ </vbox> ++ </vbox> + + <hbox> + <checkbox id="librewolf-autocopy-checkbox" data-l10n-id="librewolf-autocopy-checkbox" preference="clipboard.autocopy" flex="1" /> @@ -126,6 +120,24 @@ index 0000000..f27541d +</groupbox> + +<groupbox hidden="true" data-category="paneLibrewolf"> ++ <html:h2 data-l10n-id="librewolf-privacy-heading" /> ++ ++ <hbox> ++ <checkbox id="librewolf-xorigin-ref-checkbox" data-l10n-id="librewolf-xorigin-ref-checkbox" preference="network.http.referer.XOriginPolicy" flex="1" /> ++ <html:label for="librewolf-xorigin-ref-collapse" class="sidebar-footer-link" pack="end"> <image class="sidebar-footer-icon help-icon"/> </html:label> ++ </hbox> ++ <vbox class="librewolf-collapse indent"> ++ <html:input type="checkbox" id="librewolf-xorigin-ref-collapse" /> ++ <vbox class="librewolf-collapsed tracking-protection-ui content-blocking-category"> ++ <label data-l10n-id="librewolf-xorigin-ref-description" /> ++ <html:div> <image src="chrome://browser/skin/warning.svg" /> <label data-l10n-id="librewolf-xorigin-ref-warning1" class="librewolf-warning" /> </html:div> ++ <checkbox disabled="true" preference="network.http.referer.XOriginPolicy" label="network.http.referer.XOriginPolicy" /> ++ </vbox> ++ </vbox> ++ ++</groupbox> ++ ++<groupbox hidden="true" data-category="paneLibrewolf"> + <html:h2 data-l10n-id="librewolf-broken-heading" /> + + <hbox> @@ -260,10 +272,10 @@ index 0000000..f27541d +</html:template> diff --git a/browser/components/preferences/librewolf.js b/browser/components/preferences/librewolf.js new file mode 100644 -index 0000000..ee49f0f +index 000000000000..c8cbb075d59b --- /dev/null +++ b/browser/components/preferences/librewolf.js -@@ -0,0 +1,240 @@ +@@ -0,0 +1,287 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ @@ -282,7 +294,10 @@ index 0000000..ee49f0f +Preferences.addAll([ + // IPv6 + { id: "network.dns.disableIPv6", type: "bool" }, ++ // ocsp hard-fail + { id: "security.OCSP.require", type: "bool" }, ++ // ocsp hard-fail ++ { id: "identity.fxaccounts.enabled", type: "bool" }, + // WebGL + { id: "webgl.disabled", type: "bool" }, + // RFP @@ -293,6 +308,8 @@ index 0000000..ee49f0f + // Clipboard autocopy/paste + { id: "clipboard.autocopy", type: "bool" }, + { id: "middlemouse.paste", type: "bool" }, ++ // XOrigin referrers ++ { id: "network.http.referer.XOriginPolicy", type: "int" }, + // Harden + { id: "privacy.resistFingerprinting.letterboxing", type: "bool" }, + // Google Safe Browsing @@ -308,7 +325,10 @@ index 0000000..ee49f0f + //{ id: "browser.safebrowsing.downloads.enabled", type: "bool" }, //Also already added + { id: "toolkit.legacyUserProfileCustomizations.stylesheets", type: "bool" }, + // Canvas UI when blocked -+ { id: "privacy.resistFingerprinting.autoDeclineNoUserInputCanvasPrompts", type: "bool" }, ++ { ++ id: "privacy.resistFingerprinting.autoDeclineNoUserInputCanvasPrompts", ++ type: "bool", ++ }, +]); + +var gLibrewolfPane = { @@ -335,6 +355,11 @@ index 0000000..ee49f0f + [true, ], + ); + setBoolSyncListeners( ++ "librewolf-sync-checkbox", ++ ["identity.fxaccounts.enabled"], ++ [true, ], ++ ); ++ setBoolSyncListeners( + "librewolf-autocopy-checkbox", + ["clipboard.autocopy", "middlemouse.paste"], + [true, true ], @@ -398,6 +423,13 @@ index 0000000..ee49f0f + ] + ); + ++ setXOriginPolicySyncListeners( ++ "librewolf-xorigin-ref-checkbox", ++ "network.http.referer.XOriginPolicy", ++ [1, 2], ++ [0] ++ ); ++ + // Set event listener on open profile directory button + setEventListener("librewolf-open-profile", "command", openProfileDirectory); + // Set event listener on open about:config button @@ -408,6 +440,18 @@ index 0000000..ee49f0f + }, +}; + ++function setXOriginPolicySyncListeners(checkboxid, pref, onVals, offVals) { ++ setSyncFromPrefListener(checkboxid, () => onVals.includes(getPref(pref))); ++ setSyncToPrefListener(checkboxid, () => ++ writeGenericPrefs([pref], [2], [0], document.getElementById(checkboxid).checked) ++ ); ++ Preferences.get(pref).on("change", () => ++ makeMasterCheckboxesReactive(checkboxid, () => ++ onVals.includes(getPref(pref)) ++ ) ++ ); ++} ++ +function openProfileDirectory() { + // Get the profile directory. + let currProfD = Services.dirsvc.get("ProfD", Ci.nsIFile); @@ -442,13 +486,13 @@ index 0000000..ee49f0f +} + +function makeMasterCheckboxesReactive(checkboxid, func) { -+ let shouldBeChecked = func(); ++ const shouldBeChecked = func(); + document.getElementById(checkboxid).checked = shouldBeChecked; +} + +// Wrapper function in case something more is required (as I suspected in the first iteration of this) +function getPref(pref) { -+ let retval = Preferences.get(pref); ++ const retval = Preferences.get(pref); +/* if (retval === undefined) { + return defaultValue; + } */ @@ -504,8 +548,23 @@ index 0000000..ee49f0f + return writeArr[0]; +} + ++Preferences.get("identity.fxaccounts.enabled").on("change", () => { ++ confirmRestartPrompt( ++ Services.prefs.getBoolPref("identity.fxaccounts.enabled"), // Restart is required to *enable* / *disable* the pref ++ 1, // Default Button Index ++ true, // Cancel instead of Revert Button ++ false // No Restart Later button ++ ).then(buttonIndex => { ++ if (buttonIndex == CONFIRM_RESTART_PROMPT_RESTART_NOW) { ++ Services.startup.quit( ++ Ci.nsIAppStartup.eAttemptQuit | Ci.nsIAppStartup.eRestart ++ ); ++ return; ++ } ++ }); ++}); diff --git a/browser/components/preferences/preferences.js b/browser/components/preferences/preferences.js -index 91e9e46..763ab49 100644 +index f6dc2b3781f8..7d401fc63219 100644 --- a/browser/components/preferences/preferences.js +++ b/browser/components/preferences/preferences.js @@ -8,6 +8,7 @@ @@ -515,8 +574,8 @@ index 91e9e46..763ab49 100644 +/* import-globals-from librewolf.js */ /* import-globals-from sync.js */ /* import-globals-from experimental.js */ - /* import-globals-from findInPage.js */ -@@ -117,6 +118,7 @@ function init_all() { + /* import-globals-from moreFromMozilla.js */ +@@ -191,6 +192,7 @@ function init_all() { register_module("paneHome", gHomePane); register_module("paneSearch", gSearchPane); register_module("panePrivacy", gPrivacyPane); @@ -525,10 +584,10 @@ index 91e9e46..763ab49 100644 if (Services.prefs.getBoolPref("browser.preferences.experimental")) { // Set hidden based on previous load's hidden value. diff --git a/browser/components/preferences/preferences.xhtml b/browser/components/preferences/preferences.xhtml -index aab4a9e..907a631 100644 +index 81059f3d2e01..d815682d68bc 100644 --- a/browser/components/preferences/preferences.xhtml +++ b/browser/components/preferences/preferences.xhtml -@@ -12,6 +12,7 @@ +@@ -13,6 +13,7 @@ <?xml-stylesheet href="chrome://browser/skin/preferences/search.css"?> <?xml-stylesheet href="chrome://browser/skin/preferences/containers.css"?> <?xml-stylesheet href="chrome://browser/skin/preferences/privacy.css"?> @@ -536,7 +595,7 @@ index aab4a9e..907a631 100644 <!DOCTYPE html> -@@ -128,6 +129,17 @@ +@@ -129,6 +130,17 @@ <label class="category-name" flex="1" data-l10n-id="pane-privacy-title"></label> </richlistitem> @@ -554,7 +613,7 @@ index aab4a9e..907a631 100644 <richlistitem id="category-sync" class="category" hidden="true" -@@ -201,6 +213,7 @@ +@@ -211,6 +223,7 @@ #include home.inc.xhtml #include search.inc.xhtml #include privacy.inc.xhtml @@ -563,10 +622,10 @@ index aab4a9e..907a631 100644 #include sync.inc.xhtml #include experimental.inc.xhtml diff --git a/browser/locales/en-US/browser/preferences/preferences.ftl b/browser/locales/en-US/browser/preferences/preferences.ftl -index d276f7a..127c8e1 100644 +index f4d5eaea2193..46de6b40af65 100644 --- a/browser/locales/en-US/browser/preferences/preferences.ftl +++ b/browser/locales/en-US/browser/preferences/preferences.ftl -@@ -1347,3 +1347,82 @@ choose-download-folder-title = Choose Download Folder: +@@ -1409,3 +1409,93 @@ choose-download-folder-title = Choose Download Folder: # $service-name (String) - Name of a cloud storage provider like Dropbox, Google Drive, etc... save-files-to-cloud-storage = .label = Save files to { $service-name } @@ -579,7 +638,7 @@ index d276f7a..127c8e1 100644 + .tooltiptext = about:config changes, logically grouped and easily accessible + +# Main content -+librewolf-header = Librewolf Preferences ++librewolf-header = LibreWolf Preferences +librewolf-warning-title = Heads up! +librewolf-warning-description = We carefully choose default settings to focus on privacy and security. When changing these settings, read the descriptions to understand the implications of those changes. + @@ -587,6 +646,8 @@ index d276f7a..127c8e1 100644 +librewolf-general-heading = Browser Behavior +librewolf-extension-update-checkbox = + .label = Update add-ons automatically ++librewolf-sync-checkbox = ++ .label = Enable Firefox Sync +librewolf-autocopy-checkbox = + .label = Enable middle click paste +librewolf-styling-checkbox = @@ -596,11 +657,13 @@ index d276f7a..127c8e1 100644 +librewolf-ipv6-checkbox = + .label = Enable IPv6 + ++librewolf-privacy-heading = Privacy ++librewolf-xorigin-ref-checkbox = ++ .label = Limit cross-origin referrers ++ +librewolf-broken-heading = Fingerprinting +librewolf-webgl-checkbox = + .label = Enable WebGL -+librewolf-ocsp-checkbox = -+ .label = Enforce OCSP hard-fail +librewolf-rfp-checkbox = + .label = Enable ResistFingerprinting +librewolf-auto-decline-canvas-checkbox = @@ -609,6 +672,8 @@ index d276f7a..127c8e1 100644 + .label = Enable letterboxing + +librewolf-security-heading = Security ++librewolf-ocsp-checkbox = ++ .label = Enforce OCSP hard-fail +librewolf-goog-safe-checkbox = + .label = Enable Google Safe Browsing +librewolf-goog-safe-download-checkbox = @@ -621,13 +686,18 @@ index d276f7a..127c8e1 100644 +librewolf-ipv6-description = Allow { -brand-short-name } to connect using IPv6. +librewolf-ipv6-warning1 = Before you change this, make sure your OS uses the IPv6 privacy extension. +librewolf-ocsp-description = Prevent connecting to a website if the OCSP check cannot be performed. -+librewolf-ocsp-warning1 = This increases security, but it will cause breakage when a OCSP server is down. ++librewolf-ocsp-warning1 = This increases security, but it will cause breakage when an OCSP server is down. ++librewolf-sync-description = Sync your data with other browsers. Requires restart. ++librewolf-sync-warning1 = Firefox Sync encrypts data locally before transmitting it to the server. + +librewolf-autocopy-description = Select some text to copy it, then paste it with a middle-mouse click. + +librewolf-styling-description = Enable this if you want to customize the UI with a manually loaded theme. +librewolf-styling-warning1 = Make sure you trust the provider of the theme. + ++librewolf-xorigin-ref-description = Send a referrer only on same-origin. ++librewolf-xorigin-ref-warning1 = This causes breakage. Additionally, even when sent referrers will still be trimmed. ++ +librewolf-webgl-description = WebGL is a strong fingerprinting vector. +librewolf-webgl-warning1 = If you need to enable it, consider using an extension like Canvas Blocker. + @@ -650,28 +720,28 @@ index d276f7a..127c8e1 100644 +librewolf-config-link = All advanced settings (about:config) +librewolf-open-profile = Open user profile directory diff --git a/browser/themes/shared/jar.inc.mn b/browser/themes/shared/jar.inc.mn -index cf1ebf0..336118c 100644 +index 26f209ad7047..a305db88cbbd 100644 --- a/browser/themes/shared/jar.inc.mn +++ b/browser/themes/shared/jar.inc.mn -@@ -105,6 +105,7 @@ - skin/classic/browser/preferences/category-experiments.svg (../shared/preferences/category-experiments.svg) +@@ -106,6 +106,7 @@ + skin/classic/browser/preferences/android-menu.svg (../shared/preferences/android-menu.svg) skin/classic/browser/preferences/category-general.svg (../shared/preferences/category-general.svg) skin/classic/browser/preferences/category-privacy-security.svg (../shared/preferences/category-privacy-security.svg) + skin/classic/browser/preferences/category-librewolf.svg (../shared/preferences/category-librewolf.svg) skin/classic/browser/preferences/category-search.svg (../shared/preferences/category-search.svg) skin/classic/browser/preferences/category-sync.svg (../shared/preferences/category-sync.svg) - skin/classic/browser/preferences/critters-postcard.jpg (../shared/preferences/critters-postcard.jpg) -@@ -119,6 +120,7 @@ - skin/classic/browser/preferences/search-bar.svg (../shared/preferences/search-bar.svg) + skin/classic/browser/preferences/containers.css (../shared/preferences/containers.css) +@@ -128,6 +129,7 @@ + skin/classic/browser/preferences/vpn-logo.svg (../shared/preferences/vpn-logo.svg) skin/classic/browser/preferences/search.css (../shared/preferences/search.css) skin/classic/browser/preferences/siteDataSettings.css (../shared/preferences/siteDataSettings.css) + skin/classic/browser/preferences/librewolf.css (../shared/preferences/librewolf.css) - * skin/classic/browser/preferences/containers.css (../shared/preferences/containers.css) - * skin/classic/browser/preferences/containers-dialog.css (../shared/preferences/containers-dialog.css) - skin/classic/browser/upgradeDialog/highlights-24.svg (../shared/upgradeDialog/highlights-24.svg) + skin/classic/browser/upgradeDialog.css (../shared/upgradeDialog.css) + skin/classic/browser/spotlight.css (../shared/spotlight.css) + skin/classic/browser/upgradeDialog/abstract.png (../shared/upgradeDialog/abstract.png) diff --git a/browser/themes/shared/preferences/category-librewolf.svg b/browser/themes/shared/preferences/category-librewolf.svg new file mode 100644 -index 0000000..8ebf2eb +index 000000000000..8ebf2ebe19a9 --- /dev/null +++ b/browser/themes/shared/preferences/category-librewolf.svg @@ -0,0 +1,96 @@ @@ -773,7 +843,7 @@ index 0000000..8ebf2eb + diff --git a/browser/themes/shared/preferences/librewolf.css b/browser/themes/shared/preferences/librewolf.css new file mode 100644 -index 0000000..12f926a +index 000000000000..12f926ab7018 --- /dev/null +++ b/browser/themes/shared/preferences/librewolf.css @@ -0,0 +1,23 @@ @@ -800,11 +870,11 @@ index 0000000..12f926a + -moz-context-properties: fill, fill-opacity; + fill: currentColor; +} -diff --git a/browser/themes/shared/preferences/preferences.inc.css b/browser/themes/shared/preferences/preferences.inc.css -index 31bffd0..1f9fbcf 100644 ---- a/browser/themes/shared/preferences/preferences.inc.css -+++ b/browser/themes/shared/preferences/preferences.inc.css -@@ -201,6 +201,10 @@ checkbox { +diff --git a/browser/themes/shared/preferences/preferences.css b/browser/themes/shared/preferences/preferences.css +index 406dc5603070..d6920777ec81 100644 +--- a/browser/themes/shared/preferences/preferences.css ++++ b/browser/themes/shared/preferences/preferences.css +@@ -222,6 +222,10 @@ checkbox { list-style-image: url("chrome://browser/skin/preferences/category-privacy-security.svg"); } diff --git a/librewolf/debian/patches/librewolf/lw-logo-devtools.patch b/librewolf/debian/patches/librewolf/lw-logo-devtools.patch new file mode 100644 index 0000000..5362655 --- /dev/null +++ b/librewolf/debian/patches/librewolf/lw-logo-devtools.patch @@ -0,0 +1,37 @@ +--- a/devtools/client/aboutdebugging/src/actions/runtimes.js ++++ b/devtools/client/aboutdebugging/src/actions/runtimes.js +@@ -71,9 +71,7 @@ async function getRuntimeIcon(runtime, channel) { + } + } + +- return channel === "release" || channel === "beta" || channel === "aurora" +- ? `chrome://devtools/skin/images/aboutdebugging-firefox-${channel}.svg` +- : "chrome://devtools/skin/images/aboutdebugging-firefox-nightly.svg"; ++ return "chrome://devtools/skin/images/aboutdebugging-firefox-librewolf.svg"; + } + + function onRemoteDevToolsClientClosed() { +--- a/devtools/client/jar.mn ++++ b/devtools/client/jar.mn +@@ -374,6 +374,7 @@ devtools.jar: + skin/images/aboutdebugging-firefox-logo.svg (themes/images/aboutdebugging-firefox-logo.svg) + skin/images/aboutdebugging-firefox-nightly.svg (themes/images/aboutdebugging-firefox-nightly.svg) + skin/images/aboutdebugging-firefox-release.svg (themes/images/aboutdebugging-firefox-release.svg) ++ skin/images/aboutdebugging-firefox-librewolf.svg (themes/images/aboutdebugging-firefox-librewolf.svg) + skin/images/aboutdebugging-globe-icon.svg (themes/images/aboutdebugging-globe-icon.svg) + skin/images/aboutdebugging-information.svg (themes/images/aboutdebugging-information.svg) + skin/images/aboutdebugging-process-icon.svg (themes/images/aboutdebugging-process-icon.svg) +--- /dev/null ++++ b/devtools/client/themes/images/aboutdebugging-firefox-librewolf.svg +@@ -0,0 +1 @@ ++<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 67.733 67.733"><g transform="translate(-42.107 -153.898)"><circle cx="75.973" cy="187.765" r="33.867" fill="#00acff"/><path d="M72.544 214.677c-4.744-.609-9.282-2.5-13.242-5.518-1.292-.985-3.715-3.424-4.773-4.804-2.963-3.865-4.805-8.25-5.412-12.887-.26-1.984-.26-5.633.003-7.447 1.308-9.068 7.014-16.846 15.209-20.73 3.811-1.806 7.3-2.57 11.73-2.57 7.166 0 13.527 2.567 18.681 7.54 2.483 2.396 4.148 4.668 5.574 7.607 1.929 3.975 2.71 7.433 2.71 11.995 0 6.006-1.735 11.244-5.337 16.117-1.07 1.448-3.162 3.647-4.55 4.785-3.806 3.12-8.658 5.232-13.473 5.863-1.663.218-5.593.245-7.12.05zm10.041-4.865c2.898-.914 5.26-2.142 7.54-3.92 1.213-.946 3.309-3.062 4.188-4.227 2.383-3.162 4.004-7.122 4.482-10.946.23-1.842.096-5.738-.255-7.43-.93-4.48-2.932-8.265-6.086-11.503-1.966-2.02-3.757-3.35-6.06-4.505-3.495-1.752-6.49-2.46-10.424-2.464-4.164-.004-7.815.95-11.429 2.987-3.29 1.855-6.69 5.26-8.553 8.563-1.372 2.433-2.376 5.32-2.767 7.96-.257 1.73-.262 5.164-.01 6.82.504 3.316 1.76 6.592 3.584 9.34.995 1.5.964 1.484 1.842.981 1.57-.898 1.98-1.333 2.836-3.01 1-1.96 2.07-3.673 3.037-4.863 1.116-1.373 1.27-1.618 1.83-2.915.28-.652.786-1.61 1.122-2.13l.611-.942-.79-.777c-1.05-1.032-1.923-2.201-2.087-2.796-.168-.608.03-.947.818-1.402.798-.461 1.368-.593 3.5-.812 1.037-.107 2.163-.302 2.518-.437.353-.134 1.408-.708 2.344-1.276 2.703-1.639 2.932-1.723 4.552-1.688 1.369.03 1.371.029 2.183-.462 1.7-1.028 4.143-2.883 7.357-5.587.616-.519 1.21-.926 1.32-.905.454.088 1.289 2.137 1.416 3.476.077.812-.08 1.615-.562 2.873-.132.343-.192.67-.135.727.138.137.61-.453.61-.763 0-.394.262-.439.617-.106.258.242.481.312 1 .312.567 0 .708.052.93.348.375.5.463 1.866.175 2.732-.28.842-1.125 1.813-1.892 2.173-.686.323-2.075 1.68-2.726 2.662a31.64 31.64 0 00-1.037 1.742c-.321.582-.86 1.461-1.198 1.954-.664.97-1.233 2.323-1.782 4.238-.323 1.126-.35 1.419-.363 3.928-.016 3.032-.173 3.776-.993 4.71-.931 1.06-1.862 3.391-1.94 4.86-.05.928-.192 1.832-.395 2.502-.09.295.077.291 1.072-.022z" fill="#fff"/><path d="M77.062 181.654l1.222-1.565 1.966-.275-1.222 1.564z" fill="#00acff"/></g></svg> +--- a/devtools/client/themes/images/aboutdebugging-firefox-logo.svg ++++ b/devtools/client/themes/images/aboutdebugging-firefox-logo.svg +@@ -1,6 +1 @@ +-<!-- This Source Code Form is subject to the terms of the Mozilla Public +- - License, v. 2.0. If a copy of the MPL was not distributed with this +- - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"> +- <path fill="context-fill #20123a" d="M190.368 150.591c0.157 0.009 0.079 0.003 0 0zm-57.874-28.933c0.158 0.008 0.079 0.003 0 0zm346.228 44.674c-10.445-25.123-31.6-52.248-48.211-60.82 13.52 26.5 21.345 53.093 24.335 72.935 0 0.04 0.015 0.136 0.047 0.4-27.175-67.732-73.254-95.047-110.886-154.512-1.9-3.008-3.805-6.022-5.661-9.2a73.237 73.237 0 0 1-2.646-4.972 43.757 43.757 0 0 1-3.585-9.5 0.625 0.625 0 0 0-0.546-0.644 0.8 0.8 0 0 0-0.451 0c-0.033 0.011-0.084 0.051-0.119 0.065-0.053 0.02-0.12 0.069-0.176 0.095 0.026-0.036 0.083-0.117 0.1-0.135-53.437 31.3-75.587 86.093-81.282 120.97a128.057 128.057 0 0 0-47.624 12.153 6.144 6.144 0 0 0-3.041 7.63 6.034 6.034 0 0 0 8.192 3.525 116.175 116.175 0 0 1 41.481-10.826c0.468-0.033 0.937-0.062 1.405-0.1a117.624 117.624 0 0 1 5.932-0.211 120.831 120.831 0 0 1 34.491 4.777c0.654 0.192 1.295 0.414 1.946 0.616a120.15 120.15 0 0 1 5.539 1.842 121.852 121.852 0 0 1 3.992 1.564c1.074 0.434 2.148 0.868 3.206 1.331a118.453 118.453 0 0 1 4.9 2.307c0.743 0.368 1.485 0.735 2.217 1.117a120.535 120.535 0 0 1 4.675 2.587 107.785 107.785 0 0 1 2.952 1.776 123.018 123.018 0 0 1 42.028 43.477c-12.833-9.015-35.81-17.918-57.947-14.068 86.441 43.214 63.234 192.027-56.545 186.408a106.7 106.7 0 0 1-31.271-6.031 132.461 132.461 0 0 1-7.059-2.886c-1.356-0.618-2.711-1.243-4.051-1.935-29.349-15.168-53.583-43.833-56.611-78.643 0 0 11.093-41.335 79.433-41.335 7.388 0 28.508-20.614 28.9-26.593-0.09-1.953-41.917-18.59-58.223-34.656-8.714-8.585-12.851-12.723-16.514-15.829a71.7 71.7 0 0 0-6.225-4.7 111.335 111.335 0 0 1-0.675-58.733c-24.687 11.242-43.89 29.011-57.849 44.7h-0.111c-9.528-12.067-8.855-51.873-8.312-60.184-0.114-0.516-7.107 3.63-8.024 4.254a175.21 175.21 0 0 0-23.486 20.12 210.5 210.5 0 0 0-22.443 26.913c0 0.012-0.007 0.025-0.011 0.037 0-0.012 0.007-0.025 0.011-0.038a202.837 202.837 0 0 0-32.244 72.81c-0.058 0.265-2.29 10.054-3.92 22.147a265.794 265.794 0 0 0-0.769 5.651c-0.558 3.636-0.992 7.6-1.42 13.767-0.019 0.239-0.031 0.474-0.048 0.712a591.152 591.152 0 0 0-0.481 7.995c0 0.411-0.025 0.816-0.025 1.227 0 132.709 107.6 240.29 240.324 240.29 118.865 0 217.559-86.288 236.882-199.63 0.407-3.075 0.732-6.168 1.092-9.27 4.777-41.21-0.53-84.525-15.588-120.747zm-164.068 72.1z" /> +-</svg> ++<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 67.733 67.733"><path d="M33.867 0A33.867 33.867 0 000 33.867a33.867 33.867 0 0033.867 33.866 33.867 33.867 0 0033.866-33.866A33.867 33.867 0 0033.867 0zm.086 6.822c7.166 0 13.526 2.568 18.68 7.54 2.484 2.397 4.149 4.669 5.575 7.608 1.928 3.975 2.71 7.432 2.71 11.995 0 6.006-1.735 11.244-5.337 16.117-1.07 1.448-3.162 3.647-4.55 4.785-3.807 3.12-8.659 5.231-13.473 5.863-1.664.218-5.594.245-7.121.049-4.744-.609-9.282-2.5-13.242-5.519-1.291-.984-3.715-3.423-4.773-4.803C9.46 46.592 7.618 42.206 7.01 37.57c-.26-1.985-.259-5.633.003-7.447 1.308-9.068 7.014-16.845 15.209-20.73 3.811-1.806 7.3-2.57 11.731-2.57zm-.089 4.097c-4.164-.004-7.815.95-11.43 2.987-3.289 1.855-6.69 5.26-8.553 8.563-1.371 2.433-2.375 5.32-2.767 7.96-.257 1.729-.262 5.164-.01 6.82.504 3.315 1.761 6.591 3.584 9.34.995 1.5.964 1.484 1.842.981 1.571-.898 1.981-1.334 2.837-3.01 1-1.96 2.07-3.673 3.037-4.863 1.116-1.374 1.269-1.618 1.829-2.915a17.5 17.5 0 011.123-2.13l.61-.942-.79-.777c-1.05-1.032-1.923-2.202-2.087-2.797-.168-.607.03-.946.82-1.402.796-.46 1.367-.593 3.498-.812 1.037-.106 2.163-.302 2.518-.436.353-.134 1.408-.709 2.344-1.276 2.703-1.639 2.932-1.724 4.553-1.688 1.368.03 1.37.029 2.182-.462 1.701-1.028 4.144-2.883 7.358-5.587.616-.519 1.21-.926 1.319-.905.454.088 1.29 2.136 1.416 3.476.077.812-.08 1.615-.562 2.872-.131.343-.192.67-.134.728.137.137.61-.453.61-.763 0-.394.261-.44.616-.106.259.242.482.311 1 .311.568 0 .708.053.93.348.375.501.463 1.867.176 2.733-.28.842-1.125 1.812-1.892 2.173-.686.322-2.076 1.68-2.726 2.662-.249.376-.716 1.16-1.037 1.742-.322.582-.861 1.461-1.199 1.954-.664.97-1.233 2.322-1.782 4.238-.322 1.125-.35 1.418-.363 3.928-.016 3.032-.173 3.776-.992 4.71-.932 1.06-1.862 3.391-1.94 4.86-.05.928-.193 1.832-.396 2.502-.089.294.078.29 1.073-.023 2.898-.913 5.26-2.14 7.54-3.92 1.213-.945 3.308-3.06 4.187-4.226 2.383-3.162 4.005-7.122 4.482-10.947.23-1.841.097-5.738-.254-7.429-.93-4.48-2.932-8.265-6.087-11.503-1.966-2.02-3.756-3.35-6.06-4.505-3.495-1.752-6.49-2.46-10.423-2.464zm4.279 14.997l-1.966.275-1.222 1.565 1.966-.276 1.222-1.564z" fill="context-fill #00acff"/></svg> diff --git a/librewolf/debian/patches/librewolf/pref-naming.patch b/librewolf/debian/patches/librewolf/pref-naming.patch index fa6eb80..f5cb16d 100644 --- a/librewolf/debian/patches/librewolf/pref-naming.patch +++ b/librewolf/debian/patches/librewolf/pref-naming.patch @@ -1,14 +1,14 @@ --- a/browser/locales/en-US/browser/preferences/preferences.ftl +++ b/browser/locales/en-US/browser/preferences/preferences.ftl -@@ -140,7 +140,7 @@ - .accesskey = D +@@ -128,6 +128,8 @@ - startup-restore-windows-and-tabs = -- .label = Open previous windows and tabs -+ .label = Open previous windows and tabs. (requires enabling browsing history) - .accesskey = s + startup-header = Startup - startup-restore-warn-on-quit = ++session-restore-learn-more = What if it does not work? ++ + always-check-default = + .label = Always check if { -brand-short-name } is your default browser + .accesskey = y @@ -409,13 +409,13 @@ .label = Play DRM-controlled content .accesskey = P diff --git a/librewolf/debian/patches/librewolf/remap-links.patch b/librewolf/debian/patches/librewolf/remap-links.patch new file mode 100644 index 0000000..c6a6a7d --- /dev/null +++ b/librewolf/debian/patches/librewolf/remap-links.patch @@ -0,0 +1,156 @@ +--- a/browser/components/preferences/main.js ++++ b/browser/components/preferences/main.js +@@ -308,12 +308,19 @@ + "performanceSettingsLearnMore" + ); + let performanceSettingsUrl = +- Services.urlFormatter.formatURLPref("app.support.baseURL") + +- "performance"; ++ "https://support.mozilla.org/en-US/kb/performance-settings"; + performanceSettingsLink.setAttribute("href", performanceSettingsUrl); + + this.updateDefaultPerformanceSettingsPref(); + ++ let sessionRestoreLink = document.getElementById( ++ "sessionRestoreLearnMore" ++ ); ++ let sessionRestoreUrl = ++ Services.urlFormatter.formatURLPref("app.support.baseURL") + ++ "why-is-session-restore-not-working"; ++ sessionRestoreLink.setAttribute("href", sessionRestoreUrl); ++ + let defaultPerformancePref = Preferences.get( + "browser.preferences.defaultPerformanceSettings.enabled" + ); +@@ -326,8 +333,7 @@ + "connectionSettingsLearnMore" + ); + let connectionSettingsUrl = +- Services.urlFormatter.formatURLPref("app.support.baseURL") + +- "prefs-connection-settings"; ++ "https://support.mozilla.org/en-US/kb/connection-settings-firefox" + connectionSettingsLink.setAttribute("href", connectionSettingsUrl); + this.updateProxySettingsUI(); + initializeProxyUI(gMainPane); +@@ -357,8 +363,7 @@ + document.getElementById("pictureInPictureBox").hidden = false; + + let pipLearnMoreUrl = +- Services.urlFormatter.formatURLPref("app.support.baseURL") + +- "picture-in-picture"; ++ "https://support.mozilla.org/en-US/kb/turn-picture-picture-mode"; + let link = document.getElementById("pictureInPictureLearnMore"); + link.setAttribute("href", pipLearnMoreUrl); + } +@@ -509,8 +514,7 @@ + ) { + document.getElementById("mediaControlBox").hidden = false; + let mediaControlLearnMoreUrl = +- Services.urlFormatter.formatURLPref("app.support.baseURL") + +- "media-keyboard-control"; ++ "https://support.mozilla.org/en-US/kb/control-audio-or-video-playback-your-keyboard"; + let link = document.getElementById("mediaControlLearnMore"); + link.setAttribute("href", mediaControlLearnMoreUrl); + } +@@ -543,7 +547,7 @@ + + let drmInfoURL = + Services.urlFormatter.formatURLPref("app.support.baseURL") + +- "drm-content"; ++ "how-do-i-enable-drm"; + document + .getElementById("playDRMContentLink") + .setAttribute("href", drmInfoURL); +@@ -870,7 +874,8 @@ + + const link = document.getElementById("browserContainersLearnMore"); + link.href = +- Services.urlFormatter.formatURLPref("app.support.baseURL") + "containers"; ++ Services.urlFormatter.formatURLPref("app.support.baseURL") + ++ "why-isnt-first-party-isolate-enabled-by-default"; + + document.getElementById("browserContainersbox").hidden = false; + this.readBrowserContainersCheckbox(); + +--- a/browser/components/preferences/privacy.js ++++ b/browser/components/preferences/privacy.js +@@ -283,7 +283,7 @@ function setUpContentBlockingWarnings() { + let links = document.querySelectorAll(".contentBlockWarningLink"); + let contentBlockingWarningUrl = + Services.urlFormatter.formatURLPref("app.support.baseURL") + +- "turn-off-etp-desktop"; ++ "what-is-mozilla-tracking-protection"; + for (let link of links) { + link.setAttribute("href", contentBlockingWarningUrl); + } +@@ -478,7 +478,7 @@ var gPrivacyPane = { + let link = document.getElementById("httpsOnlyLearnMore"); + let httpsOnlyURL = + Services.urlFormatter.formatURLPref("app.support.baseURL") + +- "https-only-prefs"; ++ "does-librewolf-use-https-only-mode"; + link.setAttribute("href", httpsOnlyURL); + + // Set radio-value based on the pref value +@@ -644,7 +644,7 @@ var gPrivacyPane = { + ); + const breachAlertsLearnMoreUrl = + Services.urlFormatter.formatURLPref("app.support.baseURL") + +- "lockwise-alerts"; ++ "why-is-the-built-in-password-manager-disabled"; + breachAlertsLearnMoreLink.setAttribute("href", breachAlertsLearnMoreUrl); + + this._initSafeBrowsing(); +@@ -751,11 +751,12 @@ var gPrivacyPane = { + ); + let url = + Services.urlFormatter.formatURLPref("app.support.baseURL") + +- "storage-permissions"; ++ "how-do-i-stay-logged-into-specific-websites"; + document.getElementById("siteDataLearnMoreLink").setAttribute("href", url); + + let notificationInfoURL = +- Services.urlFormatter.formatURLPref("app.support.baseURL") + "push"; ++ Services.urlFormatter.formatURLPref("app.support.baseURL") + ++ "how-do-i-enable-push-notifications"; + document + .getElementById("notificationPermissionsLearnMore") + .setAttribute("href", notificationInfoURL); +@@ -924,7 +925,7 @@ var gPrivacyPane = { + let link = document.getElementById("contentBlockingLearnMore"); + let contentBlockingUrl = + Services.urlFormatter.formatURLPref("app.support.baseURL") + +- "enhanced-tracking-protection"; ++ "what-is-mozilla-tracking-protection"; + link.setAttribute("href", contentBlockingUrl); + + // Toggles the text "Cross-site and social media trackers" based on the +@@ -2276,7 +2277,7 @@ var gPrivacyPane = { + let learnMoreLink = document.getElementById("primaryPasswordLearnMoreLink"); + let learnMoreURL = + Services.urlFormatter.formatURLPref("app.support.baseURL") + +- "primary-password-stored-logins"; ++ "why-is-the-built-in-password-manager-disabled"; + learnMoreLink.setAttribute("href", learnMoreURL); + }, + +@@ -2474,7 +2475,7 @@ var gPrivacyPane = { + let learnMoreLink = document.getElementById("enableSafeBrowsingLearnMore"); + let phishingUrl = + Services.urlFormatter.formatURLPref("app.support.baseURL") + +- "phishing-malware"; ++ "why-do-you-disable-google-safe-browsing"; + learnMoreLink.setAttribute("href", phishingUrl); + + enableSafeBrowsing.addEventListener("command", function() { +--- a/toolkit/mozapps/extensions/content/aboutaddons.js ++++ b/toolkit/mozapps/extensions/content/aboutaddons.js +@@ -1997,7 +1997,7 @@ class SidebarFooter extends HTMLElement + icon: "chrome://global/skin/icons/help.svg", + createLinkElement: () => { + let link = document.createElement("a", { is: "support-link" }); +- link.setAttribute("support-page", "addons-help"); ++ link.setAttribute("support-page", "do-you-recommend-using-any-extensions"); + link.id = "help-button"; + return link; + }, diff --git a/librewolf/debian/patches/librewolf/remove_addons.patch.orig b/librewolf/debian/patches/librewolf/remove_addons.patch.orig new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/librewolf/debian/patches/librewolf/remove_addons.patch.orig diff --git a/librewolf/debian/patches/librewolf/remove_addons.patch.rej b/librewolf/debian/patches/librewolf/remove_addons.patch.rej new file mode 100644 index 0000000..f8f82a8 --- /dev/null +++ b/librewolf/debian/patches/librewolf/remove_addons.patch.rej @@ -0,0 +1,12 @@ +--- patches/remove_addons.patch ++++ patches/remove_addons.patch +@@ -12,8 +12,8 @@ + "webcompat", + - "report-site-issue", + "pictureinpicture", +- "proxy-failover", + "search-detection", ++ ] + diff --git a/browser/locales/Makefile.in b/browser/locales/Makefile.in + index 496379c..dd6f359 100644 + --- a/browser/locales/Makefile.in diff --git a/librewolf/debian/patches/librewolf/stop-undesired-requests.patch b/librewolf/debian/patches/librewolf/stop-undesired-requests.patch index 57bb966..63974d8 100644 --- a/librewolf/debian/patches/librewolf/stop-undesired-requests.patch +++ b/librewolf/debian/patches/librewolf/stop-undesired-requests.patch @@ -1,44 +1,44 @@ diff --git a/browser/components/newtab/data/content/activity-stream.bundle.js b/browser/components/newtab/data/content/activity-stream.bundle.js -index 92f0652aec..696a99f7ef 100644 +index d5a3f10..b5efa81 100644 --- a/browser/components/newtab/data/content/activity-stream.bundle.js +++ b/browser/components/newtab/data/content/activity-stream.bundle.js -@@ -1841,7 +1841,7 @@ class ASRouterAdminInner extends react__WEBPACK_IMPORTED_MODULE_3___default.a.Pu - label = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement("span", null, "remote settings (", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement("a", { +@@ -1577,7 +1577,7 @@ class ASRouterAdminInner extends (external_React_default()).PureComponent { + label = /*#__PURE__*/external_React_default().createElement("span", null, "remote settings (", /*#__PURE__*/external_React_default().createElement("a", { className: "providerUrl", target: "_blank", - href: "https://firefox.settings.services.mozilla.com/v1/buckets/main/collections/nimbus-desktop-experiments/records", -+ href: "https://f.s.s.m.c.qjz9zk/v1/buckets/main/collections/nimbus-desktop-experiments/records", ++ href: "https://%.invalid", rel: "noopener noreferrer" }, "nimbus-desktop-experiments"), ")"); } diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js -index c7cde8917c..b398a22064 100644 +index 261e46f..22f8214 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js -@@ -2243,7 +2243,7 @@ pref("security.cert_pinning.hpkp.enabled", false); +@@ -2181,7 +2181,7 @@ pref("security.insecure_field_warning.ignore_local_ip_address", true); + // Remote settings preferences - // Note: if you change this, make sure to also review security.onecrl.maximum_staleness_in_seconds pref("services.settings.poll_interval", 86400); // 24H -pref("services.settings.server", "https://firefox.settings.services.mozilla.com/v1"); -+pref("services.settings.server", "https://f.s.s.m.c.qjz9zk/v1"); ++pref("services.settings.server", "https://%.invalid"); pref("services.settings.default_bucket", "main"); // The percentage of clients who will report uptake telemetry as diff --git a/services/settings/Utils.jsm b/services/settings/Utils.jsm -index 66df850904..1538a2ff0d 100644 +index 2ce9e87..cd132a3 100644 --- a/services/settings/Utils.jsm +++ b/services/settings/Utils.jsm -@@ -64,7 +64,7 @@ - !Cu.isInAutomation && - !isXpcshell && - isNotThunderbird -- ? "https://firefox.settings.services.mozilla.com/v1" -+ ? "https://f.s.s.m.c.qjz9zk/v1" - : gServerURL; +@@ -89,7 +89,7 @@ var Utils = { + get SERVER_URL() { + return allowServerURLOverride + ? gServerURL +- : "https://firefox.settings.services.mozilla.com/v1"; ++ : "https://%.invalid"; }, - + + CHANGES_PATH: "/buckets/monitor/collections/changes/changeset", diff --git a/toolkit/components/search/SearchUtils.jsm b/toolkit/components/search/SearchUtils.jsm -index 8a3c6acb84..7408b3fd2f 100644 +index 983d567..5fb6ae7 100644 --- a/toolkit/components/search/SearchUtils.jsm +++ b/toolkit/components/search/SearchUtils.jsm @@ -159,9 +159,9 @@ var SearchUtils = { @@ -46,10 +46,10 @@ index 8a3c6acb84..7408b3fd2f 100644 ENGINES_URLS: { "prod-main": - "https://firefox.settings.services.mozilla.com/v1/buckets/main/collections/search-config/records", -+ "https://f.s.s.m.c.qjz9zk/v1/buckets/main/collections/search-config/records", ++ "https://%.invalid", "prod-preview": - "https://firefox.settings.services.mozilla.com/v1/buckets/main-preview/collections/search-config/records", -+ "https://f.s.s.m.c.qjz9zk/v1/buckets/main-preview/collections/search-config/records", ++ "https://%.invalid", "stage-main": "https://settings.stage.mozaws.net/v1/buckets/main/collections/search-config/records", "stage-preview": diff --git a/librewolf/debian/patches/librewolf/website-appearance-ui-rfp.patch b/librewolf/debian/patches/librewolf/website-appearance-ui-rfp.patch new file mode 100644 index 0000000..0de5504 --- /dev/null +++ b/librewolf/debian/patches/librewolf/website-appearance-ui-rfp.patch @@ -0,0 +1,52 @@ +--- a/browser/components/preferences/main.js ++++ b/browser/components/preferences/main.js +@@ -3737,6 +3737,7 @@ const AppearanceChooser = { + FORCED_COLORS_QUERY.addEventListener("change", this); + SYSTEM_DARK_MODE_QUERY.addEventListener("change", this); + Services.prefs.addObserver(PREF_USE_SYSTEM_COLORS, this); ++ Services.prefs.addObserver("privacy.resistFingerprinting", this); + Services.obs.addObserver(this, "look-and-feel-changed"); + this._update(); + }, +@@ -3756,6 +3757,7 @@ const AppearanceChooser = { + + destroy() { + Services.prefs.removeObserver(PREF_USE_SYSTEM_COLORS, this); ++ Services.prefs.removeObserver("privacy.resistFingerprinting", this); + Services.obs.removeObserver(this, "look-and-feel-changed"); + FORCED_COLORS_QUERY.removeEventListener("change", this); + SYSTEM_DARK_MODE_QUERY.removeEventListener("change", this); +@@ -3798,5 +3800,33 @@ const AppearanceChooser = { + (AppConstants.platform == "win" || + !Services.prefs.getBoolPref(PREF_USE_SYSTEM_COLORS)); + this.warning.hidden = !forcingColorsAndNoColorSchemeSupport; ++ ++ if (Services.prefs.getBoolPref("privacy.resistFingerprinting")) { ++ document.getElementById("web-appearance-chooser").style.opacity = 0.3; ++ document.getElementById("web-appearance-chooser").style.pointerEvents = "none"; ++ const infoBox = document.createElement("div"); ++ infoBox.id = "web-appearance-rfp-warning"; ++ infoBox.classList.add("info-box-container"); ++ infoBox.style.display = "flex"; ++ infoBox.style.alignItems = "center"; ++ infoBox.style.marginTop = "10px"; ++ infoBox.style.marginBottom = "5px"; ++ const text = document.createElement("div"); ++ text.innerText = "This feature is disabled because ResistFingerprinting is enabled. This means LibreWolf will force web content to display in a light theme."; ++ infoBox.appendChild(text); ++ const learnMore = document.createElement("a"); ++ learnMore.classList.add("text-link"); ++ learnMore.style.marginLeft = "5px"; ++ learnMore.style.flexShrink = 0; ++ learnMore.setAttribute("is", "learn-more"); ++ learnMore.href = "https://librewolf.net/docs/faq/#why-is-librewolf-forcing-light-theme"; ++ learnMore.innerText = "Learn more"; ++ infoBox.appendChild(learnMore); ++ document.getElementById("webAppearanceSettings").insertBefore(infoBox, document.getElementById("webAppearanceSettings").children[2]); ++ } else { ++ document.getElementById("web-appearance-rfp-warning")?.remove(); ++ document.getElementById("web-appearance-chooser").style.opacity = 1; ++ document.getElementById("web-appearance-chooser").style.pointerEvents = "all"; ++ } + }, + }; diff --git a/librewolf/debian/patches/porting/NSS-Fix-FTBFS-on-Hurd-because-of-MAXPATHLEN.patch b/librewolf/debian/patches/porting/NSS-Fix-FTBFS-on-Hurd-because-of-MAXPATHLEN.patch index a543693..cb04ca2 100644 --- a/librewolf/debian/patches/porting/NSS-Fix-FTBFS-on-Hurd-because-of-MAXPATHLEN.patch +++ b/librewolf/debian/patches/porting/NSS-Fix-FTBFS-on-Hurd-because-of-MAXPATHLEN.patch @@ -47,7 +47,7 @@ index ad8f3b8..c33f2c9 100644 link_buf[ret] = 0; link_file = mkoutput(input_file); diff --git a/security/nss/lib/freebl/unix_rand.c b/security/nss/lib/freebl/unix_rand.c -index 24381cb..f5520f0 100644 +index 24381cb2..f5520f0 100644 --- a/security/nss/lib/freebl/unix_rand.c +++ b/security/nss/lib/freebl/unix_rand.c @@ -843,6 +843,10 @@ RNG_FileForRNG(const char *fileName) diff --git a/librewolf/debian/patches/prefs/Don-t-auto-disable-extensions-in-system-directories.patch b/librewolf/debian/patches/prefs/Don-t-auto-disable-extensions-in-system-directories.patch index 8f7af65..1eed20c 100644 --- a/librewolf/debian/patches/prefs/Don-t-auto-disable-extensions-in-system-directories.patch +++ b/librewolf/debian/patches/prefs/Don-t-auto-disable-extensions-in-system-directories.patch @@ -7,7 +7,7 @@ Subject: Don't auto-disable extensions in system directories 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js -index 33a2ff3..a284d0a 100644 +index 76b495e..b75b41b 100644 --- a/browser/app/profile/firefox.js +++ b/browser/app/profile/firefox.js @@ -56,7 +56,7 @@ pref("extensions.systemAddon.update.enabled", true); diff --git a/librewolf/debian/patches/prefs/Set-DPI-to-system-settings.patch b/librewolf/debian/patches/prefs/Set-DPI-to-system-settings.patch index 348a17f..4547c93 100644 --- a/librewolf/debian/patches/prefs/Set-DPI-to-system-settings.patch +++ b/librewolf/debian/patches/prefs/Set-DPI-to-system-settings.patch @@ -3,19 +3,19 @@ Date: Thu, 13 Mar 2008 20:30:19 +0100 Subject: Set DPI to system settings --- - modules/libpref/init/all.js | 2 +- + modules/libpref/init/StaticPrefList.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js -index 37dd370..75d3866 100644 ---- a/modules/libpref/init/all.js -+++ b/modules/libpref/init/all.js -@@ -2355,7 +2355,7 @@ pref("bidi.browser.ui", false); - // A value of 0 means use the system DPI. A positive value is used as the DPI. - // This sets the physical size of a device pixel and thus controls the - // interpretation of physical units such as "pt". --pref("layout.css.dpi", -1); -+pref("layout.css.dpi", 0); +diff --git a/modules/libpref/init/StaticPrefList.yaml b/modules/libpref/init/StaticPrefList.yaml +index 8947a47..7fc7210 100644 +--- a/modules/libpref/init/StaticPrefList.yaml ++++ b/modules/libpref/init/StaticPrefList.yaml +@@ -7259,7 +7259,7 @@ + # interpretation of physical units such as "pt". + - name: layout.css.dpi + type: int32_t +- value: -1 ++ value: 0 + mirror: always - // pref for which side vertical scrollbars should be on - // 0 = end-side in UI direction + # Whether non-standard caption-side values are enabled diff --git a/librewolf/debian/patches/series b/librewolf/debian/patches/series index 3041795..723f2b0 100644 --- a/librewolf/debian/patches/series +++ b/librewolf/debian/patches/series @@ -1,6 +1,5 @@ fixes/Allow-.js-preference-files-to-set-locked-prefs-with-.patch fixes/Bug-1738845-Add-webrtc-configs-for-arm-and-ppc64-lin.patch -fixes/Bug-1756347-part-1-Work-around-a-GCC-issue-with-gene.patch porting/Add-xptcall-support-for-SH4-processors.patch porting/NSS-Fix-FTBFS-on-Hurd-because-of-MAXPATHLEN.patch porting/Use-NEON_FLAGS-instead-of-VPX_ASFLAGS-for-libaom-neo.patch @@ -19,24 +18,30 @@ debian-hacks/Use-build-id-as-langpack-version-for-reproducibility.patch debian-hacks/Allow-to-build-with-older-versions-of-nodejs-10.patch debian-hacks/Fix-math_private.h-for-i386-FTBFS.patch debian-hacks/Relax-MSRV-to-1.56.0.patch +librewolf/aboutLogos.patch -p1 librewolf/allow-ubo-private-mode.patch -p1 -librewolf/bootstrap-without-vcs2.patch -p1 +librewolf/bootstrap-without-vcs.patch -p1 librewolf/context-menu.patch -p1 librewolf/custom-ubo-assets-bootstrap-location.patch -p1 librewolf/disable-data-reporting-at-compile-time.patch -p1 -#librewolf/librewolf-pref-pane.patch -p1 +librewolf/hide-passwordmgr.patch -p1 +librewolf/librewolf-pref-pane.patch -p1 librewolf/mozilla_dirs.patch -p1 librewolf/remove_addons.patch -p1 librewolf/allow-searchengines-non-esr.patch -p1 librewolf/disable-pocket.patch -p1 librewolf/remove-internal-plugin-certs.patch -p1 librewolf/stop-undesired-requests.patch -p1 +librewolf/handlers.patch -p1 librewolf/hide-default-browser.patch -p1 +librewolf/lw-logo-devtools.patch -p1 librewolf/pref-naming.patch -p1 librewolf/privacy-preferences.patch -p1 +librewolf/remap-links.patch -p1 librewolf/remove-branding-urlbar.patch -p1 librewolf/remove-cfrprefs.patch -p1 librewolf/remove-organization-policy-banner.patch -p1 librewolf/remove-snippets-from-home.patch -p1 librewolf/sanitizing-description.patch -p1 +librewolf/website-appearance-ui-rfp.patch -p1 librewolf/urlbarprovider-interventions.patch -p1 diff --git a/librewolf/debian/rules b/librewolf/debian/rules index 43ac8e7..7e353e7 100755 --- a/librewolf/debian/rules +++ b/librewolf/debian/rules @@ -350,7 +350,7 @@ override_dh_update_autotools_config: install binary binary-arch binary-indep: $(filter-out %.pc,$(GENERATED_FILES)) binary binary-arch binary-indep build build-arch build-indep clean install: - chmod +x debian/dh + chmod +x debian/dh || : debian/dh $@ .PHONY: build clean binary-indep binary-arch binary install diff --git a/librewolf/debian/source/include-binaries b/librewolf/debian/source/include-binaries index 1a5e238..d07b477 100644 --- a/librewolf/debian/source/include-binaries +++ b/librewolf/debian/source/include-binaries @@ -1 +1,4 @@ debian/uBlock0@raymondhill.net.xpi +debian/uBlock0@raymondhill.net.xpi +debian/uBlock0@raymondhill.net.xpi +debian/uBlock0@raymondhill.net.xpi diff --git a/librewolf/debian/uBlock0@raymondhill.net.xpi b/librewolf/debian/uBlock0@raymondhill.net.xpi Binary files differindex 92abd2e..b7ea471 100644 --- a/librewolf/debian/uBlock0@raymondhill.net.xpi +++ b/librewolf/debian/uBlock0@raymondhill.net.xpi diff --git a/librewolf/stackrpms-librewolf-100.0.2.diff b/librewolf/stackrpms-librewolf-100.0.2.diff new file mode 100644 index 0000000..d043678 --- /dev/null +++ b/librewolf/stackrpms-librewolf-100.0.2.diff @@ -0,0 +1,441 @@ +diff -aur debian-100.0.2/browser.install.in debian/browser.install.in +--- debian-100.0.2/browser.install.in 2022-05-23 12:23:09.290974291 -0400 ++++ debian/browser.install.in 2022-05-25 15:20:55.425269242 -0400 +@@ -54,8 +54,6 @@ + debian/@browser@.js etc/@browser@ + debian/vendor.js usr/share/@browser@/browser/defaults/preferences + +-debian/debsearch.xml usr/share/@browser@/distribution/searchplugins/common +- + usr/lib/@browser@/browser/features usr/lib/@browser@/browser + + %if browser != librewolf +@@ -81,3 +79,4 @@ + debian/librewolf_settings/defaults/pref/local-settings.js usr/share/@browser@/defaults/pref + debian/librewolf_settings/distribution/policies.json usr/share/@browser@/distribution + debian/uBlock0@raymondhill.net.xpi usr/lib/@browser@/browser/extensions ++debian/bgstack15-librewolf-prefs.js usr/lib/@browser@/defaults/pref +diff -aur debian-100.0.2/browser.mozconfig.in debian/browser.mozconfig.in +--- debian-100.0.2/browser.mozconfig.in 2022-05-23 12:22:16.690309553 -0400 ++++ debian/browser.mozconfig.in 2022-05-25 16:14:28.121458850 -0400 +@@ -67,3 +67,6 @@ + #export RANLIB=llvm-ranlib-11 + + ac_add_options --enable-optimize ++# Stackrpms style ++ac_add_options --disable-dbus ++ac_add_options --disable-necko-wifi +diff -aur debian-100.0.2/changelog debian/changelog +--- debian-100.0.2/changelog 2022-05-23 12:23:10.202985769 -0400 ++++ debian/changelog 2022-05-25 16:15:25.318174365 -0400 +@@ -1,3 +1,9 @@ ++librewolf (100.0.2-1+stackrpms) obs; urgency=low ++ ++ * Custom build for myself ++ ++ -- B. Stack <bgstack15@gmail.com> Wed, 25 May 2022 16:16:08 -0400 ++ + librewolf (100.0.2-1) unstable; urgency=low + + * Fork to librewolf release +diff -aur debian-100.0.2/control.in debian/control.in +--- debian-100.0.2/control.in 2022-05-20 18:31:05.000000000 -0400 ++++ debian/control.in 2022-05-25 16:16:24.986920802 -0400 +@@ -1,8 +1,8 @@ + Source: @browser@ + Section: web + Priority: optional +-Maintainer: Maintainers of Mozilla-related packages <team+pkg-mozilla@tracker.debian.org> +-Uploaders: Mike Hommey <glandium@debian.org> ++Maintainer: B. Stack <bgstack15@gmail.com> ++XSBC-Original-Maintainer: Maintainers of Mozilla-related packages <team+pkg-mozilla@tracker.debian.org> + Build-Depends: autotools-dev, + debhelper (>= 9.20160114), + libx11-dev, +diff -aur debian-100.0.2/rules debian/rules +--- debian-100.0.2/rules 2022-05-23 12:23:07.818955764 -0400 ++++ debian/rules 2022-05-25 16:18:45.712681219 -0400 +@@ -324,7 +324,7 @@ + dh_install -p$($(PRODUCT))-l10n-$(call lc,$*) build-l10n/$*/dist/xpi/langpack-$*@$($(PRODUCT)).mozilla.org.xpi $(LIB_DIR)/browser/extensions/ + + stamps/dh_install:: debian/noinstall debian/$($(PRODUCT))-symbolic.svg +- awk '{print "debian/tmp/" $$1 }' < debian/noinstall | xargs rm -r ++ awk '{print "debian/tmp/" $$1 }' < debian/noinstall | xargs rm -rf + dh_install --fail-missing + + override_dh_install-arch: stamps/dh_install +@@ -350,6 +350,7 @@ + install binary binary-arch binary-indep: $(filter-out %.pc,$(GENERATED_FILES)) + + binary binary-arch binary-indep build build-arch build-indep clean install: ++ chmod +x debian/dh || : + debian/dh $@ + + .PHONY: build clean binary-indep binary-arch binary install +diff -aur debian-100.0.2/search-config.json debian/search-config.json +--- debian-100.0.2/search-config.json 2022-03-22 19:01:35.319801989 -0400 ++++ debian/search-config.json 2022-05-25 16:19:26.365189777 -0400 +@@ -14,363 +14,6 @@ + }, + "id": "c0b26c0e-63e6-4235-b2ce-5f16b6a8bf87", + "last_modified": 1619450717295 +- }, +- { +- "schema": 1613245306902, +- "appliesTo": [ +- { +- "included": { +- "everywhere": true +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "af", +- "an", +- "ar", +- "ast", +- "az", +- "bg", +- "br", +- "bs", +- "cy", +- "da", +- "de", +- "dsb", +- "el", +- "eo", +- "et", +- "eu", +- "fa", +- "fi", +- "fy-NL", +- "ga-IE", +- "gd", +- "gl", +- "gn", +- "he", +- "hr", +- "hsb", +- "hu", +- "ia", +- "id", +- "is", +- "it", +- "ka", +- "kab", +- "kk", +- "km", +- "kn", +- "lij", +- "lo", +- "lt", +- "ltg", +- "lv", +- "mk", +- "mr", +- "ms", +- "my", +- "nl", +- "oc", +- "pl", +- "rm", +- "ro", +- "ru", +- "si", +- "sk", +- "sl", +- "sq", +- "sr", +- "sv-SE", +- "ta", +- "te", +- "th", +- "tl", +- "tr", +- "uk", +- "ur", +- "uz", +- "vi", +- "wo", +- "zh-CN", +- "zh-TW" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "$USER_LOCALE" +- ] +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "be" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "be", +- "be-tarask" +- ] +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "bn", +- "bn-BD", +- "bn-IN" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "bn" +- ] +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "ca", +- "ca-valencia" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "ca" +- ] +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "cak", +- "es-AR", +- "es-CL", +- "es-ES", +- "es-MX", +- "trs" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "es" +- ] +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "cs" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "cz" +- ] +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "ff", +- "fr", +- "son" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "fr" +- ] +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "gu-IN" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "gu" +- ] +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "hi-IN" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "hi" +- ] +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "hy-AM" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "hy" +- ] +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "ja-JP-macos", +- "ja" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "ja" +- ] +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "ko" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "kr" +- ] +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "nb-NO" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "NO" +- ] +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "ne-NP" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "ne" +- ] +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "nn-NO" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "NN" +- ] +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "pa-IN" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "pa" +- ] +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "pt-BR", +- "pt-PT" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "pt" +- ] +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "szl" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "pl" +- ] +- } +- }, +- { +- "override": true, +- "orderHint": 1000, +- "application": { +- "distributions": [ +- "MozillaOnline" +- ] +- } +- } +- ], +- "webExtension": { +- "id": "wikipedia@search.mozilla.org" +- }, +- "id": "3f3beb1d-e32e-40a4-b6ed-56741803e1d8", +- "last_modified": 1613587855064 + } + ] + } diff --git a/librewolf/stackrpms-librewolf-98.0.diff b/librewolf/stackrpms-librewolf-98.0.diff new file mode 100644 index 0000000..8e4f426 --- /dev/null +++ b/librewolf/stackrpms-librewolf-98.0.diff @@ -0,0 +1,486 @@ +Only in b/debian: bgstack15-librewolf-prefs.js +diff -aur a/debian/browser.install.in b/debian/browser.install.in +--- a/debian/browser.install.in 2022-03-22 19:01:42.655881841 -0400 ++++ b/debian/browser.install.in 2022-03-30 13:53:52.787381108 -0400 +@@ -54,8 +54,6 @@ + debian/@browser@.js etc/@browser@ + debian/vendor.js usr/share/@browser@/browser/defaults/preferences + +-debian/debsearch.xml usr/share/@browser@/distribution/searchplugins/common +- + usr/lib/@browser@/browser/features usr/lib/@browser@/browser + + %if browser != librewolf +@@ -81,3 +79,5 @@ + debian/librewolf_settings/@browser@.cfg usr/share/@browser@ + debian/librewolf_settings/defaults/pref/local-settings.js usr/share/@browser@/defaults/pref + debian/librewolf_settings/distribution/policies.json usr/share/@browser@/distribution ++debian/bgstack15-librewolf-prefs.js usr/lib/@browser@/defaults/pref ++debian/uBlock0@raymondhill.net.xpi usr/lib/@browser@/browser/extensions +diff -aur a/debian/browser.mozconfig.in b/debian/browser.mozconfig.in +--- a/debian/browser.mozconfig.in 2022-03-22 19:01:39.063842741 -0400 ++++ b/debian/browser.mozconfig.in 2022-03-30 13:54:31.235767027 -0400 +@@ -67,3 +67,8 @@ + #export RANLIB=llvm-ranlib-11 + + ac_add_options --enable-optimize ++# Devuan style ++ac_add_options --disable-dbus ++ac_add_options --disable-pulseaudio ++ac_add_options --enable-alsa ++ac_add_options --disable-necko-wifi +diff -aur a/debian/changelog b/debian/changelog +--- a/debian/changelog 2022-03-22 19:01:42.663881928 -0400 ++++ b/debian/changelog 2022-03-30 13:55:07.196127966 -0400 +@@ -1,3 +1,9 @@ ++librewolf (98.0-2+stackrpms) obs; urgency=low ++ ++ * Fork to librewolf release ++ ++ -- B. Stack <bgstack15@gmail.com> Wed, 30 Mar 2022 13:55:33 -0400 ++ + librewolf (98.0-2) unstable; urgency=low + + * Fork to librewolf release +diff -aur a/debian/control b/debian/control +--- a/debian/control 2022-03-22 19:01:39.047842566 -0400 ++++ b/debian/control 2022-03-30 13:55:43.352490872 -0400 +@@ -23,7 +23,6 @@ + libdbus-glib-1-dev, + libffi-dev, + libevent-dev, +- libpulse-dev, + libasound2-dev, libjack-dev, + yasm, + nasm (>= 2.14) [amd64 i386], +@@ -64,9 +63,8 @@ + fonts-lmodern, + libgssapi-krb5-2 | libkrb53, + libcanberra0, +- pulseaudio + Provides: www-browser, + gnome-www-browser +-Description: LibreWolf variant of Mozilla Firefox web browser ++Description: LibreWolf for Stackrpms + LibreWolf is a build of Firefox that seeks to protect user privacy, + security, and freedom. +diff -aur a/debian/control.in b/debian/control.in +--- a/debian/control.in 2022-03-09 19:09:13.000000000 -0500 ++++ b/debian/control.in 2022-03-30 13:56:14.368802189 -0400 +@@ -1,8 +1,8 @@ + Source: @browser@ + Section: web + Priority: optional +-Maintainer: Maintainers of Mozilla-related packages <team+pkg-mozilla@tracker.debian.org> +-Uploaders: Mike Hommey <glandium@debian.org> ++Maintainer: B. Stack <bgstack15@gmail.com> ++XSBC-Original-Maintainer: Maintainers of Mozilla-related packages <team+pkg-mozilla@tracker.debian.org> + Build-Depends: autotools-dev, + debhelper (>= 9.20160114), + libx11-dev, +@@ -37,7 +37,6 @@ + %if USE_SYSTEM_LIBEVENT + libevent-dev, + %endif +- libpulse-dev, + libasound2-dev, + yasm, + %if DIST == stretch +@@ -107,7 +106,6 @@ + fonts-lmodern, + libgssapi-krb5-2 | libkrb53, + libcanberra0, +- pulseaudio + %if TRANSITION + Conflicts: iceweasel (<< 45) + %endif +Only in b/debian: librewolf.dsc +diff -aur a/debian/rules b/debian/rules +--- a/debian/rules 2022-03-22 19:01:42.651881797 -0400 ++++ b/debian/rules 2022-03-30 13:58:27.738261424 -0400 +@@ -324,7 +324,7 @@ + dh_install -p$($(PRODUCT))-l10n-$(call lc,$*) build-l10n/$*/dist/xpi/langpack-$*@$($(PRODUCT)).mozilla.org.xpi $(LIB_DIR)/browser/extensions/ + + stamps/dh_install:: debian/noinstall debian/$($(PRODUCT))-symbolic.svg +- awk '{print "debian/tmp/" $$1 }' < debian/noinstall | xargs rm -r ++ awk '{print "debian/tmp/" $$1 }' < debian/noinstall | xargs rm -rf + dh_install --fail-missing + + override_dh_install-arch: stamps/dh_install +@@ -350,6 +350,7 @@ + install binary binary-arch binary-indep: $(filter-out %.pc,$(GENERATED_FILES)) + + binary binary-arch binary-indep build build-arch build-indep clean install: ++ chmod +x debian/dh + debian/dh $@ + + .PHONY: build clean binary-indep binary-arch binary install +diff -aur a/debian/search-config.json b/debian/search-config.json +--- a/debian/search-config.json 2022-03-22 19:01:35.319801989 -0400 ++++ b/debian/search-config.json 2022-03-30 13:59:13.310718665 -0400 +@@ -14,363 +14,6 @@ + }, + "id": "c0b26c0e-63e6-4235-b2ce-5f16b6a8bf87", + "last_modified": 1619450717295 +- }, +- { +- "schema": 1613245306902, +- "appliesTo": [ +- { +- "included": { +- "everywhere": true +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "af", +- "an", +- "ar", +- "ast", +- "az", +- "bg", +- "br", +- "bs", +- "cy", +- "da", +- "de", +- "dsb", +- "el", +- "eo", +- "et", +- "eu", +- "fa", +- "fi", +- "fy-NL", +- "ga-IE", +- "gd", +- "gl", +- "gn", +- "he", +- "hr", +- "hsb", +- "hu", +- "ia", +- "id", +- "is", +- "it", +- "ka", +- "kab", +- "kk", +- "km", +- "kn", +- "lij", +- "lo", +- "lt", +- "ltg", +- "lv", +- "mk", +- "mr", +- "ms", +- "my", +- "nl", +- "oc", +- "pl", +- "rm", +- "ro", +- "ru", +- "si", +- "sk", +- "sl", +- "sq", +- "sr", +- "sv-SE", +- "ta", +- "te", +- "th", +- "tl", +- "tr", +- "uk", +- "ur", +- "uz", +- "vi", +- "wo", +- "zh-CN", +- "zh-TW" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "$USER_LOCALE" +- ] +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "be" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "be", +- "be-tarask" +- ] +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "bn", +- "bn-BD", +- "bn-IN" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "bn" +- ] +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "ca", +- "ca-valencia" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "ca" +- ] +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "cak", +- "es-AR", +- "es-CL", +- "es-ES", +- "es-MX", +- "trs" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "es" +- ] +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "cs" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "cz" +- ] +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "ff", +- "fr", +- "son" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "fr" +- ] +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "gu-IN" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "gu" +- ] +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "hi-IN" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "hi" +- ] +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "hy-AM" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "hy" +- ] +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "ja-JP-macos", +- "ja" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "ja" +- ] +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "ko" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "kr" +- ] +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "nb-NO" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "NO" +- ] +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "ne-NP" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "ne" +- ] +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "nn-NO" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "NN" +- ] +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "pa-IN" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "pa" +- ] +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "pt-BR", +- "pt-PT" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "pt" +- ] +- } +- }, +- { +- "included": { +- "locales": { +- "matches": [ +- "szl" +- ] +- } +- }, +- "webExtension": { +- "locales": [ +- "pl" +- ] +- } +- }, +- { +- "override": true, +- "orderHint": 1000, +- "application": { +- "distributions": [ +- "MozillaOnline" +- ] +- } +- } +- ], +- "webExtension": { +- "id": "wikipedia@search.mozilla.org" +- }, +- "id": "3f3beb1d-e32e-40a4-b6ed-56741803e1d8", +- "last_modified": 1613587855064 + } + ] + } +Only in b/debian/source: include-binaries +Only in b/debian: uBlock0@raymondhill.net.xpi diff --git a/newmoon/debian/changelog b/newmoon/debian/changelog index c421410..59054dc 100644 --- a/newmoon/debian/changelog +++ b/newmoon/debian/changelog @@ -1,3 +1,57 @@ +newmoon (31.0.0-1) obs; urgency=medium + + * Major milestone release: + - Once again accepts the installation of legacy Firefox extensions alongside + own Pale Moon exclusive extensions. As always, please note that using + extensions for an old version of a different browser is entirely at your + own risk and we obviously cannot and will not provide much (if any) + support for their use. Firefox extensions will be indicated with an + orange dot in the Add-ons Manager in the browser. This will include the + converted extensions for the few of you who are coming from recalled + versions with -fxguid suffixes. + - Implemented Global Privacy Control, taking the place of the unenforceable + "DNT" (Do Not Track) signal. Through GPC, you indicate to websites that + you do not want them to share or sell your data. + - Implemented "optional chaining" (thanks, FranklinDM!). + - Implemented setBaseAndExtent for text selections. + - Implemented queueMicroTask() "pseudo-promise" callbacks. + - Implemented accepting unit-less values for rootMargin in Intersection + observers for web compatibility, making it act more like CSS margin as one + would expect. + - Improvements to CSS grid and flexbox rendering and display following spec + changes and improving web compatibility. + - Improved performance of parallel web workers in JavaScript. + - Improved display of cursive scripts (on Windows). Good-bye Comic Sans! + - Updated various in-tree libraries. + - "Default browser" controls in preferences has been moved to "General". + - Added support for extended VPx codec strings in media delivery via + MSE (RFC-6381). + - Fixed a long-time regression where the browser would no longer honor + old-style body and iframe body margins when indicated in the HTML tags + directly instead of CSS. This improves compatibility with particularly old and/or archived websites. + - Fixed several crashes and stability issues. + - Added a licensing screen to the Windows installer to clarify the browser's + licensing. In other installations, you may find this licensing statement + in the added license.txt file in the browser installation location. + - Removed all Google SafeBrowsing/URLClassifier service code. + - Restored Mac OS X code and buildability in the platform. + - Removed the non-standard ArchiveReader DOM API that was only ever a + prototype implementation from the platform. This potentially improves + performance on some systems. + - Removed leftover Electrolysis controls that could sometimes trick parts of + the browser into starting in a (very broken) multi-process mode due to + some plumbing for it still being present, if users would try to force the + issue with preferences. Obviously, this was a footgun for power users. + - Removed more Android/Fennec code (on-going effort to clean up our code). + - Removed the Marionette automated testing framework. + - Security issues addressed: CVE-2022-29915, CVE-2022-29911, and several + issues that do not have a CVE number. + - UXP Mozilla security patch summary: 4 fixed, 1 DiD, 19 not applicable. + + * Disable all patches. + + -- B. Stack <bgstack15@gmail.com> Sun, 22 May 2022 11:04:46 -0400 + newmoon (29.4.4-1+devuan) obs; urgency=medium - This is a security update. diff --git a/newmoon/debian/control b/newmoon/debian/control index 29a09a3..4e55668 100644 --- a/newmoon/debian/control +++ b/newmoon/debian/control @@ -11,7 +11,6 @@ Build-Depends: debhelper (>= 12), libdbus-glib-1-dev (>= 0.60), libgconf2-dev (>= 1.2.1), libgtk2.0-dev (>= 2.14), - libssl-dev, libx11-xcb-dev, libxt-dev, mesa-common-dev, @@ -21,6 +20,7 @@ Build-Depends: debhelper (>= 12), yasm (>= 1.1), zip, # libffi-dev, +# libssl-dev, # libpixman-1-dev | libpixman-dev, # libbz2-dev, # zlib1g-dev, @@ -34,8 +34,9 @@ Homepage: http://www.palemoon.org/ Package: newmoon Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, - libavcodec54 | libavcodec-extra54 | libavcodec55 | libavcodec-extra55 | libavcodec56 | libavcodec-extra56 | libavcodec57 | libavcodec-extra57 | libavcodec58 | libavcodec-extra58 | libavcodec-ffmpeg56 | libavcodec-ffmpeg-extra56 +Depends: libavcodec54 | libavcodec-extra54 | libavcodec55 | libavcodec-extra55 | libavcodec56 | libavcodec-extra56 | libavcodec57 | libavcodec-extra57 | libavcodec58 | libavcodec-extra58 | libavcodec-ffmpeg56 | libavcodec-ffmpeg-extra56, + ${shlibs:Depends}, + ${misc:Depends} Provides: gnome-www-browser, www-browser, x-www-browser Conflicts: palemoon-nonsse2 Replaces: palemoon-nonsse2 diff --git a/newmoon/debian/mozconfig b/newmoon/debian/mozconfig index 47cd6ec..4e7c1e5 100644 --- a/newmoon/debian/mozconfig +++ b/newmoon/debian/mozconfig @@ -3,18 +3,20 @@ export BUILDING_RELEASE=1 export MC_OFFICIAL=1 export MOZILLA_OFFICIAL=1 export MC_PALEMOON=1 +export MOZ_NOSPAM=1 +# If you want to control where the built objects go #mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/pmbuild ac_add_options --enable-application=palemoon ac_add_options --disable-official-branding ac_add_options --enable-official-vendor -# Disable add-ons signing -# Disable checking that add-ons are signed by the trusted root -MOZ_ADDON_SIGNING= -# Disable enforcing that add-ons are signed by the trusted root -MOZ_REQUIRE_SIGNING= +## Disable add-ons signing +## Disable checking that add-ons are signed by the trusted root +#MOZ_ADDON_SIGNING= +## Disable enforcing that add-ons are signed by the trusted root +#MOZ_REQUIRE_SIGNING= # Standard # Enables @@ -26,24 +28,29 @@ ac_add_options --enable-devtools ac_add_options --enable-jemalloc ac_add_options --with-pthreads ac_add_options --enable-strip -#ac_add_options --enable-phoenix-extensions + # Disables +# disable-debug-symbols removes the ability to do a stack trace. I do not do any stack traces anyways. ?f=5&t=28254 +ac_add_options --disable-debug-symbols +ac_add_options --disable-debug ac_add_options --disable-debug ac_add_options --disable-eme ac_add_options --disable-gamepad ac_add_options --disable-necko-wifi ac_add_options --disable-tests ac_add_options --disable-updater -# unfortunately newmoon does not have the client-side bits for webrtc so enabling it does nothing, per upstream -#ac_add_options --enable-webrtc -# Disable temeletry -export MOZ_TELEMETRY_REPORTING= ac_add_options --disable-crashreporter ac_add_options --disable-parental-controls ac_add_options --disable-accessibility +ac_add_options --disable-webrtc + +# Disable temeletry +export MOZ_TELEMETRY_REPORTING= # Debian style ac_add_options --prefix=/usr +# primarily for 32-bit but tolerated for 64-bit +ac_add_options --x-libraries=/usr/lib # Devuan style ac_add_options --disable-dbus ac_add_options --disable-pulseaudio @@ -65,9 +72,6 @@ ac_add_options --disable-personas #ac_add_options --with-system-hunspell #ac_add_options --with-system-extension-dirs -# primarily for 32-bit but tolerated for 64-bit -ac_add_options --x-libraries=/usr/lib - # limit to 4 cpus to limit memory usage (approximately 0.75 GiB RAM/thread) # Debian Sid/Devuan Ceres; 2020-07 only -j1 works due to a bug. mk_add_options MOZ_MAKE_FLAGS="-j1" diff --git a/newmoon/debian/newmoon+devuan.dsc b/newmoon/debian/newmoon+devuan.dsc index 53f3d03..a72960c 100644 --- a/newmoon/debian/newmoon+devuan.dsc +++ b/newmoon/debian/newmoon+devuan.dsc @@ -2,11 +2,11 @@ Format: 3.0 (quilt) Source: newmoon Binary: newmoon Architecture: any -Version: 29.4.3-1+devuan +Version: 31.0.0-1+devuan Maintainer: B. Stack <bgstack15@gmail.com> Homepage: http://www.palemoon.org/ Standards-Version: 4.1.4 -Build-Depends: debhelper (>= 12), gcc (<< 11) | gcc-10, g++ (<< 11) | g++-10, autoconf2.13, libasound2-dev, libdbus-glib-1-dev (>= 0.60), libgconf2-dev (>= 1.2.1), libgtk2.0-dev (>= 2.14), libssl-dev, libx11-xcb-dev, libxt-dev, mesa-common-dev, pkg-config, python2 (>= 2.7.18-2~) | python (>= 2.7), unzip, yasm (>= 1.1), zip +Build-Depends: debhelper (>= 12), gcc (<< 11) | gcc-10, g++ (<< 11) | g++-10, autoconf2.13, libasound2-dev, libdbus-glib-1-dev (>= 0.60), libgconf2-dev (>= 1.2.1), libgtk2.0-dev (>= 2.14), libx11-xcb-dev, libxt-dev, mesa-common-dev, pkg-config, python2 (>= 2.7.18-2~) | python (>= 2.7), unzip, yasm (>= 1.1), zip Package-List: newmoon deb web optional arch=any Files: diff --git a/newmoon/debian/patches/revert-mach-file.patch b/newmoon/debian/patches/revert-mach-file.patch deleted file mode 100644 index cda3786..0000000 --- a/newmoon/debian/patches/revert-mach-file.patch +++ /dev/null @@ -1,71 +0,0 @@ -Description: revert mach file to 29.4.2's to fix FTBFS -Last-Update: 2021-11-12 - ---- palemoon-29.4.2.1.orig/mach -+++ palemoon-29.4.2.1/mach -@@ -1,63 +1,4 @@ - #!/bin/sh - --MCP_MACH=./platform/mach --MCP_GIT=`which git 2>/dev/null` -- --if [ ! -f "$MCP_MACH" ]; then -- printf "Error: There is no platform codebase.\n" -- exit 1 --fi -- --MCP_APP=palemoon --MCP_VERSION=`cat ./$MCP_APP/config/version.txt` -- --MCP_XZ=`which xz 2>/dev/null` --MCP_TAR_BASEDIR="s/^./$MCP_APP-source/" --MCP_TAR_FILENAME="$MCP_APP-$MCP_VERSION.source.tar.xz" --MCP_TAR_COMMAND="tar cfJv ../$MCP_TAR_FILENAME . --transform $MCP_TAR_BASEDIR --exclude-vcs --warning=no-file-changed" --MCP_TAR_EXCLUDES=( -- "$MCP_APP/branding/beta" -- "$MCP_APP/branding/unstable" -- "platform/db/mork" -- "platform/docs" -- "platform/ldap" -- "platform/libs/gmp-clearkey" -- "platform/mailnews" -- "platform/python/psutil/*.so" -- "platform/python/psutil/*.pyd" -- "platform/python/psutil/build" -- "platform/xulrunner" -- ".mozconfig" -- ".gitattributes" -- ".gitignore" -- ".gitmodules" -- "*.pyc" -- "*.pyo" -- "*.rej" -- "*.orig" -- "*.source.tar.xz" --) -- --if [ "$1" == "source" ]; then -- if [ -z "$MCP_XZ" ]; then -- printf "Error: XZ was not found on the system. NOTE: This won't work on Windows.\n" -- exit 1 -- fi -- -- for _value in "${MCP_TAR_EXCLUDES[@]}"; do -- MCP_TAR_COMMAND+=" --exclude=${_value}" -- done -- -- if [[ -n "$MCP_GIT" && -d "./.git" && -d "./platform/.git" ]]; then -- printf "COMM SHA1: `"${MCP_GIT}" rev-parse --short HEAD 2>/dev/null`\n" -- printf "GRE SHA1: `cd ./platform && "${MCP_GIT}" rev-parse --short HEAD 2>/dev/null`\n" -- fi -- -- printf "Source Filename: $MCP_TAR_FILENAME\n\n" -- read -r -s -p $'Press enter to continue...\n' -- env XZ_OPTS=-9e ${MCP_TAR_COMMAND} --else -- # We don't know what the command is but real-mach might so just pass -- # all the args to it -- $MCP_MACH $@ --fi -+MACH_CMD=./platform/mach -+$MACH_CMD $@ diff --git a/newmoon/debian/patches/series b/newmoon/debian/patches/series index fd4cf3c..85f30b8 100644 --- a/newmoon/debian/patches/series +++ b/newmoon/debian/patches/series @@ -1,5 +1,5 @@ # from stevepusser for 29.4.3: -revert-mach-file.patch +#revert-mach-file.patch # stackrpms small-icons.patch pm-devuan.patch diff --git a/newmoon/newmoon-mozconfig b/newmoon/newmoon-mozconfig index 39c9feb..feb1e68 100644 --- a/newmoon/newmoon-mozconfig +++ b/newmoon/newmoon-mozconfig @@ -13,20 +13,20 @@ export BUILDING_RELEASE=1 export MC_OFFICIAL=1 export MOZILLA_OFFICIAL=1 export MC_PALEMOON=1 +export MOZ_NOSPAM=1 -# Disable add-ons signing -# Disable checking that add-ons are signed by the trusted root -MOZ_ADDON_SIGNING= -# Disable enforcing that add-ons are signed by the trusted root -MOZ_REQUIRE_SIGNING= +# Disabled for testing, v31.0.0 +## Disable add-ons signing +## Disable checking that add-ons are signed by the trusted root +#MOZ_ADDON_SIGNING= +## Disable enforcing that add-ons are signed by the trusted root +#MOZ_REQUIRE_SIGNING= ac_add_options --enable-default-toolkit=cairo-gtk2 ac_add_options --enable-jemalloc ac_add_options --enable-av1 -#ac_add_options --enable-shared-js ac_add_options --enable-strip ac_add_options --with-pthreads -#ac_add_options --enable-phoenix-extensions ac_add_options --disable-tests ac_add_options --disable-debug diff --git a/newmoon/newmoon.spec b/newmoon/newmoon.spec index 7bd8079..f2e6d48 100644 --- a/newmoon/newmoon.spec +++ b/newmoon/newmoon.spec @@ -4,10 +4,10 @@ %global stackrpms_custom 1 # derive from inside the source tree or from https://repo.palemoon.org/MoonchildProductions/Pale-Moon/releases # git submodule | awk -v "name=platform" '$2 == name {gsub("-","",$1); print $1}' -#%%global submodule_platform_tag RELBASE_20210817 +%global submodule_platform_tag RB_20220510 %global badname palemoon %global git_commit db5ee3c1968212742b4ed8b9883069ea7b03f0e1 -%global tarballdir %{badname}-%{git_commit} +%global tarballdir pale-moon # additional repos to get python27 and devtoolset-7 # for el6 and el7: Software Collection;, for x86_64 only @@ -32,7 +32,7 @@ %define scl_buildreq devtoolset-7-toolchain %endif -# suppress binary strippping on el6 which fails for some reason +# suppress binary stripping on el6 which fails for some reason %if 0%{?el6} %global __os_install_post %{nil} %endif @@ -44,26 +44,24 @@ Name: newmoon Name: newmoon %endif Summary: Newmoon web browser -Version: 29.4.4 +Version: 31.0.0 Release: 1 Group: Networking/Web License: MPLv2.0 URL: http://linux.palemoon.org/ -#Source0: https://repo.palemoon.org/MoonChildProductions/Pale-Moon/archive/%%{version}_Release.tar.gz -Source0: https://gitlab.com/opensource-tracking/palemoon/-/archive/%{git_commit}/palemoon-%{git_commit}.tar.gz -#Source1: https://repo.palemoon.org/MoonchildProductions/UXP/archive/%%{submodule_platform_tag}.tar.gz +Source0: https://repo.palemoon.org/MoonChildProductions/Pale-Moon/archive/%{version}_Release.tar.gz +#Source0: https://gitlab.com/opensource-tracking/palemoon/-/archive/%%{git_commit}/palemoon-%%{git_commit}.tar.gz +Source1: https://repo.palemoon.org/MoonchildProductions/UXP/archive/%{submodule_platform_tag}.tar.gz Source2: newmoon-mozconfig Source3: newmoon.desktop Source4: newmoon-mimeinfo.xml %if 0%{stackrpms_custom} Source5: bgstack15-newmoon-prefs.js Source6: bluemoon-icons.tgz -Source7: nm-gcc-11.patch Patch0: small-icons.patch Patch1: pm-fedora.patch Patch2: pm-to-nm.patch -Patch3: revert-mach-file.patch %endif Packager: B. Stack <bgstack15@gmail.com> @@ -115,7 +113,7 @@ and themes to make the browser truly your own. %prep %setup -q -n %{tarballdir} -#tar -C platform --strip-components=1 -zxf %%{SOURCE1} # git submodule +tar -C platform --strip-components=1 -zxf %{SOURCE1} # git submodule %{__cp} %{SOURCE2} ./.mozconfig %if 0%{?fedora} >= 30 sed -i -r -e '/enable-optimize/s/"\s*$/ -Wno-format-overflow"/' ./.mozconfig @@ -125,14 +123,6 @@ sed -i -r -e '/enable-optimize/s/"\s*$/ -Wno-format-overflow"/' ./.mozconfig %patch0 -p1 %patch1 -p1 %patch2 -p1 -%patch3 -p1 -__gccver="$( gcc --version 2>&1 | grep -oE '[0-9]*\.[0-9]\.[0-9]'| head -n1 | grep -oE '^[0-9]+' )" -if test "${__gccver}" == "11" ; then - # For gcc 11 - cd platform - patch -p1 < %{SOURCE7} - cd .. -fi ! test -d %{badname}/branding/unofficial.unbuilt && { cp -pr %{badname}/branding/unofficial %{badname}/branding/unofficial.unbuilt && \ @@ -310,6 +300,10 @@ update-mime-database -n ${_datadir}/mime 1>/dev/null 2>&1 & : %doc AUTHORS LICENSE %changelog +* Sun May 22 2022 B. Stack <bgstack15@gmail.com> - 30.0.0-1 +- update version +- remove revert-mach-file patch + * Thu Jan 20 2022 B. Stack <bgstack15@gmail.com> - 29.4.4-1 - update version diff --git a/newmoon/revert-mach-file.patch b/newmoon/revert-mach-file.patch deleted file mode 100644 index cda3786..0000000 --- a/newmoon/revert-mach-file.patch +++ /dev/null @@ -1,71 +0,0 @@ -Description: revert mach file to 29.4.2's to fix FTBFS -Last-Update: 2021-11-12 - ---- palemoon-29.4.2.1.orig/mach -+++ palemoon-29.4.2.1/mach -@@ -1,63 +1,4 @@ - #!/bin/sh - --MCP_MACH=./platform/mach --MCP_GIT=`which git 2>/dev/null` -- --if [ ! -f "$MCP_MACH" ]; then -- printf "Error: There is no platform codebase.\n" -- exit 1 --fi -- --MCP_APP=palemoon --MCP_VERSION=`cat ./$MCP_APP/config/version.txt` -- --MCP_XZ=`which xz 2>/dev/null` --MCP_TAR_BASEDIR="s/^./$MCP_APP-source/" --MCP_TAR_FILENAME="$MCP_APP-$MCP_VERSION.source.tar.xz" --MCP_TAR_COMMAND="tar cfJv ../$MCP_TAR_FILENAME . --transform $MCP_TAR_BASEDIR --exclude-vcs --warning=no-file-changed" --MCP_TAR_EXCLUDES=( -- "$MCP_APP/branding/beta" -- "$MCP_APP/branding/unstable" -- "platform/db/mork" -- "platform/docs" -- "platform/ldap" -- "platform/libs/gmp-clearkey" -- "platform/mailnews" -- "platform/python/psutil/*.so" -- "platform/python/psutil/*.pyd" -- "platform/python/psutil/build" -- "platform/xulrunner" -- ".mozconfig" -- ".gitattributes" -- ".gitignore" -- ".gitmodules" -- "*.pyc" -- "*.pyo" -- "*.rej" -- "*.orig" -- "*.source.tar.xz" --) -- --if [ "$1" == "source" ]; then -- if [ -z "$MCP_XZ" ]; then -- printf "Error: XZ was not found on the system. NOTE: This won't work on Windows.\n" -- exit 1 -- fi -- -- for _value in "${MCP_TAR_EXCLUDES[@]}"; do -- MCP_TAR_COMMAND+=" --exclude=${_value}" -- done -- -- if [[ -n "$MCP_GIT" && -d "./.git" && -d "./platform/.git" ]]; then -- printf "COMM SHA1: `"${MCP_GIT}" rev-parse --short HEAD 2>/dev/null`\n" -- printf "GRE SHA1: `cd ./platform && "${MCP_GIT}" rev-parse --short HEAD 2>/dev/null`\n" -- fi -- -- printf "Source Filename: $MCP_TAR_FILENAME\n\n" -- read -r -s -p $'Press enter to continue...\n' -- env XZ_OPTS=-9e ${MCP_TAR_COMMAND} --else -- # We don't know what the command is but real-mach might so just pass -- # all the args to it -- $MCP_MACH $@ --fi -+MACH_CMD=./platform/mach -+$MACH_CMD $@ diff --git a/notepadpp/debian/changelog b/notepadpp/debian/changelog index 211bc9a..6ddf0a8 100644 --- a/notepadpp/debian/changelog +++ b/notepadpp/debian/changelog @@ -1,3 +1,67 @@ +notepadpp (8.4.1-1+devuan) obs; urgency=medium + + * Regression fixes, bug-fixes, and new enhancements: + * Fix HTML syntax highlighting in PHP files regression. (Fix #11585, + #11602) + * Fix "Reload from disk" loosing syntax highlighting regression. (Fix + #11606) + * Fix unfocused selected text background color changed regression. (Fix + #11595) + * Update Scintilla from 5.2.1 to 5.2.2 and Lexilla from 5.1.5 to 5.1.6. + (Implement #11537) + * Fix multi-part keyword in prefix mode freezes Notepad++ in UDL. (Fix + #11434) + * Add several dark mode enhancement. (Fix #11574, #11622, #10054, + #11546, #11544) + * Add DarkMode usage detection support for plugins. (Implement #11546) + * Add "Framed current line" option beside of "Highlight current line + background". (Implement #11501) + * Add file monitoring command line argument [-monitor]. (Implement + #10562) + * File Dialog enhancement. (Fix #11630, #11517) + * Add a new format argument/option "ADD_ZERO_PADDING" to + NPPM_GETNPPVERSION. (Implement #11535) + * Restore auto-completion & calltip default fg/bg colors when no theme + is applied. (Fix #11637) + * Sort "Search result" to the bottom in language list of Style + Configurator. (Fix #11337) + + -- B. Stack <bgstack15@gmail.com> Wed, 01 Jun 2022 10:47:01 -0400 + +notepadpp (8.4-1+devuan) UNRELEASED; urgency=medium + + * New features, enhancements, and bug-fixes: + * Update Scintilla from v4.4.6 to v5.2.1 and add Lexilla v5.1.5. (Fix + #10504) + * Enhance dark mode support (Shortcut Mapper, autocompletion, calltip, + Column Editor and Style configurator, Preferences dialog, etc...) (Fix + #11530, #11522, #11407, #11514, #11506, #11497) + * Fix lossing characters issue after case-conversion (UPPER/lower). + (Fix #11463) + * Fix "Sort Lines as Integer" not considering negative number issue. + (Fix #11023, #2025) + * Sort languages alphabetically automatically in Style Configurator. + (Fix #11337) + * Fix flashing box (autocompletion empty list) appears while typing + issue. (Fix #9433) + * Scrolling Document List automatically to make the selected tab item + visible. (Fix #11204) + * Make Find in Files search result line number aligned. (Fix #11119) + * Add default A-Z sorting ability in Function list. (Fix #11446) + * Add virtual space ability. (Fix #11443, #11444) + * Fix document being wronly marked as saved bug after converting its + encoding. (Fix #11436) + * Fix Document list not sync with tab order after sorting. (Fix #11272) + * Fix file saving critical bug under Symantec encryption desktop. (Fix + #11339) + * Fix cropped text in Shortcut mapper's status area issue. (Fix #10358) + * Enhance installer: Remember the chosen language in the previous + installation. (Implement #10582) + * Improve Find/Replace Dialog layout. (Fix #11318) + * Update NSIS & Inno Setup keyword lists. + + -- B. Stack <bgstack15@gmail.com> Wed, 01 Jun 2022 10:46:17 -0400 + notepadpp (8.3.3-1+devuan) obs; urgency=medium * Regression-fix, bug-fixes and enhancement: diff --git a/scite-fedora/0007-Build-with-Debian-packaged-Lua.patch b/scite-fedora/0007-Build-with-Debian-packaged-Lua.patch new file mode 100644 index 0000000..d6e2b79 --- /dev/null +++ b/scite-fedora/0007-Build-with-Debian-packaged-Lua.patch @@ -0,0 +1,80 @@ +Author: <gusnan@debian.org> +Modified-By: bgstack15 +Target: Fedora scite 5.2.3 +Date: Tue, 19 Jun 2018 15:34:57 +0200 +Subject: Slight modification to patch "Build with Debian packaged Lua" from Debian +Date-modified: 2022-05-31 + +--- + scite/gtk/deps.mak | 6 +----- + scite/gtk/makefile | 30 ++++-------------------------- + 2 files changed, 5 insertions(+), 31 deletions(-) + +--- a/scite/gtk/deps.mak ++++ b/scite/gtk/deps.mak +@@ -265,11 +265,7 @@ + ../src/Extender.h \ + ../src/IFaceTable.h \ + ../src/SciTEKeys.h \ +- ../src/LuaExtension.h \ +- ../lua/src/lua.h \ +- ../lua/src/luaconf.h \ +- ../lua/src/lualib.h \ +- ../lua/src/lauxlib.h ++ ../src/LuaExtension.h + MatchMarker.o: \ + ../src/MatchMarker.cxx \ + ../../scintilla/include/ScintillaTypes.h \ +--- a/scite/gtk/makefile ++++ b/scite/gtk/makefile +@@ -33,9 +33,9 @@ + + PYTHON = $(if $(windir),pyw,python3) + +-# For the Gnome desktop stuff to work, prefix must point to where Gnome thinks it is. +-CONFIGFLAGS:=$(shell $(PKG_CONFIG) --cflags $(GTK_VERSION)) +-CONFIGLIB:=$(shell $(PKG_CONFIG) --libs $(GTK_VERSION) gthread-2.0 gmodule-no-export-2.0) ++# For the Lua and Gnome desktop stuff to work, prefix must point to where Lua and Gnome thinks it is. ++CONFIGFLAGS:=$(shell $(PKG_CONFIG) --cflags $(GTK_VERSION)) $(shell $(PKG_CONFIG) --cflags lua) ++CONFIGLIB:=$(shell $(PKG_CONFIG) --libs $(GTK_VERSION) gthread-2.0 gmodule-no-export-2.0) $(shell $(PKG_CONFIG) --libs lua) + gnomeprefix:=$(shell $(PKG_CONFIG) --variable=prefix $(GTK_VERSION) 2>/dev/null) + ifndef prefix + ifdef gnomeprefix +@@ -72,28 +72,6 @@ + DEFINES += -D$(if $(DEBUG),DEBUG,NDEBUG) + BASE_FLAGS += $(if $(DEBUG),-g,-Os) + +-ifndef NO_LUA +-LUA_CORE_OBJS = lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o \ +- lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o \ +- ltable.o ltm.o lundump.o lvm.o lzio.o +- +-LUA_LIB_OBJS = lauxlib.o lbaselib.o lbitlib.o lcorolib.o ldblib.o liolib.o lmathlib.o ltablib.o \ +- lstrlib.o loadlib.o loslib.o linit.o lutf8lib.o +- +-LUA_OBJS = LuaExtension.o $(LUA_CORE_OBJS) $(LUA_LIB_OBJS) +- +-vpath %.c $(srcdir)/../lua/src +- +-INCLUDES += -I$(srcdir)/../lua/src +-LUA_DEFINES = -DLUA_USE_POSIX -DLUA_USE_DLOPEN +- +-%.o: %.c +- $(CC) $(CPPFLAGS) $(DEFINES) $(INCLUDES) $(WARNINGS) $(LUA_DEFINES) $(BASE_FLAGS) $(CFLAGS) -c $< -o $@ +- +-else +-DEFINES += -DNO_LUA +-endif +- + LIBS += -lm -lstdc++ + + UNAME:=$(shell uname -s) +@@ -154,7 +132,7 @@ + StyleWriter.o \ + Utf8_16.o + +-$(PROG): SciTEGTK.o Strips.o GUIGTK.o Widget.o DirectorExtension.o $(SRC_OBJS) $(LUA_OBJS) ++$(PROG): SciTEGTK.o Strips.o GUIGTK.o Widget.o DirectorExtension.o $(SRC_OBJS) LuaExtension.o + $(CXX) $(BASE_FLAGS) $(LDFLAGS) -rdynamic -Wl,--as-needed -Wl,-rpath,'$${ORIGIN}' -Wl,--version-script $(srcdir)/lua.vers -Wl,-rpath,$(libdir) $^ -o $@ $(CONFIGLIB) $(LIBS) -L ../../scintilla/bin -lscintilla $(LDLIBS) + + # Automatically generate header dependencies with "make depend" diff --git a/scite-fedora/README.md b/scite-fedora/README.md index 766ff41..a095bba 100644 --- a/scite-fedora/README.md +++ b/scite-fedora/README.md @@ -11,9 +11,9 @@ Distro | scite version ------------ | --------------- CentOS 6 | 3.7.6 CentOS 7 | 3.7.6 -CentOS 8 | 5.2.2 -Fedora 34 | 5.2.2 -Devuan Ceres | 5.2.2 +CentOS 8 | 5.2.3 +Fedora 35 | 5.2.3 +Devuan Ceres | 5.2.3 # References void linux [scite](https://github.com/void-linux/void-packages/blob/master/srcpkgs/scite/template) package guided me at version 5.0.1. @@ -21,10 +21,11 @@ void linux [scite](https://github.com/void-linux/void-packages/blob/master/srcpk # Differences ## From upstream for Fedora See file [stackrpms-scite.spec.diff](stackrpms-scite.spec.diff) +Customized SciTEGlobal.properties, to use my settings and also my custom lua script. ## Between scite-fedora and scite-el Run file [fc-el-scite-diff.sh](fc-el-scite-diff.sh). scite-fedora/fc-el-scite-diff.sh | vi - ## From upstream for Devuan - +Customized SciTEGlobal.properties, to use my settings and also my custom lua script. diff --git a/scite-fedora/scite.spec b/scite-fedora/scite.spec index 1cc96e7..1507fa1 100644 --- a/scite-fedora/scite.spec +++ b/scite-fedora/scite.spec @@ -1,6 +1,6 @@ # Tunables # el7 is on 3.x, el8/fc is on 5.x -%global pkgversion 5.2.2 +%global pkgversion 5.2.3 # Use lua %define with_lua 1 # Use bundled lua. If 0, then use distro lua @@ -54,6 +54,7 @@ Source2: SciTEGlobal.properties Patch0: scite-utf8.patch %if 0%{with_lua} && !0%{with_bundled_lua} Patch2: use-lua5.4.4.patch +Patch3: 0007-Build-with-Debian-packaged-Lua.patch %endif BuildRequires: desktop-file-utils @@ -87,6 +88,7 @@ rm -rf scite/lua # Use distro lua rm -rf scite/lua %patch2 -p1 +%patch3 -p1 %endif %endif @@ -147,6 +149,10 @@ install -D -p -m 666 %{SOURCE2} %{buildroot}%{_datadir}/scite/SciTEGlobal.proper %{_libdir}/* %changelog +* Tue May 31 2022 B. Stack <bgstack15@gmail.com> - 5.2.3-1/3.7.6-1 +- Update version +- split back out patch build-with-debian-packaged-lua + * Mon Apr 04 2022 B. Stack <bgstack15@gmail.com> - 5.2.2-2/3.7.6-1 - Update version - Add tunables: gtk, lua, bundled lua, add stackrpms.lua diff --git a/scite-fedora/use-lua5.4.4.patch b/scite-fedora/use-lua5.4.4.patch index d4c2903..382df1a 100644 --- a/scite-fedora/use-lua5.4.4.patch +++ b/scite-fedora/use-lua5.4.4.patch @@ -1,9 +1,11 @@ -Name: Patch scite to use distro package of lua -Version: 5.2.2 -Lua Version: 5.4.4 +Name: Patch scite to use distro package of lua, Devuan +Version: 5.2.3 +Lua-Version: 5.4.4 Author: bgstack15@gmail.com -Date: 2022-04-04 -Includes almost exactly the debian 0007-Build-with-Debian-packaged-Lua.patch +Date-Modified: 2022-05-31 +Message: Generated with the following command + + sed -r -e 's/checkint\(/checkinteger\(/g;' -e 's/lua_strlen\(/lua_rawlen\(/g;' scite/src/LuaExtension.cxx > ~/LuaExtension.cxx.new diff -aur scite/gtk/deps.mak scite/gtk/deps.mak --- a/scite/gtk/deps.mak 2022-03-30 20:48:24.000000000 -0400 +++ b/scite/gtk/deps.mak 2022-04-04 14:47:39.110529717 -0400 @@ -24,61 +26,61 @@ diff -aur scite/gtk/deps.mak scite/gtk/deps.mak diff -aur scite/src/LuaExtension.cxx scite/src/LuaExtension.cxx --- a/scite/src/LuaExtension.cxx 2022-03-30 20:48:24.000000000 -0400 +++ b/scite/src/LuaExtension.cxx 2022-04-04 14:46:35.097978533 -0400 -@@ -237,7 +237,7 @@ +@@ -238,7 +238,7 @@ - const int paneIndex = lua_upvalueindex(1); + constexpr int paneIndex = lua_upvalueindex(1); check_pane_object(L, paneIndex); - const int message = luaL_checkint(L, 1); + const int message = luaL_checkinteger(L, 1); lua_pushvalue(L, paneIndex); lua_replace(L, 1); -@@ -276,7 +276,7 @@ +@@ -277,7 +277,7 @@ } - static int cf_scite_constname(lua_State *L) { + int cf_scite_constname(lua_State *L) { - const int message = luaL_checkint(L, 1); + const int message = luaL_checkinteger(L, 1); const char *prefix = luaL_optstring(L, 2, nullptr); const std::string constName = IFaceTable::GetConstantName(message, prefix); if (constName.length() > 0) { -@@ -307,7 +307,7 @@ +@@ -308,7 +308,7 @@ } - static int cf_scite_menu_command(lua_State *L) { + int cf_scite_menu_command(lua_State *L) { - const int cmdID = luaL_checkint(L, 1); + const int cmdID = luaL_checkinteger(L, 1); if (cmdID) { host->DoMenuCommand(cmdID); } -@@ -329,7 +329,7 @@ +@@ -330,7 +330,7 @@ } - static int cf_scite_strip_set(lua_State *L) { + int cf_scite_strip_set(lua_State *L) { - const int control = luaL_checkint(L, 1); + const int control = luaL_checkinteger(L, 1); const char *value = luaL_checkstring(L, 2); if (value) { host->UserStripSet(control, value); -@@ -338,7 +338,7 @@ +@@ -339,7 +339,7 @@ } - static int cf_scite_strip_set_list(lua_State *L) { + int cf_scite_strip_set_list(lua_State *L) { - const int control = luaL_checkint(L, 1); + const int control = luaL_checkinteger(L, 1); const char *value = luaL_checkstring(L, 2); if (value) { host->UserStripSetList(control, value); -@@ -347,7 +347,7 @@ +@@ -348,7 +348,7 @@ } - static int cf_scite_strip_value(lua_State *L) { + int cf_scite_strip_value(lua_State *L) { - const int control = luaL_checkint(L, 1); + const int control = luaL_checkinteger(L, 1); std::string value = host->UserStripValue(control); push_string(L, value); return 1; -@@ -437,7 +437,7 @@ +@@ -438,7 +438,7 @@ SA::Position rangeStart = 0; SA::Position rangeEnd = 0; @@ -87,7 +89,7 @@ diff -aur scite/src/LuaExtension.cxx scite/src/LuaExtension.cxx hasError = (flags == 0 && lua_gettop(L) > nArgs); if (!hasError) { -@@ -514,7 +514,7 @@ +@@ -515,7 +515,7 @@ SA::ScintillaCall &sc = host->PaneCaller(pmo->pane); sc.SetTarget(pmo->range); @@ -96,7 +98,7 @@ diff -aur scite/src/LuaExtension.cxx scite/src/LuaExtension.cxx pmo->range.end = sc.TargetEnd(); return 0; } -@@ -600,7 +600,7 @@ +@@ -601,7 +601,7 @@ pmo->endPosOrig = 0; pmo->flags = 0; if (nargs >= 3) { @@ -105,7 +107,7 @@ diff -aur scite/src/LuaExtension.cxx scite/src/LuaExtension.cxx if (nargs >= 4) { pmo->range.end = pmo->endPosOrig = luaL_checkinteger(L, 4); if (pmo->range.end < 0) { -@@ -765,7 +765,7 @@ +@@ -766,7 +766,7 @@ const int nargs = lua_gettop(L); const char *code = luaL_checkstring(L, 1); const char *name = luaL_optstring(L, 2, code); @@ -114,7 +116,7 @@ diff -aur scite/src/LuaExtension.cxx scite/src/LuaExtension.cxx lua_call(L, 0, LUA_MULTRET); return lua_gettop(L) - nargs; } else { -@@ -896,7 +896,7 @@ +@@ -897,7 +897,7 @@ int loopParamCount = 2; if (func.paramType[0] == iface_length && func.paramType[1] == iface_string) { @@ -123,18 +125,18 @@ diff -aur scite/src/LuaExtension.cxx scite/src/LuaExtension.cxx params[1] = SptrFromString(params[0] ? lua_tostring(L, arg) : ""); loopParamCount = 0; } else if ((func.paramType[1] == iface_stringresult) || (func.returnType == iface_stringresult)) { -@@ -915,8 +915,8 @@ +@@ -916,8 +916,8 @@ const char *s = lua_tostring(L, arg++); params[i] = SptrFromString(s ? s : ""); } else if (func.paramType[i] == iface_keymod) { - const int keycode = luaL_checkint(L, arg++) & 0xFFFF; -- const int modifiers = luaL_checkint(L, arg++) & +- const intptr_t modifiers = luaL_checkint(L, arg++) & + const int keycode = luaL_checkinteger(L, arg++) & 0xFFFF; -+ const int modifiers = luaL_checkinteger(L, arg++) & ++ const intptr_t modifiers = luaL_checkinteger(L, arg++) & static_cast<int>(SA::KeyMod::Shift|SA::KeyMod::Ctrl|SA::KeyMod::Alt); params[i] = keycode | (modifiers<<16); } else if (func.paramType[i] == iface_bool) { -@@ -1805,7 +1805,7 @@ +@@ -1787,7 +1787,7 @@ static int SetLevelAt(lua_State *L) { StylingContext *context = Context(L); const SA::Line line = luaL_checkinteger(L, 2); @@ -143,7 +145,7 @@ diff -aur scite/src/LuaExtension.cxx scite/src/LuaExtension.cxx context->styler->SetLevel(line, static_cast<SA::FoldLevel>(level)); return 0; } -@@ -1820,7 +1820,7 @@ +@@ -1802,7 +1802,7 @@ static int SetLineState(lua_State *L) { StylingContext *context = Context(L); const SA::Line line = luaL_checkinteger(L, 2); @@ -152,7 +154,7 @@ diff -aur scite/src/LuaExtension.cxx scite/src/LuaExtension.cxx context->styler->SetLineState(line, stateOfLine); return 0; } -@@ -1898,7 +1898,7 @@ +@@ -1880,7 +1880,7 @@ StylingContext *context = Context(L); const SA::Position startPosStyle = luaL_checkinteger(L, 2); const SA::Position lengthStyle = luaL_checkinteger(L, 3); @@ -161,7 +163,7 @@ diff -aur scite/src/LuaExtension.cxx scite/src/LuaExtension.cxx context->StartStyling(startPosStyle, lengthStyle, initialStyle); return 0; } -@@ -1957,7 +1957,7 @@ +@@ -1939,7 +1939,7 @@ static int SetState(lua_State *L) { StylingContext *context = Context(L); context->Colourize(); @@ -170,7 +172,7 @@ diff -aur scite/src/LuaExtension.cxx scite/src/LuaExtension.cxx return 0; } -@@ -1965,13 +1965,13 @@ +@@ -1947,13 +1947,13 @@ StylingContext *context = Context(L); context->Forward(); context->Colourize(); @@ -186,81 +188,4 @@ diff -aur scite/src/LuaExtension.cxx scite/src/LuaExtension.cxx return 0; } -From: =?utf-8?q?Andreas_R=C3=B6nnquist?= <gusnan@debian.org> -Date: Tue, 19 Jun 2018 15:34:57 +0200 -Subject: Build with Debian packaged Lua -Forwarded: not-needed - ---- - scite/gtk/deps.mak | 6 +----- - scite/gtk/makefile | 30 ++++-------------------------- - 2 files changed, 5 insertions(+), 31 deletions(-) ---- a/scite/gtk/deps.mak -+++ b/scite/gtk/deps.mak -@@ -265,11 +265,7 @@ - ../src/Extender.h \ - ../src/IFaceTable.h \ - ../src/SciTEKeys.h \ -- ../src/LuaExtension.h \ -- ../lua/src/lua.h \ -- ../lua/src/luaconf.h \ -- ../lua/src/lualib.h \ -- ../lua/src/lauxlib.h -+ ../src/LuaExtension.h - MatchMarker.o: \ - ../src/MatchMarker.cxx \ - ../../scintilla/include/ScintillaTypes.h \ ---- a/scite/gtk/makefile -+++ b/scite/gtk/makefile -@@ -33,9 +33,9 @@ - - PYTHON = $(if $(windir),pyw,python3) - --# For the Gnome desktop stuff to work, prefix must point to where Gnome thinks it is. --CONFIGFLAGS:=$(shell $(PKG_CONFIG) --cflags $(GTK_VERSION)) --CONFIGLIB:=$(shell $(PKG_CONFIG) --libs $(GTK_VERSION) gthread-2.0 gmodule-no-export-2.0) -+# For the Lua and Gnome desktop stuff to work, prefix must point to where Lua and Gnome thinks it is. -+CONFIGFLAGS:=$(shell $(PKG_CONFIG) --cflags $(GTK_VERSION)) $(shell $(PKG_CONFIG) --cflags lua) -+CONFIGLIB:=$(shell $(PKG_CONFIG) --libs $(GTK_VERSION) gthread-2.0 gmodule-no-export-2.0) $(shell $(PKG_CONFIG) --libs lua) - gnomeprefix:=$(shell $(PKG_CONFIG) --variable=prefix $(GTK_VERSION) 2>/dev/null) - ifndef prefix - ifdef gnomeprefix -@@ -72,28 +72,6 @@ - DEFINES += -D$(if $(DEBUG),DEBUG,NDEBUG) - BASE_FLAGS += $(if $(DEBUG),-g,-Os) - --ifndef NO_LUA --LUA_CORE_OBJS = lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o \ -- lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o \ -- ltable.o ltm.o lundump.o lvm.o lzio.o -- --LUA_LIB_OBJS = lauxlib.o lbaselib.o lbitlib.o lcorolib.o ldblib.o liolib.o lmathlib.o ltablib.o \ -- lstrlib.o loadlib.o loslib.o linit.o lutf8lib.o -- --LUA_OBJS = LuaExtension.o $(LUA_CORE_OBJS) $(LUA_LIB_OBJS) -- --vpath %.c $(srcdir)/../lua/src -- --INCLUDES += -I$(srcdir)/../lua/src --LUA_DEFINES = -DLUA_USE_POSIX -DLUA_USE_DLOPEN -- --%.o: %.c -- $(CC) $(CPPFLAGS) $(DEFINES) $(INCLUDES) $(WARNINGS) $(LUA_DEFINES) $(BASE_FLAGS) $(CFLAGS) -c $< -o $@ -- --else --DEFINES += -DNO_LUA --endif -- - LIBS += -lm -lstdc++ - - UNAME:=$(shell uname -s) -@@ -154,7 +132,7 @@ - StyleWriter.o \ - Utf8_16.o - --$(PROG): SciTEGTK.o Strips.o GUIGTK.o Widget.o DirectorExtension.o $(SRC_OBJS) $(LUA_OBJS) -+$(PROG): SciTEGTK.o Strips.o GUIGTK.o Widget.o DirectorExtension.o $(SRC_OBJS) LuaExtension.o - $(CXX) $(BASE_FLAGS) $(LDFLAGS) -rdynamic -Wl,--as-needed -Wl,-rpath,'$${ORIGIN}' -Wl,--version-script $(srcdir)/lua.vers -Wl,-rpath,$(libdir) $^ -o $@ $(CONFIGLIB) $(LIBS) -L ../../scintilla/bin -lscintilla $(LDLIBS) - - # Automatically generate header dependencies with "make depend" diff --git a/scite/debian/changelog b/scite/debian/changelog index 9ff6ecc..fc5ebf7 100644 --- a/scite/debian/changelog +++ b/scite/debian/changelog @@ -1,9 +1,16 @@ -scite (5.2.2-2+devuan) obs; urgency=medium +scite (5.2.3-1+devuan) obs; urgency=medium * Add stackrpms lua script and customized global.properties * Use lua 5.4.4 - -- B. Stack <bgstack15@gmail.com> Mon, 04 Apr 2022 09:51:24 -0400 + -- B. Stack <bgstack15@gmail.com> Tue, 31 May 2022 10:31:51 -0400 + +scite (5.2.3-1) unstable; urgency=medium + + * New upstream version 5.2.3 + - Fixes scrolllbars not being updated properly (Closes: #857540) + + -- Andreas Rönnquist <gusnan@debian.org> Sun, 22 May 2022 12:49:35 +0200 scite (5.2.2-1) unstable; urgency=medium diff --git a/scite/debian/patches/use-lua5.4.4.patch b/scite/debian/patches/use-lua5.4.4.patch index 4268cc1..382df1a 100644 --- a/scite/debian/patches/use-lua5.4.4.patch +++ b/scite/debian/patches/use-lua5.4.4.patch @@ -1,8 +1,11 @@ Name: Patch scite to use distro package of lua, Devuan -Version: 5.2.2 -Lua Version: 5.4.4 +Version: 5.2.3 +Lua-Version: 5.4.4 Author: bgstack15@gmail.com -Date: 2022-04-04 +Date-Modified: 2022-05-31 +Message: Generated with the following command + + sed -r -e 's/checkint\(/checkinteger\(/g;' -e 's/lua_strlen\(/lua_rawlen\(/g;' scite/src/LuaExtension.cxx > ~/LuaExtension.cxx.new diff -aur scite/gtk/deps.mak scite/gtk/deps.mak --- a/scite/gtk/deps.mak 2022-03-30 20:48:24.000000000 -0400 +++ b/scite/gtk/deps.mak 2022-04-04 14:47:39.110529717 -0400 @@ -23,61 +26,61 @@ diff -aur scite/gtk/deps.mak scite/gtk/deps.mak diff -aur scite/src/LuaExtension.cxx scite/src/LuaExtension.cxx --- a/scite/src/LuaExtension.cxx 2022-03-30 20:48:24.000000000 -0400 +++ b/scite/src/LuaExtension.cxx 2022-04-04 14:46:35.097978533 -0400 -@@ -237,7 +237,7 @@ +@@ -238,7 +238,7 @@ - const int paneIndex = lua_upvalueindex(1); + constexpr int paneIndex = lua_upvalueindex(1); check_pane_object(L, paneIndex); - const int message = luaL_checkint(L, 1); + const int message = luaL_checkinteger(L, 1); lua_pushvalue(L, paneIndex); lua_replace(L, 1); -@@ -276,7 +276,7 @@ +@@ -277,7 +277,7 @@ } - static int cf_scite_constname(lua_State *L) { + int cf_scite_constname(lua_State *L) { - const int message = luaL_checkint(L, 1); + const int message = luaL_checkinteger(L, 1); const char *prefix = luaL_optstring(L, 2, nullptr); const std::string constName = IFaceTable::GetConstantName(message, prefix); if (constName.length() > 0) { -@@ -307,7 +307,7 @@ +@@ -308,7 +308,7 @@ } - static int cf_scite_menu_command(lua_State *L) { + int cf_scite_menu_command(lua_State *L) { - const int cmdID = luaL_checkint(L, 1); + const int cmdID = luaL_checkinteger(L, 1); if (cmdID) { host->DoMenuCommand(cmdID); } -@@ -329,7 +329,7 @@ +@@ -330,7 +330,7 @@ } - static int cf_scite_strip_set(lua_State *L) { + int cf_scite_strip_set(lua_State *L) { - const int control = luaL_checkint(L, 1); + const int control = luaL_checkinteger(L, 1); const char *value = luaL_checkstring(L, 2); if (value) { host->UserStripSet(control, value); -@@ -338,7 +338,7 @@ +@@ -339,7 +339,7 @@ } - static int cf_scite_strip_set_list(lua_State *L) { + int cf_scite_strip_set_list(lua_State *L) { - const int control = luaL_checkint(L, 1); + const int control = luaL_checkinteger(L, 1); const char *value = luaL_checkstring(L, 2); if (value) { host->UserStripSetList(control, value); -@@ -347,7 +347,7 @@ +@@ -348,7 +348,7 @@ } - static int cf_scite_strip_value(lua_State *L) { + int cf_scite_strip_value(lua_State *L) { - const int control = luaL_checkint(L, 1); + const int control = luaL_checkinteger(L, 1); std::string value = host->UserStripValue(control); push_string(L, value); return 1; -@@ -437,7 +437,7 @@ +@@ -438,7 +438,7 @@ SA::Position rangeStart = 0; SA::Position rangeEnd = 0; @@ -86,7 +89,7 @@ diff -aur scite/src/LuaExtension.cxx scite/src/LuaExtension.cxx hasError = (flags == 0 && lua_gettop(L) > nArgs); if (!hasError) { -@@ -514,7 +514,7 @@ +@@ -515,7 +515,7 @@ SA::ScintillaCall &sc = host->PaneCaller(pmo->pane); sc.SetTarget(pmo->range); @@ -95,7 +98,7 @@ diff -aur scite/src/LuaExtension.cxx scite/src/LuaExtension.cxx pmo->range.end = sc.TargetEnd(); return 0; } -@@ -600,7 +600,7 @@ +@@ -601,7 +601,7 @@ pmo->endPosOrig = 0; pmo->flags = 0; if (nargs >= 3) { @@ -104,7 +107,7 @@ diff -aur scite/src/LuaExtension.cxx scite/src/LuaExtension.cxx if (nargs >= 4) { pmo->range.end = pmo->endPosOrig = luaL_checkinteger(L, 4); if (pmo->range.end < 0) { -@@ -765,7 +765,7 @@ +@@ -766,7 +766,7 @@ const int nargs = lua_gettop(L); const char *code = luaL_checkstring(L, 1); const char *name = luaL_optstring(L, 2, code); @@ -113,7 +116,7 @@ diff -aur scite/src/LuaExtension.cxx scite/src/LuaExtension.cxx lua_call(L, 0, LUA_MULTRET); return lua_gettop(L) - nargs; } else { -@@ -896,7 +896,7 @@ +@@ -897,7 +897,7 @@ int loopParamCount = 2; if (func.paramType[0] == iface_length && func.paramType[1] == iface_string) { @@ -122,18 +125,18 @@ diff -aur scite/src/LuaExtension.cxx scite/src/LuaExtension.cxx params[1] = SptrFromString(params[0] ? lua_tostring(L, arg) : ""); loopParamCount = 0; } else if ((func.paramType[1] == iface_stringresult) || (func.returnType == iface_stringresult)) { -@@ -915,8 +915,8 @@ +@@ -916,8 +916,8 @@ const char *s = lua_tostring(L, arg++); params[i] = SptrFromString(s ? s : ""); } else if (func.paramType[i] == iface_keymod) { - const int keycode = luaL_checkint(L, arg++) & 0xFFFF; -- const int modifiers = luaL_checkint(L, arg++) & +- const intptr_t modifiers = luaL_checkint(L, arg++) & + const int keycode = luaL_checkinteger(L, arg++) & 0xFFFF; -+ const int modifiers = luaL_checkinteger(L, arg++) & ++ const intptr_t modifiers = luaL_checkinteger(L, arg++) & static_cast<int>(SA::KeyMod::Shift|SA::KeyMod::Ctrl|SA::KeyMod::Alt); params[i] = keycode | (modifiers<<16); } else if (func.paramType[i] == iface_bool) { -@@ -1805,7 +1805,7 @@ +@@ -1787,7 +1787,7 @@ static int SetLevelAt(lua_State *L) { StylingContext *context = Context(L); const SA::Line line = luaL_checkinteger(L, 2); @@ -142,7 +145,7 @@ diff -aur scite/src/LuaExtension.cxx scite/src/LuaExtension.cxx context->styler->SetLevel(line, static_cast<SA::FoldLevel>(level)); return 0; } -@@ -1820,7 +1820,7 @@ +@@ -1802,7 +1802,7 @@ static int SetLineState(lua_State *L) { StylingContext *context = Context(L); const SA::Line line = luaL_checkinteger(L, 2); @@ -151,7 +154,7 @@ diff -aur scite/src/LuaExtension.cxx scite/src/LuaExtension.cxx context->styler->SetLineState(line, stateOfLine); return 0; } -@@ -1898,7 +1898,7 @@ +@@ -1880,7 +1880,7 @@ StylingContext *context = Context(L); const SA::Position startPosStyle = luaL_checkinteger(L, 2); const SA::Position lengthStyle = luaL_checkinteger(L, 3); @@ -160,7 +163,7 @@ diff -aur scite/src/LuaExtension.cxx scite/src/LuaExtension.cxx context->StartStyling(startPosStyle, lengthStyle, initialStyle); return 0; } -@@ -1957,7 +1957,7 @@ +@@ -1939,7 +1939,7 @@ static int SetState(lua_State *L) { StylingContext *context = Context(L); context->Colourize(); @@ -169,7 +172,7 @@ diff -aur scite/src/LuaExtension.cxx scite/src/LuaExtension.cxx return 0; } -@@ -1965,13 +1965,13 @@ +@@ -1947,13 +1947,13 @@ StylingContext *context = Context(L); context->Forward(); context->Colourize(); @@ -185,3 +188,4 @@ diff -aur scite/src/LuaExtension.cxx scite/src/LuaExtension.cxx return 0; } + diff --git a/scite/debian/scite+devuan.dsc b/scite/debian/scite+devuan.dsc index 3586cb2..8bb7a97 100644 --- a/scite/debian/scite+devuan.dsc +++ b/scite/debian/scite+devuan.dsc @@ -2,7 +2,7 @@ Format: 3.0 (quilt) Source: scite Binary: scite Architecture: any -Version: 5.2.2-2+devuan +Version: 5.2.3-1+devuan Maintainer: B. Stack <bgstack15@gmail.com> Homepage: https://scintilla.org/SciTE.html Standards-Version: 4.6.0.1 diff --git a/scite/stackrpms-2022-04-05.diff b/scite/stackrpms-2022-04-05.diff deleted file mode 100644 index e25c61d..0000000 --- a/scite/stackrpms-2022-04-05.diff +++ /dev/null @@ -1,539 +0,0 @@ -diff -x '.*.swp' -Naur scite.salsa/debian/changelog stackrpms/scite/debian/changelog ---- scite.salsa/debian/changelog 2022-04-05 09:49:25.955774896 -0400 -+++ stackrpms/scite/debian/changelog 2022-04-04 19:51:15.109951844 -0400 -@@ -1,3 +1,10 @@ -+scite (5.2.2-1+devuan) obs; urgency=medium -+ -+ * Add emitUnicode lua script, Ctrl+U -+ * Use lua 5.4.4 -+ -+ -- B. Stack <bgstack15@gmail.com> Mon, 04 Apr 2022 09:51:24 -0400 -+ - scite (5.2.2-1) unstable; urgency=medium - - * New upstream version 5.2.2 -diff -x '.*.swp' -Naur scite.salsa/debian/control stackrpms/scite/debian/control ---- scite.salsa/debian/control 2022-04-05 09:49:25.955774896 -0400 -+++ stackrpms/scite/debian/control 2022-04-05 08:32:40.007194419 -0400 -@@ -1,14 +1,13 @@ - Source: scite --Maintainer: Michael Vogt <mvo@debian.org> --Uploaders: Antonio Valentino <antonio.valentino@tiscali.it>, -- Andreas Rönnquist <gusnan@debian.org> -+Maintainer: B. Stack <bgstack15@gmail.com> -+XSBC-Original-Maintainer: Michael Vogt <mvo@debian.org> - Section: editors - Priority: optional - Rules-Requires-Root: no - Build-Depends: debhelper-compat (= 13), - libgtk-3-dev, - libglib2.0-dev, -- liblua5.3-dev -+ liblua5.4-dev - Standards-Version: 4.6.0.1 - Vcs-Browser: https://salsa.debian.org/debian/scite - Vcs-Git: https://salsa.debian.org/debian/scite.git -diff -x '.*.swp' -Naur scite.salsa/debian/emitUnicode.lua stackrpms/scite/debian/emitUnicode.lua ---- scite.salsa/debian/emitUnicode.lua 1969-12-31 19:00:00.000000000 -0500 -+++ stackrpms/scite/debian/emitUnicode.lua 2022-04-04 19:08:15.295488065 -0400 -@@ -0,0 +1,247 @@ -+-- DESCRIPTION: -+-- Unicode hexadecimal table: https://example.com/copied/unicode.html -+-- Source: http://lua-users.org/wiki/SciteUnicodeInput http://sourceforge.net/projects/emitunicodeinscite/ -+-- Future reference: http://lua-users.org/wiki/SciteScripts -+-- -+-- This lua script adds utf8 unicode input, to the scite text editor. -+-- -+-- The scite text editor should be set to use the UTF-8 encoding -+-- , because this script adds utf8, into the text buffer of the -+-- scite editor. Select File->Encoding->UTF-8, from the -+-- menu bar of scite. -+-- -+-- For example, it will be possible that you type 2200 CTRL+U -+-- , and 2200 is replaced to ∀; (U+2200), in the scite editor. -+-- -+-- ______________________________________________________________________________ -+-- -+-- INSTALL: -+-- -+-- To have scite running this script each time you press Ctrl+U, add next lines -+-- into your ~/SciTEUser.properties file, where ~ is your home directory. -+-- FILE ~/SciTEUser.properties: -+--[[ -+ext.lua.startup.script=$(SciteUserHome)/emitUtf8UnicodeIntoTheSciteEditor.lua -+command.name.8.*=Emit UTF8 Unicode -+command.subsystem.8.*=3 -+command.8.*=emitUtf8UnicodeIntoTheSciteEditor -+command.mode.8.*=savebefore:no -+command.shortcut.8.*=Ctrl+U -+--]] -+-- ______________________________________________________________________________ -+-- THE LUA CODE: -+-- -+-- Next is the definition of the lua function that is called by scite -+-- when CTRL+U is pressed, to replace unicode endpoint encoding, with -+-- utf8 encoding of the unicode endpoint. -+-- ______________________________________________________________________________ -+ -+ -+-- Computes the utf8 encoding for a unicode codepoint u -+-- , when 0 <= u <= 0x7f -+-- -+-- @param unicodeValue the unicode codepoint u -+-- -+-- @return the utf8 encoding of the unicode codepoint u -+function case1UnicodeToUtf8(unicodeValue) -+ --print('case 1') -+ local u = unicodeValue -+ local byte0 = (u % 0x80) -+ local utf8 = string.char(byte0) -+ return utf8 -+end -+ -+-- ______________________________________________________________________________ -+-- Computes the utf8 encoding for a unicode codepoint u -+-- , when 0x80 <= u <= 0x7ff -+-- -+-- @param unicodeValue the unicode codepoint u -+-- -+-- @return the utf8 encoding of the unicode codepoint u -+function case2UnicodeToUtf8(unicodeValue) -+ --print('case 2') -+ local u = unicodeValue -+ local byte1 = (0x80 + (u % 0x40) ) -+ u = math.floor(u / 0x40) -+ local byte0 = (0xc0 + (u % 0x20) ) -+ local utf8 = string.char(byte0, byte1) -+ return utf8 -+end -+ -+-- ______________________________________________________________________________ -+-- Computes the utf8 encoding for a unicode codepoint u -+-- , when 0x800 <= u <= 0xffff. -+-- -+-- @param unicodeValue the unicode codepoint u -+-- -+-- @return the utf8 encoding of the unicode codepoint u -+function case3UnicodeToUtf8(unicodeValue) -+ local u = unicodeValue -+ local byte2 = (0x80 + (u % 0x40)) -+ -- print('byte2: '..byte2) -+ u = math.floor(u / 0x40) -+ local byte1 = (0x80 + (u % 0x40)) -+ -- print('byte1: '..byte1) -+ u = math.floor(u / 0x40) -+ local byte0 = (0xe0 + (u % 0x10)) -+ -- print('byte0: '..byte0) -+ local utf8 = string.char(byte0, byte1, byte2) -+ return utf8 -+end -+ -+-- ______________________________________________________________________________ -+-- Computes the utf8 encoding for a unicode codepoint u -+-- , when 0x10000 <= u <= 0x10ffff. -+-- -+-- @param unicodeValue the unicode codepoint u -+-- -+-- @return the utf8 encoding of the unicode codepoint u -+function case4UnicodeToUtf8(unicodeValue) -+ local u = unicodeValue -+ local byte3 = (0x80 + (u % 0x40)) -+ u = math.floor(u / 0x40) -+ local byte2 = (0x80 + (u % 0x40)) -+ u = math.floor(u / 0x40) -+ local byte1 = (0x80 + (u % 0x40)) -+ u = math.floor(u / 0x40) -+ local byte0 = (0xf0 + (u % 0x8)) -+ local utf8 = string.char(byte0, byte1, byte2, byte3) -+ return utf8 -+end -+ -+-- ______________________________________________________________________________ -+-- Converts a unicode integer value, into a utf8 string value. -+-- -+-- The unicode integer value is an integer that -+-- is greater than or equal to zero. -+-- -+-- The utf8 string value is a string that is a sequence of -+-- 8 bits characters that give the utf8 encoding of the -+-- unicode codepoint given by the unicode integer value. -+-- -+-- @param unicodeValue the unicode integer value; -+-- a unicode codepoint -+-- -+-- @return the utf8 encoding of the unicode codepoint -+-- provided by the unicodeValue input argument -+function unicodeToUtf8(unicodeValue) -+ local u = unicodeValue -+ if ((0x800 <= u) and (0xffff >= u)) -+ then -+ return case3UnicodeToUtf8(u) -+ end -+ if ((0x80 <= u) and (0x7fff >= u)) -+ then -+ return case2UnicodeToUtf8(u) -+ end -+ if ((0x0 <= u) and (0x7f >= u)) -+ then -+ return case1UnicodeToUtf8(u) -+ end -+ if( (0x10000 <= u) and (0x10ffff >= u) ) -+ then -+ return case4UnicodeToUtf8(u) -+ end -+ return nil -+end -+ -+-- ______________________________________________________________________________ -+-- Peeks (reads) the character at position i, in the Scite Editor. -+-- If the character is the ascii name of a hex digit, it returns -+-- the corresponding hex digit, otherwise it returns nil. -+-- -+-- @param i position in the Scite Editor -+-- @return hex digit at position i, or nil -+function peekHexdigit(i) -+ local e = editor -+ local asciiCode = e.CharAt[i] -+ if((0>asciiCode) or (0xff < asciiCode)) -+ then -+ return nil -+ end -+ local charValue = string.char(asciiCode) -+ local hexDigit = tonumber(charValue,0x10) -+ return hexDigit -- may be nil -+end -+ -+-- ______________________________________________________________________________ -+-- Reads the sequence of maximum length at most 5, at the left of the cursor -+-- in the Scite Editor. -+-- Encodes the longest suffix of this sequence, that is a hex number, into -+-- the utf encoding of this hex number. -+-- Replaces this longest suffix, with the utf8 sequence. -+-- -+-- @return true a suffix of length greater than zero, at most 5 existed -+-- and was replaced with the utf8 encoding of the number it -+-- represented -+-- -+-- false , when no such suffix existed -+function emitUtf8Unicode() -+ local e = editor -+ local n = e.TextLength -+ local i = e.CurrentPos -+ local maxlen = 5 -+ if ((0 == n) or (1 > i)) -+ then -+ return nil -- Success. No request -+ end -+ local len = 1 -+ local len2 = 0 -+ local u = 0 -+ local thePower = 1 -+ while ( (len <= maxlen) -+ and (0 <= (i - len) ) -+ ) -+ do -+ local hexDigit = peekHexdigit(i-len,u) -+ if (nil == hexDigit) -+ then -+ break -- out of the while loop -+ end -+ u = ( u + (thePower * hexDigit) ) -+ thePower = (0x10 * thePower ) -+ len2 = len -+ --print("u: "..u) -+ len = len + 1 -+ end -+ if (0 == len2) -+ then -+ return nil -- Failure. No unicode -+ end -+ utf8 = unicodeToUtf8(u) -+ if(nil == utf8) -+ then -+ return nil -- Failure. Unicode to utf8 conversion failed. -+ end -+ e:SetSel(i-len2,i) -+ e:ReplaceSel(utf8) -+ --print("utf8: "..utf8) -+ return true -- Success. -+end -+ -+-- ______________________________________________________________________________ -+-- Emits utf8 encoding in the place of the unicode codepoint -+-- in the editor, at the left of the cursor. -+-- -+-- Writes a message to the Output pane, if no codepoint existed -+-- at the left of the cursor. -+-- -+function emitUtf8UnicodeIntoTheSciteEditor() -+ local ok = emitUtf8Unicode() -+ if not ok -+ then -+ --print("Failed to encode unicode into text editor.") -+ end -+end -+ -+-- ______________________________________________________________________________ -+-- -+-- Following web pages were useful in writing the lua scite script. -+-- -+-- http://lua-users.org/wiki/UsingLuaWithScite -+-- http://www.scintilla.org/PaneAPI.html -+-- http://www.lua.org/manual/5.1/manual.html#pdf-tonumber -+-- https://en.wikipedia.org/wiki/UTF-8 -+-- -+-- http://lua-users.org/lists/lua-l/2007-08/msg00276.html -+-- http://keplerproject.github.io/luadoc/ -diff -x '.*.swp' -Naur scite.salsa/debian/patches/0007-Build-with-Debian-packaged-Lua.patch stackrpms/scite/debian/patches/0007-Build-with-Debian-packaged-Lua.patch ---- scite.salsa/debian/patches/0007-Build-with-Debian-packaged-Lua.patch 2022-04-05 09:49:25.955774896 -0400 -+++ stackrpms/scite/debian/patches/0007-Build-with-Debian-packaged-Lua.patch 2022-04-04 20:56:01.431094606 -0400 -@@ -33,8 +33,8 @@ - -CONFIGFLAGS:=$(shell $(PKG_CONFIG) --cflags $(GTK_VERSION)) - -CONFIGLIB:=$(shell $(PKG_CONFIG) --libs $(GTK_VERSION) gthread-2.0 gmodule-no-export-2.0) - +# For the Lua and Gnome desktop stuff to work, prefix must point to where Lua and Gnome thinks it is. --+CONFIGFLAGS:=$(shell $(PKG_CONFIG) --cflags $(GTK_VERSION)) $(shell $(PKG_CONFIG) --cflags lua5.3) --+CONFIGLIB:=$(shell $(PKG_CONFIG) --libs $(GTK_VERSION) gthread-2.0 gmodule-no-export-2.0) $(shell $(PKG_CONFIG) --libs lua5.3) -++CONFIGFLAGS:=$(shell $(PKG_CONFIG) --cflags $(GTK_VERSION)) $(shell $(PKG_CONFIG) --cflags lua5.4) -++CONFIGLIB:=$(shell $(PKG_CONFIG) --libs $(GTK_VERSION) gthread-2.0 gmodule-no-export-2.0) $(shell $(PKG_CONFIG) --libs lua5.4) - gnomeprefix:=$(shell $(PKG_CONFIG) --variable=prefix $(GTK_VERSION) 2>/dev/null) - ifndef prefix - ifdef gnomeprefix -diff -x '.*.swp' -Naur scite.salsa/debian/patches/add-emitUnicode.patch stackrpms/scite/debian/patches/add-emitUnicode.patch ---- scite.salsa/debian/patches/add-emitUnicode.patch 1969-12-31 19:00:00.000000000 -0500 -+++ stackrpms/scite/debian/patches/add-emitUnicode.patch 2022-04-04 19:08:15.295488065 -0400 -@@ -0,0 +1,16 @@ -+--- a/scite/src/SciTEGlobal.properties 2022-03-30 20:48:24.000000000 -0400 -++++ b/scite/src/SciTEGlobal.properties 2022-04-04 10:14:32.803893680 -0400 -+@@ -550,6 +550,13 @@ -+ # The set of imports allowed can be set with -+ #imports.include=ave -+ -++ext.lua.startup.script=$(SciteDefaultHome)/emitUnicode.lua -++command.name.8.*=Emit UTF8 Unicode -++command.subsystem.8.*=3 -++command.8.*=emitUtf8UnicodeIntoTheSciteEditor -++command.mode.8.*=savebefore:no -++command.shortcut.8.*=Ctrl+U -++ -+ # Import all the language specific properties files in this directory -+ import * -+ -diff -x '.*.swp' -Naur scite.salsa/debian/patches/series stackrpms/scite/debian/patches/series ---- scite.salsa/debian/patches/series 2022-04-05 09:49:25.955774896 -0400 -+++ stackrpms/scite/debian/patches/series 2022-04-04 22:12:35.852188087 -0400 -@@ -2,3 +2,5 @@ - 0003-reproducible_build.patch - 0005-scite-desktop.patch - 0007-Build-with-Debian-packaged-Lua.patch -+use-lua5.4.4.patch -+add-emitUnicode.patch -diff -x '.*.swp' -Naur scite.salsa/debian/patches/use-lua5.4.4.patch stackrpms/scite/debian/patches/use-lua5.4.4.patch ---- scite.salsa/debian/patches/use-lua5.4.4.patch 1969-12-31 19:00:00.000000000 -0500 -+++ stackrpms/scite/debian/patches/use-lua5.4.4.patch 2022-04-04 19:15:01.427643169 -0400 -@@ -0,0 +1,187 @@ -+Name: Patch scite to use distro package of lua, Devuan -+Version: 5.2.2 -+Lua Version: 5.4.4 -+Author: bgstack15@gmail.com -+Date: 2022-04-04 -+diff -aur scite/gtk/deps.mak scite/gtk/deps.mak -+--- a/scite/gtk/deps.mak 2022-03-30 20:48:24.000000000 -0400 -++++ b/scite/gtk/deps.mak 2022-04-04 14:47:39.110529717 -0400 -+@@ -469,13 +469,6 @@ -+ ../lua/src/luaconf.h \ -+ ../lua/src/lauxlib.h \ -+ ../lua/src/lualib.h -+-lbitlib.o: \ -+- ../lua/src/lbitlib.c \ -+- ../lua/src/lprefix.h \ -+- ../lua/src/lua.h \ -+- ../lua/src/luaconf.h \ -+- ../lua/src/lauxlib.h \ -+- ../lua/src/lualib.h -+ lcode.o: \ -+ ../lua/src/lcode.c \ -+ ../lua/src/lprefix.h \ -+diff -aur scite/src/LuaExtension.cxx scite/src/LuaExtension.cxx -+--- a/scite/src/LuaExtension.cxx 2022-03-30 20:48:24.000000000 -0400 -++++ b/scite/src/LuaExtension.cxx 2022-04-04 14:46:35.097978533 -0400 -+@@ -237,7 +237,7 @@ -+ -+ const int paneIndex = lua_upvalueindex(1); -+ check_pane_object(L, paneIndex); -+- const int message = luaL_checkint(L, 1); -++ const int message = luaL_checkinteger(L, 1); -+ -+ lua_pushvalue(L, paneIndex); -+ lua_replace(L, 1); -+@@ -276,7 +276,7 @@ -+ } -+ -+ static int cf_scite_constname(lua_State *L) { -+- const int message = luaL_checkint(L, 1); -++ const int message = luaL_checkinteger(L, 1); -+ const char *prefix = luaL_optstring(L, 2, nullptr); -+ const std::string constName = IFaceTable::GetConstantName(message, prefix); -+ if (constName.length() > 0) { -+@@ -307,7 +307,7 @@ -+ } -+ -+ static int cf_scite_menu_command(lua_State *L) { -+- const int cmdID = luaL_checkint(L, 1); -++ const int cmdID = luaL_checkinteger(L, 1); -+ if (cmdID) { -+ host->DoMenuCommand(cmdID); -+ } -+@@ -329,7 +329,7 @@ -+ } -+ -+ static int cf_scite_strip_set(lua_State *L) { -+- const int control = luaL_checkint(L, 1); -++ const int control = luaL_checkinteger(L, 1); -+ const char *value = luaL_checkstring(L, 2); -+ if (value) { -+ host->UserStripSet(control, value); -+@@ -338,7 +338,7 @@ -+ } -+ -+ static int cf_scite_strip_set_list(lua_State *L) { -+- const int control = luaL_checkint(L, 1); -++ const int control = luaL_checkinteger(L, 1); -+ const char *value = luaL_checkstring(L, 2); -+ if (value) { -+ host->UserStripSetList(control, value); -+@@ -347,7 +347,7 @@ -+ } -+ -+ static int cf_scite_strip_value(lua_State *L) { -+- const int control = luaL_checkint(L, 1); -++ const int control = luaL_checkinteger(L, 1); -+ std::string value = host->UserStripValue(control); -+ push_string(L, value); -+ return 1; -+@@ -437,7 +437,7 @@ -+ SA::Position rangeStart = 0; -+ SA::Position rangeEnd = 0; -+ -+- const int flags = (nArgs > 2) ? luaL_checkint(L, 3) : 0; -++ const int flags = (nArgs > 2) ? luaL_checkinteger(L, 3) : 0; -+ hasError = (flags == 0 && lua_gettop(L) > nArgs); -+ -+ if (!hasError) { -+@@ -514,7 +514,7 @@ -+ -+ SA::ScintillaCall &sc = host->PaneCaller(pmo->pane); -+ sc.SetTarget(pmo->range); -+- sc.ReplaceTarget(lua_strlen(L, 2), replacement); -++ sc.ReplaceTarget(lua_rawlen(L, 2), replacement); -+ pmo->range.end = sc.TargetEnd(); -+ return 0; -+ } -+@@ -600,7 +600,7 @@ -+ pmo->endPosOrig = 0; -+ pmo->flags = 0; -+ if (nargs >= 3) { -+- pmo->flags = luaL_checkint(L, 3); -++ pmo->flags = luaL_checkinteger(L, 3); -+ if (nargs >= 4) { -+ pmo->range.end = pmo->endPosOrig = luaL_checkinteger(L, 4); -+ if (pmo->range.end < 0) { -+@@ -765,7 +765,7 @@ -+ const int nargs = lua_gettop(L); -+ const char *code = luaL_checkstring(L, 1); -+ const char *name = luaL_optstring(L, 2, code); -+- if (0 == luaL_loadbuffer(L, code, lua_strlen(L, 1), name)) { -++ if (0 == luaL_loadbuffer(L, code, lua_rawlen(L, 1), name)) { -+ lua_call(L, 0, LUA_MULTRET); -+ return lua_gettop(L) - nargs; -+ } else { -+@@ -896,7 +896,7 @@ -+ int loopParamCount = 2; -+ -+ if (func.paramType[0] == iface_length && func.paramType[1] == iface_string) { -+- params[0] = lua_strlen(L, arg); -++ params[0] = lua_rawlen(L, arg); -+ params[1] = SptrFromString(params[0] ? lua_tostring(L, arg) : ""); -+ loopParamCount = 0; -+ } else if ((func.paramType[1] == iface_stringresult) || (func.returnType == iface_stringresult)) { -+@@ -915,8 +915,8 @@ -+ const char *s = lua_tostring(L, arg++); -+ params[i] = SptrFromString(s ? s : ""); -+ } else if (func.paramType[i] == iface_keymod) { -+- const int keycode = luaL_checkint(L, arg++) & 0xFFFF; -+- const int modifiers = luaL_checkint(L, arg++) & -++ const int keycode = luaL_checkinteger(L, arg++) & 0xFFFF; -++ const int modifiers = luaL_checkinteger(L, arg++) & -+ static_cast<int>(SA::KeyMod::Shift|SA::KeyMod::Ctrl|SA::KeyMod::Alt); -+ params[i] = keycode | (modifiers<<16); -+ } else if (func.paramType[i] == iface_bool) { -+@@ -1805,7 +1805,7 @@ -+ static int SetLevelAt(lua_State *L) { -+ StylingContext *context = Context(L); -+ const SA::Line line = luaL_checkinteger(L, 2); -+- const int level = luaL_checkint(L, 3); -++ const int level = luaL_checkinteger(L, 3); -+ context->styler->SetLevel(line, static_cast<SA::FoldLevel>(level)); -+ return 0; -+ } -+@@ -1820,7 +1820,7 @@ -+ static int SetLineState(lua_State *L) { -+ StylingContext *context = Context(L); -+ const SA::Line line = luaL_checkinteger(L, 2); -+- const int stateOfLine = luaL_checkint(L, 3); -++ const int stateOfLine = luaL_checkinteger(L, 3); -+ context->styler->SetLineState(line, stateOfLine); -+ return 0; -+ } -+@@ -1898,7 +1898,7 @@ -+ StylingContext *context = Context(L); -+ const SA::Position startPosStyle = luaL_checkinteger(L, 2); -+ const SA::Position lengthStyle = luaL_checkinteger(L, 3); -+- const int initialStyle = luaL_checkint(L, 4); -++ const int initialStyle = luaL_checkinteger(L, 4); -+ context->StartStyling(startPosStyle, lengthStyle, initialStyle); -+ return 0; -+ } -+@@ -1957,7 +1957,7 @@ -+ static int SetState(lua_State *L) { -+ StylingContext *context = Context(L); -+ context->Colourize(); -+- context->state = luaL_checkint(L, 2); -++ context->state = luaL_checkinteger(L, 2); -+ return 0; -+ } -+ -+@@ -1965,13 +1965,13 @@ -+ StylingContext *context = Context(L); -+ context->Forward(); -+ context->Colourize(); -+- context->state = luaL_checkint(L, 2); -++ context->state = luaL_checkinteger(L, 2); -+ return 0; -+ } -+ -+ static int ChangeState(lua_State *L) { -+ StylingContext *context = Context(L); -+- context->state = luaL_checkint(L, 2); -++ context->state = luaL_checkinteger(L, 2); -+ return 0; -+ } -+ -diff -x '.*.swp' -Naur scite.salsa/debian/rules stackrpms/scite/debian/rules ---- scite.salsa/debian/rules 2022-04-05 09:49:25.955774896 -0400 -+++ stackrpms/scite/debian/rules 2022-04-05 10:24:05.582048509 -0400 -@@ -1,6 +1,7 @@ - #!/usr/bin/make -f - - export DEB_BUILD_MAINT_OPTIONS=hardening=+all -+export DEB_BUILD_OPTIONS=noautodbgsym - - include /usr/share/dpkg/pkg-info.mk - BUILD_DATE ?= $(shell date --utc --date="@$(SOURCE_DATE_EPOCH)" "+%b %d %Y %T") -@@ -43,6 +44,7 @@ - mv -f $(CURDIR)/debian/scite/usr/share/scite/*.txt $(CURDIR)/debian/scite/usr/share/doc/scite/ - mv -f $(CURDIR)/debian/scite/usr/share/scite/*.jpg $(CURDIR)/debian/scite/usr/share/doc/scite/ - mv -f $(CURDIR)/debian/scite/usr/share/scite/*.png $(CURDIR)/debian/scite/usr/share/doc/scite/ -+ cp -p debian/emitUnicode.lua $(CURDIR)/debian/scite/usr/share/scite/ - for f in $(CURDIR)/debian/scite/usr/share/doc/scite/*.html; do \ - dh_link usr/share/doc/scite/$$(basename $$f) usr/share/scite/$$(basename $$f); \ - done diff --git a/scite/stackrpms-5.2.3-1.diff b/scite/stackrpms-5.2.3-1.diff new file mode 100644 index 0000000..6176c71 --- /dev/null +++ b/scite/stackrpms-5.2.3-1.diff @@ -0,0 +1,1163 @@ +diff -x '.*.swp' -Naur scite.salsa/debian/changelog stackrpms/scite/debian/changelog +--- scite.salsa/debian/changelog 2022-05-31 09:48:57.251826229 -0400 ++++ stackrpms/scite/debian/changelog 2022-05-31 10:31:22.917242269 -0400 +@@ -1,3 +1,10 @@ ++scite (5.2.3-1+devuan) obs; urgency=medium ++ ++ * Add stackrpms lua script and customized global.properties ++ * Use lua 5.4.4 ++ ++ -- B. Stack <bgstack15@gmail.com> Tue, 31 May 2022 10:31:51 -0400 ++ + scite (5.2.3-1) unstable; urgency=medium + + * New upstream version 5.2.3 +diff -x '.*.swp' -Naur scite.salsa/debian/control stackrpms/scite/debian/control +--- scite.salsa/debian/control 2022-04-05 09:49:25.955774896 -0400 ++++ stackrpms/scite/debian/control 2022-04-16 12:53:10.788708356 -0400 +@@ -1,14 +1,13 @@ + Source: scite +-Maintainer: Michael Vogt <mvo@debian.org> +-Uploaders: Antonio Valentino <antonio.valentino@tiscali.it>, +- Andreas Rönnquist <gusnan@debian.org> ++Maintainer: B. Stack <bgstack15@gmail.com> ++XSBC-Original-Maintainer: Michael Vogt <mvo@debian.org> + Section: editors + Priority: optional + Rules-Requires-Root: no + Build-Depends: debhelper-compat (= 13), + libgtk-3-dev, + libglib2.0-dev, +- liblua5.3-dev ++ liblua5.4-dev + Standards-Version: 4.6.0.1 + Vcs-Browser: https://salsa.debian.org/debian/scite + Vcs-Git: https://salsa.debian.org/debian/scite.git +diff -x '.*.swp' -Naur scite.salsa/debian/patches/0007-Build-with-Debian-packaged-Lua.patch stackrpms/scite/debian/patches/0007-Build-with-Debian-packaged-Lua.patch +--- scite.salsa/debian/patches/0007-Build-with-Debian-packaged-Lua.patch 2022-04-05 09:49:25.955774896 -0400 ++++ stackrpms/scite/debian/patches/0007-Build-with-Debian-packaged-Lua.patch 2022-04-16 12:53:10.996710687 -0400 +@@ -33,8 +33,8 @@ + -CONFIGFLAGS:=$(shell $(PKG_CONFIG) --cflags $(GTK_VERSION)) + -CONFIGLIB:=$(shell $(PKG_CONFIG) --libs $(GTK_VERSION) gthread-2.0 gmodule-no-export-2.0) + +# For the Lua and Gnome desktop stuff to work, prefix must point to where Lua and Gnome thinks it is. +-+CONFIGFLAGS:=$(shell $(PKG_CONFIG) --cflags $(GTK_VERSION)) $(shell $(PKG_CONFIG) --cflags lua5.3) +-+CONFIGLIB:=$(shell $(PKG_CONFIG) --libs $(GTK_VERSION) gthread-2.0 gmodule-no-export-2.0) $(shell $(PKG_CONFIG) --libs lua5.3) +++CONFIGFLAGS:=$(shell $(PKG_CONFIG) --cflags $(GTK_VERSION)) $(shell $(PKG_CONFIG) --cflags lua5.4) +++CONFIGLIB:=$(shell $(PKG_CONFIG) --libs $(GTK_VERSION) gthread-2.0 gmodule-no-export-2.0) $(shell $(PKG_CONFIG) --libs lua5.4) + gnomeprefix:=$(shell $(PKG_CONFIG) --variable=prefix $(GTK_VERSION) 2>/dev/null) + ifndef prefix + ifdef gnomeprefix +diff -x '.*.swp' -Naur scite.salsa/debian/patches/series stackrpms/scite/debian/patches/series +--- scite.salsa/debian/patches/series 2022-04-05 09:49:25.955774896 -0400 ++++ stackrpms/scite/debian/patches/series 2022-04-16 12:53:11.032711091 -0400 +@@ -2,3 +2,4 @@ + 0003-reproducible_build.patch + 0005-scite-desktop.patch + 0007-Build-with-Debian-packaged-Lua.patch ++use-lua5.4.4.patch +diff -x '.*.swp' -Naur scite.salsa/debian/patches/use-lua5.4.4.patch stackrpms/scite/debian/patches/use-lua5.4.4.patch +--- scite.salsa/debian/patches/use-lua5.4.4.patch 1969-12-31 19:00:00.000000000 -0500 ++++ stackrpms/scite/debian/patches/use-lua5.4.4.patch 2022-04-16 12:53:11.044711225 -0400 +@@ -0,0 +1,187 @@ ++Name: Patch scite to use distro package of lua, Devuan ++Version: 5.2.2 ++Lua Version: 5.4.4 ++Author: bgstack15@gmail.com ++Date: 2022-04-04 ++diff -aur scite/gtk/deps.mak scite/gtk/deps.mak ++--- a/scite/gtk/deps.mak 2022-03-30 20:48:24.000000000 -0400 +++++ b/scite/gtk/deps.mak 2022-04-04 14:47:39.110529717 -0400 ++@@ -469,13 +469,6 @@ ++ ../lua/src/luaconf.h \ ++ ../lua/src/lauxlib.h \ ++ ../lua/src/lualib.h ++-lbitlib.o: \ ++- ../lua/src/lbitlib.c \ ++- ../lua/src/lprefix.h \ ++- ../lua/src/lua.h \ ++- ../lua/src/luaconf.h \ ++- ../lua/src/lauxlib.h \ ++- ../lua/src/lualib.h ++ lcode.o: \ ++ ../lua/src/lcode.c \ ++ ../lua/src/lprefix.h \ ++diff -aur scite/src/LuaExtension.cxx scite/src/LuaExtension.cxx ++--- a/scite/src/LuaExtension.cxx 2022-03-30 20:48:24.000000000 -0400 +++++ b/scite/src/LuaExtension.cxx 2022-04-04 14:46:35.097978533 -0400 ++@@ -237,7 +237,7 @@ ++ ++ const int paneIndex = lua_upvalueindex(1); ++ check_pane_object(L, paneIndex); ++- const int message = luaL_checkint(L, 1); +++ const int message = luaL_checkinteger(L, 1); ++ ++ lua_pushvalue(L, paneIndex); ++ lua_replace(L, 1); ++@@ -276,7 +276,7 @@ ++ } ++ ++ static int cf_scite_constname(lua_State *L) { ++- const int message = luaL_checkint(L, 1); +++ const int message = luaL_checkinteger(L, 1); ++ const char *prefix = luaL_optstring(L, 2, nullptr); ++ const std::string constName = IFaceTable::GetConstantName(message, prefix); ++ if (constName.length() > 0) { ++@@ -307,7 +307,7 @@ ++ } ++ ++ static int cf_scite_menu_command(lua_State *L) { ++- const int cmdID = luaL_checkint(L, 1); +++ const int cmdID = luaL_checkinteger(L, 1); ++ if (cmdID) { ++ host->DoMenuCommand(cmdID); ++ } ++@@ -329,7 +329,7 @@ ++ } ++ ++ static int cf_scite_strip_set(lua_State *L) { ++- const int control = luaL_checkint(L, 1); +++ const int control = luaL_checkinteger(L, 1); ++ const char *value = luaL_checkstring(L, 2); ++ if (value) { ++ host->UserStripSet(control, value); ++@@ -338,7 +338,7 @@ ++ } ++ ++ static int cf_scite_strip_set_list(lua_State *L) { ++- const int control = luaL_checkint(L, 1); +++ const int control = luaL_checkinteger(L, 1); ++ const char *value = luaL_checkstring(L, 2); ++ if (value) { ++ host->UserStripSetList(control, value); ++@@ -347,7 +347,7 @@ ++ } ++ ++ static int cf_scite_strip_value(lua_State *L) { ++- const int control = luaL_checkint(L, 1); +++ const int control = luaL_checkinteger(L, 1); ++ std::string value = host->UserStripValue(control); ++ push_string(L, value); ++ return 1; ++@@ -437,7 +437,7 @@ ++ SA::Position rangeStart = 0; ++ SA::Position rangeEnd = 0; ++ ++- const int flags = (nArgs > 2) ? luaL_checkint(L, 3) : 0; +++ const int flags = (nArgs > 2) ? luaL_checkinteger(L, 3) : 0; ++ hasError = (flags == 0 && lua_gettop(L) > nArgs); ++ ++ if (!hasError) { ++@@ -514,7 +514,7 @@ ++ ++ SA::ScintillaCall &sc = host->PaneCaller(pmo->pane); ++ sc.SetTarget(pmo->range); ++- sc.ReplaceTarget(lua_strlen(L, 2), replacement); +++ sc.ReplaceTarget(lua_rawlen(L, 2), replacement); ++ pmo->range.end = sc.TargetEnd(); ++ return 0; ++ } ++@@ -600,7 +600,7 @@ ++ pmo->endPosOrig = 0; ++ pmo->flags = 0; ++ if (nargs >= 3) { ++- pmo->flags = luaL_checkint(L, 3); +++ pmo->flags = luaL_checkinteger(L, 3); ++ if (nargs >= 4) { ++ pmo->range.end = pmo->endPosOrig = luaL_checkinteger(L, 4); ++ if (pmo->range.end < 0) { ++@@ -765,7 +765,7 @@ ++ const int nargs = lua_gettop(L); ++ const char *code = luaL_checkstring(L, 1); ++ const char *name = luaL_optstring(L, 2, code); ++- if (0 == luaL_loadbuffer(L, code, lua_strlen(L, 1), name)) { +++ if (0 == luaL_loadbuffer(L, code, lua_rawlen(L, 1), name)) { ++ lua_call(L, 0, LUA_MULTRET); ++ return lua_gettop(L) - nargs; ++ } else { ++@@ -896,7 +896,7 @@ ++ int loopParamCount = 2; ++ ++ if (func.paramType[0] == iface_length && func.paramType[1] == iface_string) { ++- params[0] = lua_strlen(L, arg); +++ params[0] = lua_rawlen(L, arg); ++ params[1] = SptrFromString(params[0] ? lua_tostring(L, arg) : ""); ++ loopParamCount = 0; ++ } else if ((func.paramType[1] == iface_stringresult) || (func.returnType == iface_stringresult)) { ++@@ -915,8 +915,8 @@ ++ const char *s = lua_tostring(L, arg++); ++ params[i] = SptrFromString(s ? s : ""); ++ } else if (func.paramType[i] == iface_keymod) { ++- const int keycode = luaL_checkint(L, arg++) & 0xFFFF; ++- const int modifiers = luaL_checkint(L, arg++) & +++ const int keycode = luaL_checkinteger(L, arg++) & 0xFFFF; +++ const int modifiers = luaL_checkinteger(L, arg++) & ++ static_cast<int>(SA::KeyMod::Shift|SA::KeyMod::Ctrl|SA::KeyMod::Alt); ++ params[i] = keycode | (modifiers<<16); ++ } else if (func.paramType[i] == iface_bool) { ++@@ -1805,7 +1805,7 @@ ++ static int SetLevelAt(lua_State *L) { ++ StylingContext *context = Context(L); ++ const SA::Line line = luaL_checkinteger(L, 2); ++- const int level = luaL_checkint(L, 3); +++ const int level = luaL_checkinteger(L, 3); ++ context->styler->SetLevel(line, static_cast<SA::FoldLevel>(level)); ++ return 0; ++ } ++@@ -1820,7 +1820,7 @@ ++ static int SetLineState(lua_State *L) { ++ StylingContext *context = Context(L); ++ const SA::Line line = luaL_checkinteger(L, 2); ++- const int stateOfLine = luaL_checkint(L, 3); +++ const int stateOfLine = luaL_checkinteger(L, 3); ++ context->styler->SetLineState(line, stateOfLine); ++ return 0; ++ } ++@@ -1898,7 +1898,7 @@ ++ StylingContext *context = Context(L); ++ const SA::Position startPosStyle = luaL_checkinteger(L, 2); ++ const SA::Position lengthStyle = luaL_checkinteger(L, 3); ++- const int initialStyle = luaL_checkint(L, 4); +++ const int initialStyle = luaL_checkinteger(L, 4); ++ context->StartStyling(startPosStyle, lengthStyle, initialStyle); ++ return 0; ++ } ++@@ -1957,7 +1957,7 @@ ++ static int SetState(lua_State *L) { ++ StylingContext *context = Context(L); ++ context->Colourize(); ++- context->state = luaL_checkint(L, 2); +++ context->state = luaL_checkinteger(L, 2); ++ return 0; ++ } ++ ++@@ -1965,13 +1965,13 @@ ++ StylingContext *context = Context(L); ++ context->Forward(); ++ context->Colourize(); ++- context->state = luaL_checkint(L, 2); +++ context->state = luaL_checkinteger(L, 2); ++ return 0; ++ } ++ ++ static int ChangeState(lua_State *L) { ++ StylingContext *context = Context(L); ++- context->state = luaL_checkint(L, 2); +++ context->state = luaL_checkinteger(L, 2); ++ return 0; ++ } ++ +diff -x '.*.swp' -Naur scite.salsa/debian/rules stackrpms/scite/debian/rules +--- scite.salsa/debian/rules 2022-04-05 09:49:25.955774896 -0400 ++++ stackrpms/scite/debian/rules 2022-04-16 12:53:11.044711225 -0400 +@@ -1,6 +1,7 @@ + #!/usr/bin/make -f + + export DEB_BUILD_MAINT_OPTIONS=hardening=+all ++#export DEB_BUILD_OPTIONS=noautodbgsym + + include /usr/share/dpkg/pkg-info.mk + BUILD_DATE ?= $(shell date --utc --date="@$(SOURCE_DATE_EPOCH)" "+%b %d %Y %T") +@@ -43,6 +44,9 @@ + mv -f $(CURDIR)/debian/scite/usr/share/scite/*.txt $(CURDIR)/debian/scite/usr/share/doc/scite/ + mv -f $(CURDIR)/debian/scite/usr/share/scite/*.jpg $(CURDIR)/debian/scite/usr/share/doc/scite/ + mv -f $(CURDIR)/debian/scite/usr/share/scite/*.png $(CURDIR)/debian/scite/usr/share/doc/scite/ ++ cp -p debian/stackrpms.lua $(CURDIR)/debian/scite/usr/share/scite/ ++ @#install -d -m0755 $(CURDIR)/debian/scite/etc/scite ++ install -D -p -m0666 debian/SciTEGlobal.properties $(CURDIR)/debian/scite/etc/scite/ + for f in $(CURDIR)/debian/scite/usr/share/doc/scite/*.html; do \ + dh_link usr/share/doc/scite/$$(basename $$f) usr/share/scite/$$(basename $$f); \ + done +diff -x '.*.swp' -Naur scite.salsa/debian/scite+devuan.dsc stackrpms/scite/debian/scite+devuan.dsc +--- scite.salsa/debian/scite+devuan.dsc 1969-12-31 19:00:00.000000000 -0500 ++++ stackrpms/scite/debian/scite+devuan.dsc 2022-05-31 10:34:35.666680650 -0400 +@@ -0,0 +1,17 @@ ++Format: 3.0 (quilt) ++Source: scite ++Binary: scite ++Architecture: any ++Version: 5.2.3-1+devuan ++Maintainer: B. Stack <bgstack15@gmail.com> ++Homepage: https://scintilla.org/SciTE.html ++Standards-Version: 4.6.0.1 ++Vcs-Browser: https://salsa.debian.org/debian/scite ++Vcs-Git: https://salsa.debian.org/debian/scite.git ++Build-Depends: debhelper-compat (= 13), libgtk-3-dev, libglib2.0-dev, liblua5.4-dev ++Package-List: ++ scite deb editors optional arch=any ++Files: ++ 00000000000000000000000000000000 1 scite.orig.tar.gz ++ 00000000000000000000000000000000 1 scite+devuan.debian.tar.xz ++Original-Maintainer: Michael Vogt <mvo@debian.org> +diff -x '.*.swp' -Naur scite.salsa/debian/SciTEGlobal.properties stackrpms/scite/debian/SciTEGlobal.properties +--- scite.salsa/debian/SciTEGlobal.properties 1969-12-31 19:00:00.000000000 -0500 ++++ stackrpms/scite/debian/SciTEGlobal.properties 2022-04-16 12:53:10.776708221 -0400 +@@ -0,0 +1,580 @@ ++# SciTEGlobal.properties placed by scite package for stackrpms ++# Global initialisation file for SciTE ++# For Linux, place in $prefix/share/scite ++# For Windows, place in same directory as SciTE.EXE (or Sc1.EXE) ++# Documentation at http://www.scintilla.org/SciTEDoc.html ++ ++# Globals ++ ++# Window sizes and visibility ++if PLAT_WIN ++ position.left=0 ++ position.top=0 ++if PLAT_GTK ++ position.left=5 ++ position.top=22 ++position.width=$(scale 576) ++position.height=$(scale 740) ++#position.maximize=1 ++#position.tile=1 ++#full.screen.hides.menu=1 ++#minimize.to.tray=1 ++split.vertical=0 ++#split.wide=1 ++#output.horizontal.size=200 ++#output.vertical.size=60 ++#output.initial.hide=1 ++#horizontal.scrollbar=0 ++#horizontal.scroll.width=10000 ++#horizontal.scroll.width.tracking=0 ++#output.horizontal.scrollbar=0 ++#output.horizontal.scroll.width=10000 ++#output.horizontal.scroll.width.tracking=0 ++#output.scroll=0 ++#error.select.line=1 ++#end.at.last.line=0 ++tabbar.visible=1 ++#tabbar.hide.one=1 ++#tabbar.hide.index=1 ++#tabbar.multiline=1 ++#toolbar.visible=1 ++#toolbar.usestockicons=1 ++#toolbar.large=1 ++#menubar.detachable=1 ++#undo.redo.lazy=1 ++statusbar.visible=1 ++#fileselector.width=800 ++#fileselector.height=600 ++#fileselector.show.hidden=1 ++#magnification=-1 ++#output.magnification=-1 ++ ++# Sizes and visibility in edit pane ++line.margin.visible=1 ++line.margin.width=4 ++margin.width=$(scale 16) ++fold.margin.width=$(scale 14) ++#fold.margin.colour=#FF0000 ++#fold.margin.highlight.colour=#0000FF ++#blank.margin.left=4 ++#blank.margin.right=4 ++#output.blank.margin.left=4 ++buffered.draw=1 ++#phases.draw=2 ++if PLAT_WIN ++ technology=1 ++#font.quality=3 ++#font.locale=zh-Hans ++if PLAT_MAC ++ font.quality=3 ++ ++# Element styles ++#view.eol=1 ++#control.char.symbol=. ++#representations=\x0D\x0A=\u20AA ++caret.period=500 ++view.whitespace=0 ++view.indentation.whitespace=1 ++view.indentation.guides=1 ++view.indentation.examine=3 ++highlight.indentation.guides=1 ++#caret.fore=#FF0000 ++#caret.additional.fore=#FF00DF ++#caret.additional.blinks=0 ++#caret.style=2 ++#caret.width=2 ++#caret.line.back=#FFFED83F ++#caret.line.layer=1 ++#caret.line.frame=1 ++edge.column=200 ++edge.mode=0 ++edge.colour=#C0DCC0 ++braces.check=1 ++braces.sloppy=1 ++#selection.fore=#006000 ++selection.layer=2 ++if PLAT_WINNT ++ selection.back=#00000020 ++if PLAT_GTK ++ selection.back=#0000001E ++ selection.secondary.back=#00800010 ++if PLAT_MAC ++ selection.back=#00000020 ++selection.additional.back=#00000010 ++selection.inactive.back=#00000010 ++#selection.additional.fore=#0000A0 ++#selection.inactive.fore=#00A000 ++#selection.secondary.fore=#A00000 ++selection.always.visible=1 ++#selection.rectangular.switch.mouse=1 ++#selection.multiple=0 ++#selection.additional.typing=0 ++#selection.multipaste=0 ++#virtual.space=3 ++#rectangular.selection.modifier=8 ++#whitespace.fore=#FF0000 ++#whitespace.back=#FFF0F0 ++#whitespace.size=2 ++#error.marker.fore=#0000A0 ++#error.marker.back=#DADAFF ++#error.inline=1 ++bookmark.fore=#BE0000 ++#bookmark.back=#FFFFA0 ++#bookmark.alpha= ++#bookmark.stroke.width=200 ++#bookmark.symbol=3 ++#find.mark=#0000FF ++#find.mark.indicator=style:compositionthick,colour:#FFB700,under ++#highlight.current.word=1 ++#highlight.current.word.by.style=1 ++#highlight.current.word.colour=#00D040 ++#highlight.current.word.indicator=style:roundbox,colour:#0080FF,under,outlinealpha:140,fillalpha:80 ++filter.match.indicator=style:compositionthick,colour:#FFB700,under ++#filter.match.back=#FFB00030 ++#filter.context=2 ++#hidden.line.colour=2 ++#indicators.alpha=63 ++#indicators.under=1 ++ ++# Scripting ++ext.lua.startup.script=$(SciteUserHome)/SciTEStartup.lua ++ext.lua.auto.reload=1 ++#ext.lua.reset=1 ++ ++# Checking ++are.you.sure=1 ++#are.you.sure.for.build=1 ++#save.all.for.build=1 ++#quit.on.close.last=1 ++#load.on.activate=1 ++#save.on.deactivate=1 ++#are.you.sure.on.reload=1 ++#save.on.timer=20 ++#reload.preserves.undo=1 ++#check.if.already.open=1 ++#temp.files.sync.load=1 ++default.file.ext=.cxx ++#source.default.extensions=.h|.cxx|.bat ++title.full.path=1 ++#title.show.buffers=1 ++#pathbar.visible=1 ++save.recent=1 ++save.session=1 ++#session.bookmarks=1 ++#session.folds=1 ++#save.position=1 ++#save.find=1 ++#open.dialog.in.file.directory=1 ++#strip.trailing.spaces=1 ++#ensure.final.line.end=1 ++#ensure.consistent.line.ends=1 ++#save.deletes.first=1 ++#save.check.modified.time=1 ++buffers=100 ++#buffers.zorder.switching=1 ++#api.*.cxx=d:\api\w.api ++#locale.properties=locale.de.properties ++#translation.missing=*** ++#read.only=1 ++#read.only.indicator=1 ++#background.open.size=20000 ++#background.save.size=20000 ++if PLAT_GTK ++ background.save.size=10000000 ++#max.file.size=1 ++file.size.large=100000000 ++file.size.no.styles=10000000 ++#lexilla.path=. ++ ++# Indentation ++tabsize=8 ++indent.size=8 ++use.tabs=1 ++#indent.auto=1 ++indent.automatic=1 ++indent.opening=0 ++indent.closing=0 ++#tab.indents=0 ++#backspace.unindents=0 ++ ++# Wrapping of long lines ++wrap=1 ++wrap.style= ++#cache.layout=3 ++#output.wrap=1 ++#output.cache.layout=3 ++threads.layout=16 ++#wrap.visual.flags=3 ++#wrap.visual.flags.location=3 ++#wrap.indent.mode=1 ++#wrap.visual.startindent=4 ++ ++#idle.styling=1 ++#output.idle.styling=1 ++ ++# Folding ++# enable folding, and show lines below when collapsed. ++fold=1 ++fold.compact=1 ++fold.flags=16 ++#fold.line.colour=#80800080 ++fold.symbols=1 ++#fold.fore=#000000 ++#fold.back=#808080 ++#fold.highlight=1 ++#fold.highlight.colour=#00C0C0 ++#fold.stroke.width=200 ++#fold.on.open=1 ++fold.comment=1 ++fold.preprocessor=1 ++ ++# Find and Replace ++# Internal search always available with recursive capability so use in preference to external tool ++find.command= ++# findstr is available on recent versions of Windows including 2000 ++#if PLAT_WIN ++# find.command=findstr /n /s $(find.what) $(find.files) ++#find.input=$(find.what) ++#if PLAT_GTK ++# find.command=grep --line-number "$(find.what)" $(find.files) ++find.files=*.c *.cxx *.h ++#find.in.files.close.on.find=0 ++#find.in.dot=1 ++#find.in.binary=1 ++#find.in.directory= ++#find.close.on.find=0 ++#find.replace.matchcase=1 ++#find.replace.escapes=1 ++#find.replace.regexp=1 ++#find.replace.regexp.posix=1 ++#find.replace.regexp.cpp11=1 ++#find.replace.wrap=0 ++#find.replacewith.focus=0 ++#find.replace.advanced=1 ++find.use.strip=1 ++#find.strip.incremental=1 ++#find.indicator.incremental=style:compositionthick,colour:#FFB700,under ++replace.use.strip=1 ++#replace.strip.incremental=1 ++#strip.button.height=24 ++#strip.shortcuts.enable=0 ++ ++# Behaviour ++#eol.mode=LF ++eol.auto=1 ++clear.before.execute=0 ++#vc.home.key=1 ++#wrap.aware.home.end.keys=1 ++#autocompleteword.automatic=1 ++#autocomplete.choose.single=1 ++#autocomplete.*.fillups=([ ++#autocomplete.*.start.characters=.: ++#autocomplete.*.typesep=! ++#autocomplete.fore=#80FFA0 ++#autocomplete.back=#000000 ++#autocomplete.selected.fore=#00FF40 ++#autocomplete.selected.back=#006040 ++#autocomplete.visible.item.count=15 ++ ++caret.policy.xslop=1 ++caret.policy.width=20 ++caret.policy.xstrict=0 ++caret.policy.xeven=0 ++caret.policy.xjumps=0 ++caret.policy.yslop=1 ++caret.policy.lines=1 ++caret.policy.ystrict=1 ++caret.policy.yeven=1 ++caret.policy.yjumps=0 ++#visible.policy.strict=1 ++#visible.policy.slop=1 ++#visible.policy.lines=4 ++#time.commands=1 ++#caret.sticky=1 ++#properties.directory.enable=1 ++#editor.config.enable=1 ++#save.path.suggestion=$(SciteUserHome)\note_$(TimeStamp).txt ++ ++# Status Bar ++statusbar.number=4 ++statusbar.text.1=\ ++li=$(LineNumber) co=$(ColumnNumber) $(OverType) ($(EOLMode)) $(FileAttr) ++statusbar.text.2=\ ++$(BufferLength) chars in $(NbOfLines) lines. Sel: $(SelLength) chars. ++statusbar.text.3=\ ++Now is: Date=$(CurrentDate) Time=$(CurrentTime) ++statusbar.text.4=\ ++$(FileNameExt) : $(FileDate) - $(FileTime) | $(FileAttr) ++ ++if PLAT_WIN ++ command.scite.help="file://$(SciteDefaultHome)\SciTEDoc.html" ++ command.scite.help.subsystem=2 ++if PLAT_GTK ++ command.scite.help=xdg-open "file://$(SciteDefaultHome)/SciTEDoc.html" ++ ++# Internationalisation ++# Japanese input code page 932 and ShiftJIS character set 128 ++#code.page=932 ++#character.set=128 ++# Unicode ++code.page=65001 ++#character.set=204 ++#command.discover.properties=python /home/user/FileDetect.py "$(FilePath)" ++# Forward LC_CTYPE to setlocale which may affect language support. ++#LC_CTYPE=en_US.UTF-8 ++if PLAT_GTK ++ output.code.page=65001 ++if PLAT_MAC ++ output.code.page=65001 ++#ime.interaction=1 ++#ime.autocomplete=1 ++#accessibility=0 ++ ++# Export ++#export.keep.ext=1 ++export.html.wysiwyg=1 ++#export.html.tabs=1 ++#export.html.folding=1 ++export.html.styleused=1 ++#export.html.title.fullpath=1 ++#export.rtf.tabs=1 ++#export.rtf.font.face=Arial ++#export.rtf.font.size=9 ++#export.rtf.tabsize=8 ++#export.rtf.wysiwyg=0 ++#export.tex.title.fullpath=1 ++# Magnification (added to default screen font size) ++export.pdf.magnification=0 ++# Font: Courier, Helvetica or Times (Courier line-wraps) ++export.pdf.font=Helvetica ++# Page size (in points): width, height ++# E.g. Letter 612,792; A4 595,842; maximum 14400,14400 ++export.pdf.pagesize=595,842 ++# Margins (in points): left, right, top, bottom ++export.pdf.margins=72,72,72,72 ++export.xml.collapse.spaces=1 ++export.xml.collapse.lines=1 ++ ++# Define values for use in the imported properties files ++chars.alpha=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ++chars.numeric=0123456789 ++chars.accented= ++# This is a better set for Russian: ++#chars.accented=娸 ++ ++# The open.filter setting is used in the file selector which has a menu of filters to apply ++# to the types of files seen when opening. ++ ++# Gather all settings with "*source.patterns." prefix from all active .properties files ++source.files=$(star *source.patterns.) ++source.all.filter=All Source|$(source.files)| ++ ++# Each platform has a different idea of the most important filters ++if PLAT_WIN ++ all.files=All Files (*.*)|*.*| ++ top.filters=$(source.all.filter)$(all.files) ++if PLAT_GTK ++ all.files=All Files (*)|*|Hidden Files (.*)|.*| ++ top.filters=$(all.files)$(source.all.filter) ++# As macOS only greys out filtered files, show all as default ++if PLAT_MAC ++ all.files=All Files (*.*)|*.*| ++ top.filters=$(all.files)$(source.all.filter) ++ ++# Gather all settings with "*filter." prefix from all active .properties files ++list.filters=$(star *filter.) ++ ++open.filter=$(top.filters)$(list.filters) ++ ++#save.filter=$(open.filter) ++ ++# Give symbolic names to the set of fonts used in the standard styles. ++if PLAT_WIN ++ font.base=font:Verdana,size:9.4 ++ font.small=font:Verdana,size:8 ++ font.comment=font:Georgia,size:10.1 ++ font.code.comment.box=$(font.comment) ++ font.code.comment.line=$(font.comment) ++ font.code.comment.doc=$(font.comment) ++ font.code.comment.nested=$(font.comment) ++ font.text=font:Times New Roman,size:11 ++ font.text.comment=font:Verdana,size:9 ++ font.embedded.base=font:Verdana,size:9 ++ font.embedded.comment=font:Comic Sans MS,size:8 ++ font.monospace=font:Consolas,size:8.9 ++ font.monospace.small=font:Consolas,size:8 ++ font.vbs=font:Candara,size:10 ++if PLAT_GTK ++ font.base=font:DejaVu Sans,size:9 ++ font.small=font:DejaVu Sans,size:8 ++ font.comment=font:DejaVu Serif,size:9 ++ font.code.comment.box=$(font.comment) ++ font.code.comment.line=$(font.comment) ++ font.code.comment.doc=$(font.comment) ++ font.code.comment.nested=$(font.comment) ++ font.text=font:DejaVu Serif,size:10 ++ font.text.comment=font:Serif,size:9 ++ font.embedded.base=font:Serif,size:9 ++ font.embedded.comment=font:Serif,size:9 ++ font.monospace=font:DejaVu Sans Mono,size:9 ++ font.monospace.small=font:DejaVu Sans Mono,size:8 ++ font.vbs=font:DejaVu Sans Mono,size:9 ++if PLAT_MAC ++ font.base=font:Verdana,size:12 ++ font.small=font:Verdana,size:10 ++ font.comment=font:Georgia,size:13 ++ font.code.comment.box=$(font.comment) ++ font.code.comment.line=$(font.comment) ++ font.code.comment.doc=$(font.comment) ++ font.code.comment.nested=$(font.comment) ++ font.text=font:Times New Roman,size:13 ++ font.text.comment=font:Verdana,size:11 ++ font.embedded.base=font:Verdana,size:11 ++ font.embedded.comment=font:Comic Sans MS,size:10 ++ font.monospace=font:Menlo,size:12 ++ font.monospace.small=font:Menlo,size:10 ++ font.vbs=font:Lucida Sans Unicode,size:12 ++font.js=$(font.comment) ++font.monospaced.list=Consolas;Courier New;DejaVu Sans Mono;Menlo ++ ++# Give symbolic names to the set of colours used in the standard styles. ++colour.code.comment.box=fore:#007F00 ++colour.code.comment.line=fore:#007F00 ++colour.code.comment.doc=fore:#3F703F ++colour.code.comment.nested=fore:#A0C0A0 ++colour.text.comment=fore:#0000FF,back:#D0F0D0 ++colour.other.comment=fore:#007F00 ++colour.embedded.comment=back:#E0EEFF ++colour.embedded.js=back:#F0F0FF ++colour.notused=back:#FF0000 ++ ++colour.number=fore:#007F7F ++colour.keyword=fore:#00007F ++colour.string=fore:#7F007F ++colour.char=fore:#7F007F ++colour.operator=fore:#000000 ++colour.preproc=fore:#7F7F00 ++colour.error=fore:#FFFF00,back:#FF0000 ++ ++# To de-emphasize inactive code set traits.inactive ++#traits.inactive=,back:#F0F0F0,eolfilled ++traits.inactive= ++ ++# Global default styles for all languages ++# Default ++style.*.32=$(font.base) ++# Line number ++style.*.33=back:#C0C0C0,$(font.base) ++# Brace highlight ++style.*.34=fore:#0000FF,bold ++# Brace incomplete highlight ++style.*.35=fore:#FF0000,bold ++# Control characters ++style.*.36= ++# Indentation guides ++style.*.37=fore:#C0C0C0,back:#FFFFFF ++ ++# Printing ++#print.colour.mode=1 ++print.magnification=-1 ++# Windows-only setup: left, right, top, bottom margins, in local units: ++# hundredths of millimeters or thousandths of inches ++print.margins=1500,1000,1000,1500 ++# Header/footer: ++print.header.format=$(FileNameExt) -- Printed on $(CurrentDate), $(CurrentTime) -- Page $(CurrentPage) ++print.footer.format=$(FilePath) -- File date: $(FileDate) -- File time: $(FileTime) ++# Header/footer style ++print.header.style=font:Arial,size:12,bold ++print.footer.style=font:Arial Narrow,size:10,italics ++ ++# Experimental undocumented settings ++#bidirectional=1 ++ ++# Warnings - only works on Windows and needs to be pointed at files on machine ++#if PLAT_WIN ++# warning.findwrapped=100,E:\Windows\Media\SFX\Boing.wav ++# warning.notfound=0,Effect.wav ++# warning.wrongfile=0,Glass.wav ++# warning.executeok=0,Fanfare.wav ++# warning.executeko=100,GlassBreak.wav ++# warning.nootherbookmark=100,Boing2.wav ++ ++#create.hidden.console=1 ++ ++# Define the Lexer menu, ++# Each item contains three parts: menu string | file extension | key ++# The only keys allowed currently are based on F-keys and alphabetic keys and look like ++# [Ctrl+][Shift+][Fn|a] such as F12 or Ctrl+Shift+D. ++# A '&' may be placed before a letter to be used as an accelerator. This does not work on GTK+. ++ ++keyText=Shift+F11 ++keyMake=Ctrl+Shift+F11 ++keyHTML=F12 ++keyXML=Shift+F12 ++keyIndent=Ctrl+Shift+F12 ++# On macOS, F11 is used by Expose, F12 by Dashbard ++if PLAT_MAC ++ os.x.home.end.keys=1 ++ keyText=Shift+F13 ++ keyMake=Ctrl+Shift+F13 ++ keyHTML=Ctrl+Shift+F14 ++ keyXML=Shift+F14 ++ keyIndent= ++ ++# Gather all settings with "*language." prefix from all active .properties files ++menu.language=$(star *language.) ++ ++# User defined key commands ++user.shortcuts=\ ++Ctrl+Shift+V|IDM_PASTEANDDOWN|\ ++Ctrl+PageUp|IDM_PREVFILE|\ ++Ctrl+PageDown|IDM_NEXTFILE| ++ ++#KeypadPlus|IDM_EXPAND|\ ++#KeypadMinus|IDM_BLOCK_COMMENT| ++ ++#user.context.menu=\ ++#||\ ++#Next File|IDM_NEXTFILE|\ ++#Prev File|IDM_PREVFILE| ++ ++# To keep menus short, these .properties files are not loaded by default. ++imports.exclude=abaqus abbrev ada asl asn1 ave avs baan blitzbasic \ ++bullant caml cil cmake cobol coffeescript csound d dataflex ecl eiffel \ ++Embedded erlang escript flagship forth fortran freebasic fsharp gap \ ++haskell hex kix latex lisp lot lout matlab maxima metapost mmixal \ ++modula3 nim nimrod opal oscript pascal pov powerpro ps purebasic r raku \ ++rebol ruby sas scriptol smalltalk sorcins specman spice tacl tal tex \ ++txt2tags verilog vhdl visualprolog ++# The set of imports allowed can be set with ++#imports.include=ave ++ ++ext.lua.startup.script=$(SciteDefaultHome)/stackrpms.lua ++command.name.8.*=Emit &UTF8 Unicode ++command.subsystem.8.*=3 ++command.8.*=emitUnicode ++command.mode.8.*=savebefore:no ++command.shortcut.8.*=Ctrl+U ++command.name.9.*=Insert &Date AH ++command.subsystem.9.*=3 ++command.9.*=InsertDateAH ++command.mode.9.*=savebefore:no ++command.shortcut.9.*=F5 ++command.name.10.*=Insert Date iso8601 ++command.subsystem.10.*=3 ++command.10.*=InsertDateIso ++command.mode.10.*=savebefore:no ++command.shortcut.10.*=Shift+F5 ++ ++# Import all the language specific properties files in this directory ++import * ++ ++# bgstack15 improvements, in addition to a few sprinkled above. ++font.base=$(font.monospace) ++font.small=$(font.monospace) ++font.comment=$(font.monospace) ++font.text=$(font.monospace) ++font.text.comment=$(font.monospace) ++font.embedded.base=$(font.monospace) ++font.embedded.comment=$(font.monospace) ++font.vbs=$(font.monospace) +diff -x '.*.swp' -Naur scite.salsa/debian/source/lintian-overrides stackrpms/scite/debian/source/lintian-overrides +--- scite.salsa/debian/source/lintian-overrides 1969-12-31 19:00:00.000000000 -0500 ++++ stackrpms/scite/debian/source/lintian-overrides 2022-04-16 12:53:11.104711898 -0400 +@@ -0,0 +1,3 @@ ++national-encoding debian/SciTEGlobal.properties ++invalid-field-for-derivative ++invalid-devuan-version +diff -x '.*.swp' -Naur scite.salsa/debian/stackrpms.lua stackrpms/scite/debian/stackrpms.lua +--- scite.salsa/debian/stackrpms.lua 1969-12-31 19:00:00.000000000 -0500 ++++ stackrpms/scite/debian/stackrpms.lua 2022-04-16 12:53:11.104711898 -0400 +@@ -0,0 +1,278 @@ ++-- DESCRIPTION: ++-- Unicode hexadecimal table: https://example.com/copied/unicode.html ++-- Source: http://lua-users.org/wiki/SciteUnicodeInput http://sourceforge.net/projects/emitunicodeinscite/ ++-- Future reference: http://lua-users.org/wiki/SciteScripts ++-- ++-- This lua script adds utf8 unicode input, to the scite text editor. ++-- ++-- The scite text editor should be set to use the UTF-8 encoding ++-- , because this script adds utf8, into the text buffer of the ++-- scite editor. Select File->Encoding->UTF-8, from the ++-- menu bar of scite. ++-- ++-- For example, it will be possible that you type 2200 CTRL+U ++-- , and 2200 is replaced to ∀; (U+2200), in the scite editor. ++-- ++-- ______________________________________________________________________________ ++-- ++-- INSTALL: ++-- ++-- To have scite running this script each time you press Ctrl+U, add next lines ++-- into your ~/SciTEUser.properties file, where ~ is your home directory. ++-- FILE ~/SciTEUser.properties: ++--[[ ++ext.lua.startup.script=$(SciteUserHome)/emitUtf8UnicodeIntoTheSciteEditor.lua ++command.name.8.*=Emit UTF8 Unicode ++command.subsystem.8.*=3 ++command.8.*=emitUtf8UnicodeIntoTheSciteEditor ++command.mode.8.*=savebefore:no ++command.shortcut.8.*=Ctrl+U ++--]] ++-- ______________________________________________________________________________ ++-- THE LUA CODE: ++-- ++-- Next is the definition of the lua function that is called by scite ++-- when CTRL+U is pressed, to replace unicode endpoint encoding, with ++-- utf8 encoding of the unicode endpoint. ++-- ______________________________________________________________________________ ++ ++ ++-- Computes the utf8 encoding for a unicode codepoint u ++-- , when 0 <= u <= 0x7f ++-- ++-- @param unicodeValue the unicode codepoint u ++-- ++-- @return the utf8 encoding of the unicode codepoint u ++function case1UnicodeToUtf8(unicodeValue) ++ --print('case 1') ++ local u = unicodeValue ++ local byte0 = (u % 0x80) ++ local utf8 = string.char(byte0) ++ return utf8 ++end ++ ++-- ______________________________________________________________________________ ++-- Computes the utf8 encoding for a unicode codepoint u ++-- , when 0x80 <= u <= 0x7ff ++-- ++-- @param unicodeValue the unicode codepoint u ++-- ++-- @return the utf8 encoding of the unicode codepoint u ++function case2UnicodeToUtf8(unicodeValue) ++ --print('case 2') ++ local u = unicodeValue ++ local byte1 = (0x80 + (u % 0x40) ) ++ u = math.floor(u / 0x40) ++ local byte0 = (0xc0 + (u % 0x20) ) ++ local utf8 = string.char(byte0, byte1) ++ return utf8 ++end ++ ++-- ______________________________________________________________________________ ++-- Computes the utf8 encoding for a unicode codepoint u ++-- , when 0x800 <= u <= 0xffff. ++-- ++-- @param unicodeValue the unicode codepoint u ++-- ++-- @return the utf8 encoding of the unicode codepoint u ++function case3UnicodeToUtf8(unicodeValue) ++ local u = unicodeValue ++ local byte2 = (0x80 + (u % 0x40)) ++ -- print('byte2: '..byte2) ++ u = math.floor(u / 0x40) ++ local byte1 = (0x80 + (u % 0x40)) ++ -- print('byte1: '..byte1) ++ u = math.floor(u / 0x40) ++ local byte0 = (0xe0 + (u % 0x10)) ++ -- print('byte0: '..byte0) ++ local utf8 = string.char(byte0, byte1, byte2) ++ return utf8 ++end ++ ++-- ______________________________________________________________________________ ++-- Computes the utf8 encoding for a unicode codepoint u ++-- , when 0x10000 <= u <= 0x10ffff. ++-- ++-- @param unicodeValue the unicode codepoint u ++-- ++-- @return the utf8 encoding of the unicode codepoint u ++function case4UnicodeToUtf8(unicodeValue) ++ local u = unicodeValue ++ local byte3 = (0x80 + (u % 0x40)) ++ u = math.floor(u / 0x40) ++ local byte2 = (0x80 + (u % 0x40)) ++ u = math.floor(u / 0x40) ++ local byte1 = (0x80 + (u % 0x40)) ++ u = math.floor(u / 0x40) ++ local byte0 = (0xf0 + (u % 0x8)) ++ local utf8 = string.char(byte0, byte1, byte2, byte3) ++ return utf8 ++end ++ ++-- ______________________________________________________________________________ ++-- Converts a unicode integer value, into a utf8 string value. ++-- ++-- The unicode integer value is an integer that ++-- is greater than or equal to zero. ++-- ++-- The utf8 string value is a string that is a sequence of ++-- 8 bits characters that give the utf8 encoding of the ++-- unicode codepoint given by the unicode integer value. ++-- ++-- @param unicodeValue the unicode integer value; ++-- a unicode codepoint ++-- ++-- @return the utf8 encoding of the unicode codepoint ++-- provided by the unicodeValue input argument ++function unicodeToUtf8(unicodeValue) ++ local u = unicodeValue ++ if ((0x800 <= u) and (0xffff >= u)) ++ then ++ return case3UnicodeToUtf8(u) ++ end ++ if ((0x80 <= u) and (0x7fff >= u)) ++ then ++ return case2UnicodeToUtf8(u) ++ end ++ if ((0x0 <= u) and (0x7f >= u)) ++ then ++ return case1UnicodeToUtf8(u) ++ end ++ if( (0x10000 <= u) and (0x10ffff >= u) ) ++ then ++ return case4UnicodeToUtf8(u) ++ end ++ return nil ++end ++ ++-- ______________________________________________________________________________ ++-- Peeks (reads) the character at position i, in the Scite Editor. ++-- If the character is the ascii name of a hex digit, it returns ++-- the corresponding hex digit, otherwise it returns nil. ++-- ++-- @param i position in the Scite Editor ++-- @return hex digit at position i, or nil ++function peekHexdigit(i) ++ local e = editor ++ local asciiCode = e.CharAt[i] ++ if((0>asciiCode) or (0xff < asciiCode)) ++ then ++ return nil ++ end ++ local charValue = string.char(asciiCode) ++ local hexDigit = tonumber(charValue,0x10) ++ return hexDigit -- may be nil ++end ++ ++-- ______________________________________________________________________________ ++-- Reads the sequence of maximum length at most 5, at the left of the cursor ++-- in the Scite Editor. ++-- Encodes the longest suffix of this sequence, that is a hex number, into ++-- the utf encoding of this hex number. ++-- Replaces this longest suffix, with the utf8 sequence. ++-- ++-- @return true a suffix of length greater than zero, at most 5 existed ++-- and was replaced with the utf8 encoding of the number it ++-- represented ++-- ++-- false , when no such suffix existed ++function emitUtf8Unicode() ++ local e = editor ++ local n = e.TextLength ++ local i = e.CurrentPos ++ local maxlen = 5 ++ if ((0 == n) or (1 > i)) ++ then ++ return nil -- Success. No request ++ end ++ local len = 1 ++ local len2 = 0 ++ local u = 0 ++ local thePower = 1 ++ while ( (len <= maxlen) ++ and (0 <= (i - len) ) ++ ) ++ do ++ local hexDigit = peekHexdigit(i-len,u) ++ if (nil == hexDigit) ++ then ++ break -- out of the while loop ++ end ++ u = ( u + (thePower * hexDigit) ) ++ thePower = (0x10 * thePower ) ++ len2 = len ++ --print("u: "..u) ++ len = len + 1 ++ end ++ if (0 == len2) ++ then ++ return nil -- Failure. No unicode ++ end ++ utf8 = unicodeToUtf8(u) ++ if(nil == utf8) ++ then ++ return nil -- Failure. Unicode to utf8 conversion failed. ++ end ++ e:SetSel(i-len2,i) ++ e:ReplaceSel(utf8) ++ --print("utf8: "..utf8) ++ return true -- Success. ++end ++ ++-- ______________________________________________________________________________ ++-- Emits utf8 encoding in the place of the unicode codepoint ++-- in the editor, at the left of the cursor. ++-- ++-- Writes a message to the Output pane, if no codepoint existed ++-- at the left of the cursor. ++-- ++function emitUnicode() ++ local ok = emitUtf8Unicode() ++ if not ok ++ then ++ --print("Failed to encode unicode into text editor.") ++ end ++end ++ ++-- ______________________________________________________________________________ ++-- ++-- Following web pages were useful in writing the lua scite script. ++-- ++-- http://lua-users.org/wiki/UsingLuaWithScite ++-- http://www.scintilla.org/PaneAPI.html ++-- http://www.lua.org/manual/5.1/manual.html#pdf-tonumber ++-- https://en.wikipedia.org/wiki/UTF-8 ++-- ++-- http://lua-users.org/lists/lua-l/2007-08/msg00276.html ++-- http://keplerproject.github.io/luadoc/ ++ ++-- Reference: http://lua-users.org/wiki/SciteInsertDate ++-- Tags used by os.date: ++-- %a abbreviated weekday name (e.g., Wed) ++-- %A full weekday name (e.g., Wednesday) ++-- %b abbreviated month name (e.g., Sep) ++-- %B full month name (e.g., September) ++-- %c date and time (e.g., 09/16/98 23:48:10) ++-- %d day of the month (16) [01-31] ++-- %H hour, using a 24-hour clock (23) [00-23] ++-- %I hour, using a 12-hour clock (11) [01-12] ++-- %M minute (48) [00-59] ++-- %m month (09) [01-12] ++-- %p either "am" or "pm" (pm) ++-- %S second (10) [00-61] ++-- %w weekday (3) [0-6 = Sunday-Saturday] ++-- %x date (e.g., 09/16/98) ++-- %X time (e.g., 23:48:10) ++-- %Y full year (1998) ++-- %y two-digit year (98) [00-99] ++-- %% the character '%' ++function InsertDateAH() ++ local dow = tostring(os.date("%w") + 1) ++ local d1 = os.date("%Y-%m-%d-") ++ local d2 = os.date(" %H:%M") ++ editor:AddText(d1..dow..d2) ++end ++function InsertDateIso() ++ local date_string = os.date("%Y-%m-%dT%T") ++ editor:AddText(date_string) ++end |