summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--freefilesync/00_allow_parallel_ops.patch (renamed from freefilesync/ffs_allow_parallel_ops.patch)16
-rw-r--r--freefilesync/01_no_check_updates.patch (renamed from freefilesync/ffs_no_check_updates.patch)56
-rw-r--r--freefilesync/02_no_wx311.patch138
-rw-r--r--freefilesync/03_sftp.patch (renamed from freefilesync/ffs_sftp.patch)0
-rw-r--r--freefilesync/04_revert_zenju_aggressive_upstreamisms.patch (renamed from freefilesync/revert_zenju_aggressive_upstreamisms.patch)78
-rw-r--r--freefilesync/05_traditional_view.patch (renamed from freefilesync/ffs_traditional_view.patch)77
-rw-r--r--freefilesync/06_icon_loader.patch (renamed from freefilesync/ffs_icon_loader.patch)15
-rw-r--r--freefilesync/07_libssh2.patch (renamed from freefilesync/ffs_libssh2.patch)0
-rw-r--r--freefilesync/_service28
-rw-r--r--freefilesync/debian/changelog41
-rw-r--r--freefilesync/debian/control8
-rw-r--r--freefilesync/debian/freefilesync+devuan.dsc4
-rw-r--r--freefilesync/debian/patches/ffs_allow_parallel_ops.patch16
-rw-r--r--freefilesync/debian/patches/ffs_devuan.patch62
-rw-r--r--freefilesync/debian/patches/ffs_gcc.patch10
-rw-r--r--freefilesync/debian/patches/ffs_icon_loader.patch15
-rw-r--r--freefilesync/debian/patches/ffs_no_check_updates.patch56
-rw-r--r--freefilesync/debian/patches/ffs_no_wx311.patch79
-rw-r--r--freefilesync/debian/patches/ffs_traditional_view.patch77
-rw-r--r--freefilesync/debian/patches/revert_zenju_aggressive_upstreamisms.patch68
-rw-r--r--freefilesync/debian/patches/series2
-rw-r--r--freefilesync/ffs_distro_el6_el7.patch (renamed from freefilesync/ffs_el.patch)0
-rw-r--r--freefilesync/ffs_distro_fedora.patch (renamed from freefilesync/ffs_fedora.patch)63
-rw-r--r--freefilesync/ffs_el6_el7_bit.patch (renamed from freefilesync/ffs_bit.patch)0
-rw-r--r--freefilesync/ffs_el6_el7_no_eraseif.patch (renamed from freefilesync/ffs_no_eraseif.patch)0
-rw-r--r--freefilesync/ffs_libcurl_7.61.1.patch79
-rw-r--r--freefilesync/ffs_libcurl_7.71.1.patch (renamed from freefilesync/ffs_curl.patch)0
-rw-r--r--freefilesync/ffs_libcurl_7.79.1.patch39
-rw-r--r--freefilesync/ffs_no_gcc12.patch63
-rw-r--r--freefilesync/ffs_no_wx311.patch65
-rw-r--r--freefilesync/ffs_openssl.patch4
-rw-r--r--freefilesync/freefilesync.spec173
-rw-r--r--librewolf/debian/bgstack15-librewolf-prefs.js121
-rw-r--r--librewolf/debian/browser.install.in3
-rw-r--r--librewolf/debian/browser.links.in1
-rw-r--r--librewolf/debian/browser.mozconfig.in4
-rw-r--r--librewolf/debian/changelog38
-rw-r--r--librewolf/debian/control10
-rw-r--r--librewolf/debian/control.in4
-rw-r--r--librewolf/debian/librewolf.dsc4
-rwxr-xr-xlibrewolf/debian/librewolf_settings/README.md10
-rw-r--r--librewolf/debian/librewolf_settings/distribution/policies.json2
-rw-r--r--librewolf/debian/librewolf_settings/docs/Changelog.md93
-rwxr-xr-xlibrewolf/debian/librewolf_settings/librewolf.cfg23
-rw-r--r--librewolf/debian/patches/debian-hacks/Add-another-preferences-directory-for-applications-p.patch6
-rw-r--r--librewolf/debian/patches/debian-hacks/Avoid-wrong-sessionstore-data-to-keep-windows-out-of.patch16
-rw-r--r--librewolf/debian/patches/debian-hacks/Relax-MSRV-to-1.56.0.patch32
-rw-r--r--librewolf/debian/patches/debian-hacks/Use-the-Mozilla-Location-Service-key-when-the-Google.patch4
-rw-r--r--librewolf/debian/patches/fixes/Allow-.js-preference-files-to-set-locked-prefs-with-.patch2
-rw-r--r--librewolf/debian/patches/fixes/Bug-1738845-Add-webrtc-configs-for-arm-and-ppc64-lin.patch60
-rw-r--r--librewolf/debian/patches/fixes/Bug-1756347-part-1-Work-around-a-GCC-issue-with-gene.patch235
-rw-r--r--librewolf/debian/patches/librewolf/aboutLogos.patch17
-rw-r--r--librewolf/debian/patches/librewolf/bootstrap-without-vcs.patch (renamed from librewolf/debian/patches/librewolf/bootstrap-without-vcs2.patch)66
-rw-r--r--librewolf/debian/patches/librewolf/context-menu.patch25
-rw-r--r--librewolf/debian/patches/librewolf/handlers.patch232
-rw-r--r--librewolf/debian/patches/librewolf/hide-default-browser.patch8
-rw-r--r--librewolf/debian/patches/librewolf/hide-passwordmgr.patch29
-rw-r--r--librewolf/debian/patches/librewolf/librewolf-pref-pane.patch180
-rw-r--r--librewolf/debian/patches/librewolf/lw-logo-devtools.patch37
-rw-r--r--librewolf/debian/patches/librewolf/pref-naming.patch14
-rw-r--r--librewolf/debian/patches/librewolf/remap-links.patch156
-rw-r--r--librewolf/debian/patches/librewolf/remove_addons.patch.orig0
-rw-r--r--librewolf/debian/patches/librewolf/remove_addons.patch.rej12
-rw-r--r--librewolf/debian/patches/librewolf/stop-undesired-requests.patch40
-rw-r--r--librewolf/debian/patches/librewolf/website-appearance-ui-rfp.patch52
-rw-r--r--librewolf/debian/patches/porting/NSS-Fix-FTBFS-on-Hurd-because-of-MAXPATHLEN.patch2
-rw-r--r--librewolf/debian/patches/prefs/Don-t-auto-disable-extensions-in-system-directories.patch2
-rw-r--r--librewolf/debian/patches/prefs/Set-DPI-to-system-settings.patch26
-rw-r--r--librewolf/debian/patches/series11
-rwxr-xr-xlibrewolf/debian/rules2
-rw-r--r--librewolf/debian/source/include-binaries3
-rw-r--r--librewolf/debian/uBlock0@raymondhill.net.xpibin2961920 -> 3021270 bytes
-rw-r--r--librewolf/stackrpms-librewolf-100.0.2.diff441
-rw-r--r--librewolf/stackrpms-librewolf-98.0.diff486
-rw-r--r--newmoon/debian/changelog54
-rw-r--r--newmoon/debian/control7
-rw-r--r--newmoon/debian/mozconfig30
-rw-r--r--newmoon/debian/newmoon+devuan.dsc4
-rw-r--r--newmoon/debian/patches/revert-mach-file.patch71
-rw-r--r--newmoon/debian/patches/series2
-rw-r--r--newmoon/newmoon-mozconfig14
-rw-r--r--newmoon/newmoon.spec30
-rw-r--r--newmoon/revert-mach-file.patch71
-rw-r--r--notepadpp/debian/changelog64
-rw-r--r--scite-fedora/0007-Build-with-Debian-packaged-Lua.patch80
-rw-r--r--scite-fedora/README.md9
-rw-r--r--scite-fedora/scite.spec8
-rw-r--r--scite-fedora/use-lua5.4.4.patch139
-rw-r--r--scite/debian/changelog11
-rw-r--r--scite/debian/patches/use-lua5.4.4.patch60
-rw-r--r--scite/debian/scite+devuan.dsc2
-rw-r--r--scite/stackrpms-2022-04-05.diff539
-rw-r--r--scite/stackrpms-5.2.3-1.diff1163
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
index 92abd2e..b7ea471 100644
--- a/librewolf/debian/uBlock0@raymondhill.net.xpi
+++ b/librewolf/debian/uBlock0@raymondhill.net.xpi
Binary files differ
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 &#8704;; (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 &#8704;; (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
bgstack15