summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgrizzlyuser <grizzlyuser@protonmail.com>2022-08-28 21:47:42 +0200
committerbill-auger <mr.j.spam.me@gmail.com>2022-09-03 19:05:45 -0400
commit89875c1c8ce5fbebb583c93b92890561d9ba0011 (patch)
tree03feed085b2221df9d5fffb782352478de9a100d
parent363a99c93f7ae12986c9da8d318558e5bffe214b (diff)
libre/iceweasel: 104.0-1.parabola1
-rw-r--r--libre/iceweasel/9001-FSDG-sync-remote-settings-with-local-dump.patch178
-rw-r--r--libre/iceweasel/PKGBUILD12
-rw-r--r--libre/iceweasel/arc4random.diff33
3 files changed, 138 insertions, 85 deletions
diff --git a/libre/iceweasel/9001-FSDG-sync-remote-settings-with-local-dump.patch b/libre/iceweasel/9001-FSDG-sync-remote-settings-with-local-dump.patch
index 6df6152c4..2b77e15ed 100644
--- a/libre/iceweasel/9001-FSDG-sync-remote-settings-with-local-dump.patch
+++ b/libre/iceweasel/9001-FSDG-sync-remote-settings-with-local-dump.patch
@@ -1,4 +1,4 @@
-From e63cc6359790ab8d7139bf9cdf8e3b527ba780e6 Mon Sep 17 00:00:00 2001
+From 07801d1961effd9182c80a990a23f338e3972efb Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Wed, 30 Dec 2020 17:20:39 +0200
Subject: [PATCH 01/13] Point to local omni.ja files, not remote server
@@ -26,18 +26,19 @@ If necessary, missing files can be added later.
.../newtab/data/content/activity-stream.bundle.js | 2 +-
services/settings/Utils.jsm | 2 +-
.../periodic-updates/scripts/periodic_file_updates.sh | 2 +-
- toolkit/components/search/SearchUtils.jsm | 8 ++++----
+ .../components/backgroundtasks/BackgroundTask_message.jsm | 4 ++--
+ toolkit/components/search/SearchUtils.sys.mjs | 8 ++++----
toolkit/components/search/docs/DefaultSearchEngines.rst | 2 +-
.../components/search/docs/SearchEngineConfiguration.rst | 2 +-
toolkit/modules/AppConstants.jsm | 4 ++--
toolkit/mozapps/defaultagent/RemoteSettings.cpp | 2 +-
- 9 files changed, 13 insertions(+), 13 deletions(-)
+ 10 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/browser/components/newtab/content-src/components/ASRouterAdmin/ASRouterAdmin.jsx b/browser/components/newtab/content-src/components/ASRouterAdmin/ASRouterAdmin.jsx
-index 0a9da8d804..fdc387aa63 100644
+index e663fbd32b..a7b7a1994f 100644
--- a/browser/components/newtab/content-src/components/ASRouterAdmin/ASRouterAdmin.jsx
+++ b/browser/components/newtab/content-src/components/ASRouterAdmin/ASRouterAdmin.jsx
-@@ -1226,7 +1226,7 @@ export class ASRouterAdminInner extends React.PureComponent {
+@@ -1116,7 +1116,7 @@ export class ASRouterAdminInner extends React.PureComponent {
<a
className="providerUrl"
target="_blank"
@@ -47,10 +48,10 @@ index 0a9da8d804..fdc387aa63 100644
>
nimbus-desktop-experiments
diff --git a/browser/components/newtab/data/content/activity-stream.bundle.js b/browser/components/newtab/data/content/activity-stream.bundle.js
-index cb7c26e729..696813dd53 100644
+index 938b44f87b..cdfd5b8589 100644
--- a/browser/components/newtab/data/content/activity-stream.bundle.js
+++ b/browser/components/newtab/data/content/activity-stream.bundle.js
-@@ -1576,7 +1576,7 @@ class ASRouterAdminInner extends (external_React_default()).PureComponent {
+@@ -1487,7 +1487,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",
@@ -60,10 +61,10 @@ index cb7c26e729..696813dd53 100644
}, "nimbus-desktop-experiments"), ")");
}
diff --git a/services/settings/Utils.jsm b/services/settings/Utils.jsm
-index 23d6bf1a20..6f87bfa812 100644
+index a8b0c67ce1..9761486718 100644
--- a/services/settings/Utils.jsm
+++ b/services/settings/Utils.jsm
-@@ -108,7 +108,7 @@ var Utils = {
+@@ -107,7 +107,7 @@ var Utils = {
: AppConstants.REMOTE_SETTINGS_SERVER_URL;
},
@@ -73,7 +74,7 @@ index 23d6bf1a20..6f87bfa812 100644
/**
* Logger instance.
diff --git a/taskcluster/docker/periodic-updates/scripts/periodic_file_updates.sh b/taskcluster/docker/periodic-updates/scripts/periodic_file_updates.sh
-index 3bc70462c4..dc9592c9fa 100755
+index f177a1440c..c41b0beece 100755
--- a/taskcluster/docker/periodic-updates/scripts/periodic_file_updates.sh
+++ b/taskcluster/docker/periodic-updates/scripts/periodic_file_updates.sh
@@ -285,7 +285,7 @@ function compare_suffix_lists {
@@ -85,11 +86,26 @@ index 3bc70462c4..dc9592c9fa 100755
# 1. List remote settings collections from server.
echo "INFO: fetch remote settings list from server"
-diff --git a/toolkit/components/search/SearchUtils.jsm b/toolkit/components/search/SearchUtils.jsm
-index a3100fac89..3720829575 100644
---- a/toolkit/components/search/SearchUtils.jsm
-+++ b/toolkit/components/search/SearchUtils.jsm
-@@ -157,13 +157,13 @@ var SearchUtils = {
+diff --git a/toolkit/components/backgroundtasks/BackgroundTask_message.jsm b/toolkit/components/backgroundtasks/BackgroundTask_message.jsm
+index 55e8f70e77..2b5167b36b 100644
+--- a/toolkit/components/backgroundtasks/BackgroundTask_message.jsm
++++ b/toolkit/components/backgroundtasks/BackgroundTask_message.jsm
+@@ -19,8 +19,8 @@
+ // environment variables still apply.
+ //
+ // --stage: use stage Remote Settings
+-// (`https://settings-cdn.stage.mozaws.net/v1`) rather than production
+-// (`https://firefox.settings.services.mozilla.com/v1`)
++// (`resource://app/defaults/settings/`) rather than production
++// (`resource://app/defaults/settings/`)
+ //
+ // --preview: enable Remote Settings and Experiment previews.
+ //
+diff --git a/toolkit/components/search/SearchUtils.sys.mjs b/toolkit/components/search/SearchUtils.sys.mjs
+index a3072d19b3..d24df38913 100644
+--- a/toolkit/components/search/SearchUtils.sys.mjs
++++ b/toolkit/components/search/SearchUtils.sys.mjs
+@@ -154,13 +154,13 @@ export var SearchUtils = {
ENGINES_URLS: {
"prod-main":
@@ -129,10 +145,10 @@ index c782f9f7c3..4d773d27c5 100644
+.. _viewed live: resource://app/defaults/settings/main/search-config.json
.. _Normandy: /toolkit/components/normandy/normandy/services.html
diff --git a/toolkit/modules/AppConstants.jsm b/toolkit/modules/AppConstants.jsm
-index 9311d06758..fd87704d83 100644
+index 15125bcca0..1b3e502730 100644
--- a/toolkit/modules/AppConstants.jsm
+++ b/toolkit/modules/AppConstants.jsm
-@@ -423,9 +423,9 @@ var AppConstants = Object.freeze({
+@@ -420,9 +420,9 @@ var AppConstants = Object.freeze({
REMOTE_SETTINGS_SERVER_URL:
#ifdef MOZ_THUNDERBIRD
@@ -158,10 +174,10 @@ index 667d9fc628..b2bf628f29 100644
#define PROD_CID "windows-default-browser-agent"
#define PROD_ID "state"
--
-2.37.1
+2.37.2
-From 1b75c1b90928d362b6b7723b57c3c0d501145807 Mon Sep 17 00:00:00 2001
+From 70b74406d004aa6a4da38d179495f767ec583e58 Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Wed, 30 Dec 2020 17:34:08 +0200
Subject: [PATCH 02/13] Remove polling triggered by push broadcasts
@@ -178,7 +194,7 @@ service.
2 files changed, 15 insertions(+), 9 deletions(-)
diff --git a/dom/push/PushBroadcastService.jsm b/dom/push/PushBroadcastService.jsm
-index 85c1bf6634..d2094ebb9c 100644
+index 80df53ee49..109d602d4a 100644
--- a/dom/push/PushBroadcastService.jsm
+++ b/dom/push/PushBroadcastService.jsm
@@ -179,6 +179,19 @@ var BroadcastService = class {
@@ -202,10 +218,10 @@ index 85c1bf6634..d2094ebb9c 100644
* Call the listeners of the specified broadcasts.
*
diff --git a/services/settings/remote-settings.js b/services/settings/remote-settings.js
-index bfe9226f88..01abff0fb1 100644
+index 44727dfc0e..ece21d09bc 100644
--- a/services/settings/remote-settings.js
+++ b/services/settings/remote-settings.js
-@@ -580,11 +580,7 @@ function remoteSettingsFunction() {
+@@ -582,11 +582,7 @@ function remoteSettingsFunction() {
moduleURI: __URI__,
symbolName: "remoteSettingsBroadcastHandler",
};
@@ -218,7 +234,7 @@ index bfe9226f88..01abff0fb1 100644
};
return remoteSettings;
-@@ -604,9 +600,6 @@ var remoteSettingsBroadcastHandler = {
+@@ -606,9 +602,6 @@ var remoteSettingsBroadcastHandler = {
`Push notification received (version=${version} phase=${phase})`
);
@@ -230,10 +246,10 @@ index bfe9226f88..01abff0fb1 100644
},
};
--
-2.37.1
+2.37.2
-From 8b367f58916f12d73a392fa629673e3a797a1a64 Mon Sep 17 00:00:00 2001
+From 9f91207a91cb895a67f90f5e2e4e3968e8bd7b0e Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Wed, 30 Dec 2020 17:41:54 +0200
Subject: [PATCH 03/13] Remove timer that triggers polling for changes
@@ -274,10 +290,10 @@ index 3bfed26ea4..807eb220ec 100644
-# see syntax https://searchfox.org/mozilla-central/rev/cc280c4be94ff8cf64a27cc9b3d6831ffa49fa45/toolkit/components/timermanager/UpdateTimerManager.jsm#155
-category update-timer RemoteSettingsComponents @mozilla.org/services/settings;1,getService,services-settings-poll-changes,services.settings.poll_interval,86400,259200
--
-2.37.1
+2.37.2
-From ea39895fee8e1dcf71b8779d33ae641a30dca384 Mon Sep 17 00:00:00 2001
+From 8f0541899626807c4cb11996b5763463f3b9dc6f Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Wed, 30 Dec 2020 17:47:41 +0200
Subject: [PATCH 04/13] Utils: fetch timestamps of each collection locally
@@ -296,10 +312,10 @@ code that expects them.
create mode 100644 services/settings/dumps/monitor/moz.build
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
-index 73a41dc25b..04c2a3fb6a 100644
+index 14e582fc61..821b1e2167 100644
--- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in
-@@ -275,6 +275,7 @@
+@@ -259,6 +259,7 @@
@RESPATH@/browser/defaults/settings/last_modified.json
@RESPATH@/browser/defaults/settings/blocklists
@RESPATH@/browser/defaults/settings/main
@@ -308,10 +324,10 @@ index 73a41dc25b..04c2a3fb6a 100644
; Warning: changing the path to channel-prefs.js can cause bugs (Bug 756325)
diff --git a/services/settings/Utils.jsm b/services/settings/Utils.jsm
-index 6f87bfa812..8f878754a5 100644
+index 9761486718..da55d60201 100644
--- a/services/settings/Utils.jsm
+++ b/services/settings/Utils.jsm
-@@ -380,7 +380,7 @@ var Utils = {
+@@ -379,7 +379,7 @@ var Utils = {
async fetchLatestChanges(serverUrl, options = {}) {
const { expectedTimestamp, lastEtag = "", filters = {} } = options;
@@ -320,7 +336,7 @@ index 6f87bfa812..8f878754a5 100644
const params = {
...filters,
_expected: expectedTimestamp ?? 0,
-@@ -395,7 +395,11 @@ var Utils = {
+@@ -394,7 +394,11 @@ var Utils = {
.map(([k, v]) => `${k}=${encodeURIComponent(v)}`)
.join("&");
}
@@ -333,7 +349,7 @@ index 6f87bfa812..8f878754a5 100644
if (response.status >= 500) {
throw new Error(`Server error ${response.status} ${response.statusText}`);
-@@ -430,7 +434,15 @@ var Utils = {
+@@ -429,7 +433,15 @@ var Utils = {
}
}
@@ -377,10 +393,10 @@ index f407580bfa..53e9d8b45e 100644
]
--
-2.37.1
+2.37.2
-From 442dd6b2fff0cd43c9e7e43d1d2bd63269ddc3c2 Mon Sep 17 00:00:00 2001
+From dca0c5d7c983a24d742c45705a899430afed41bd Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Wed, 30 Dec 2020 17:52:10 +0200
Subject: [PATCH 05/13] Utils: disable offline checking
@@ -392,10 +408,10 @@ current and any future code that relies on it.
1 file changed, 10 deletions(-)
diff --git a/services/settings/Utils.jsm b/services/settings/Utils.jsm
-index 8f878754a5..fdf7181c14 100644
+index da55d60201..ff45380ff8 100644
--- a/services/settings/Utils.jsm
+++ b/services/settings/Utils.jsm
-@@ -194,16 +194,6 @@ var Utils = {
+@@ -193,16 +193,6 @@ var Utils = {
* @return {bool} Whether network is down or not.
*/
get isOffline() {
@@ -413,10 +429,10 @@ index 8f878754a5..fdf7181c14 100644
},
--
-2.37.1
+2.37.2
-From c2f06f79b0d5d78ab3a81ec7f85053d7b3e761af Mon Sep 17 00:00:00 2001
+From 1e29854983d5fcc360a6b407b4cd11f6af8d993e Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Wed, 30 Dec 2020 17:56:02 +0200
Subject: [PATCH 06/13] Refactor hashing logic to a separate function
@@ -429,7 +445,7 @@ integrity checking of the locally cached data.
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/services/settings/RemoteSettingsWorker.jsm b/services/settings/RemoteSettingsWorker.jsm
-index 9fc1794f90..50e69f56a0 100644
+index 2e8073271b..24b4ce2af8 100644
--- a/services/settings/RemoteSettingsWorker.jsm
+++ b/services/settings/RemoteSettingsWorker.jsm
@@ -191,6 +191,10 @@ class Worker {
@@ -467,10 +483,10 @@ index 9804e80c91..de67b0fb6f 100644
/**
--
-2.37.1
+2.37.2
-From f9aa27662b2018a543d71e2443397beecc73ee5e Mon Sep 17 00:00:00 2001
+From 49543366ee33ad44a5577d082e51a11a2e7b4b7f Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Wed, 30 Dec 2020 18:05:02 +0200
Subject: [PATCH 07/13] Client: Fetch and hash records from local dump
@@ -505,10 +521,10 @@ the upgrade to local-only setup.
1 file changed, 27 insertions(+), 36 deletions(-)
diff --git a/services/settings/RemoteSettingsClient.jsm b/services/settings/RemoteSettingsClient.jsm
-index 2b07a06b26..77da7304b6 100644
+index ae94f272d8..75589ff02e 100644
--- a/services/settings/RemoteSettingsClient.jsm
+++ b/services/settings/RemoteSettingsClient.jsm
-@@ -668,11 +668,9 @@ class RemoteSettingsClient extends EventEmitter {
+@@ -678,11 +678,9 @@ class RemoteSettingsClient extends EventEmitter {
// If the data is up-to-date but don't have metadata (records loaded from dump),
// we fetch them and validate the signature immediately.
@@ -522,7 +538,7 @@ index 2b07a06b26..77da7304b6 100644
await this.db.importChanges(metadata);
// We don't bother validating the signature if the dump was just loaded. We do
// if the dump was loaded at some other point (eg. from .get()).
-@@ -935,33 +933,23 @@ class RemoteSettingsClient extends EventEmitter {
+@@ -945,33 +943,23 @@ class RemoteSettingsClient extends EventEmitter {
* @returns {Promise}
*/
async _validateCollectionSignature(records, timestamp, metadata) {
@@ -562,7 +578,7 @@ index 2b07a06b26..77da7304b6 100644
))
) {
throw new InvalidSignatureError(this.identifier);
-@@ -1134,24 +1122,27 @@ class RemoteSettingsClient extends EventEmitter {
+@@ -1144,24 +1132,27 @@ class RemoteSettingsClient extends EventEmitter {
* @param since timestamp of last sync (optional)
*/
async _fetchChangeset(expectedTimestamp, since) {
@@ -607,10 +623,10 @@ index 2b07a06b26..77da7304b6 100644
remoteRecords,
};
--
-2.37.1
+2.37.2
-From aa6967b7f10899464253074271f27180ca4069fe Mon Sep 17 00:00:00 2001
+From b6ce5faacf9bdf97066c7182399b58d5ef91a445 Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Wed, 30 Dec 2020 18:42:56 +0200
Subject: [PATCH 08/13] Client: start deferred sync on get() or on()
@@ -632,10 +648,10 @@ occurs during the session.
1 file changed, 26 insertions(+), 1 deletion(-)
diff --git a/services/settings/RemoteSettingsClient.jsm b/services/settings/RemoteSettingsClient.jsm
-index 77da7304b6..81404d9801 100644
+index 75589ff02e..90280fc848 100644
--- a/services/settings/RemoteSettingsClient.jsm
+++ b/services/settings/RemoteSettingsClient.jsm
-@@ -23,6 +23,7 @@ XPCOMUtils.defineLazyModuleGetters(lazy, {
+@@ -22,6 +22,7 @@ XPCOMUtils.defineLazyModuleGetters(lazy, {
ClientEnvironmentBase:
"resource://gre/modules/components-utils/ClientEnvironment.jsm",
Database: "resource://services-settings/Database.jsm",
@@ -643,7 +659,7 @@ index 77da7304b6..81404d9801 100644
IDBHelpers: "resource://services-settings/IDBHelpers.jsm",
KintoHttpClient: "resource://services-common/kinto-http-client.js",
ObjectUtils: "resource://gre/modules/ObjectUtils.jsm",
-@@ -33,6 +34,7 @@ XPCOMUtils.defineLazyModuleGetters(lazy, {
+@@ -32,6 +33,7 @@ XPCOMUtils.defineLazyModuleGetters(lazy, {
});
const TELEMETRY_COMPONENT = "remotesettings";
@@ -651,7 +667,7 @@ index 77da7304b6..81404d9801 100644
XPCOMUtils.defineLazyGetter(lazy, "console", () => lazy.Utils.log);
-@@ -320,6 +322,11 @@ class RemoteSettingsClient extends EventEmitter {
+@@ -319,6 +321,11 @@ class RemoteSettingsClient extends EventEmitter {
this._lastCheckTimePref = lastCheckTimePref;
this._verifier = null;
this._syncRunning = false;
@@ -663,7 +679,7 @@ index 77da7304b6..81404d9801 100644
// This attribute allows signature verification to be disabled, when running tests
// or when pulling data from a dev server.
-@@ -349,6 +356,11 @@ class RemoteSettingsClient extends EventEmitter {
+@@ -348,6 +355,11 @@ class RemoteSettingsClient extends EventEmitter {
this.db.identifier = this.identifier;
}
@@ -675,7 +691,7 @@ index 77da7304b6..81404d9801 100644
get identifier() {
return `${this.bucketName}/${this.collectionName}`;
}
-@@ -417,6 +429,10 @@ class RemoteSettingsClient extends EventEmitter {
+@@ -419,6 +431,10 @@ class RemoteSettingsClient extends EventEmitter {
let lastModified = await this.db.getLastModified();
let hasLocalData = lastModified !== null;
@@ -686,7 +702,7 @@ index 77da7304b6..81404d9801 100644
if (syncIfEmpty && !hasLocalData) {
// .get() was called before we had the chance to synchronize the local database.
// We'll try to avoid returning an empty list.
-@@ -517,7 +533,10 @@ class RemoteSettingsClient extends EventEmitter {
+@@ -527,7 +543,10 @@ class RemoteSettingsClient extends EventEmitter {
// No need to verify signature on JSON dumps.
// If local DB cannot be read, then we don't even try to do anything,
// we return results early.
@@ -698,7 +714,7 @@ index 77da7304b6..81404d9801 100644
}
lazy.console.debug(
-@@ -557,6 +576,12 @@ class RemoteSettingsClient extends EventEmitter {
+@@ -567,6 +586,12 @@ class RemoteSettingsClient extends EventEmitter {
return final;
}
@@ -712,10 +728,10 @@ index 77da7304b6..81404d9801 100644
* Synchronize the local database with the remote server.
*
--
-2.37.1
+2.37.2
-From d38df88747ef8df356af5178fde18bf3a25836b6 Mon Sep 17 00:00:00 2001
+From 617d90b265e5d82aa964247f3bd68eb92ebd2cf0 Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Wed, 30 Dec 2020 18:53:51 +0200
Subject: [PATCH 09/13] Client: deep compare records if timestamps match
@@ -737,10 +753,10 @@ noticeable performance issues.
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/services/settings/RemoteSettingsClient.jsm b/services/settings/RemoteSettingsClient.jsm
-index 81404d9801..c06650e2d8 100644
+index 90280fc848..3d9f04696f 100644
--- a/services/settings/RemoteSettingsClient.jsm
+++ b/services/settings/RemoteSettingsClient.jsm
-@@ -20,6 +20,7 @@ const { Downloader } = ChromeUtils.import(
+@@ -19,6 +19,7 @@ const { Downloader } = ChromeUtils.import(
const lazy = {};
XPCOMUtils.defineLazyModuleGetters(lazy, {
@@ -748,7 +764,7 @@ index 81404d9801..c06650e2d8 100644
ClientEnvironmentBase:
"resource://gre/modules/components-utils/ClientEnvironment.jsm",
Database: "resource://services-settings/Database.jsm",
-@@ -1122,7 +1123,10 @@ class RemoteSettingsClient extends EventEmitter {
+@@ -1132,7 +1133,10 @@ class RemoteSettingsClient extends EventEmitter {
const old = oldById.get(r.id);
if (old) {
oldById.delete(r.id);
@@ -761,10 +777,10 @@ index 81404d9801..c06650e2d8 100644
}
} else {
--
-2.37.1
+2.37.2
-From f746bdc4a82e8a29ea8a5470cb5cdedba6594dbc Mon Sep 17 00:00:00 2001
+From 66122f118e859c33f1d972b658340dfc43b4b875 Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Wed, 30 Dec 2020 19:01:39 +0200
Subject: [PATCH 10/13] Client: delete more data on cleanup
@@ -782,10 +798,10 @@ logic gets the data about the attachments from those records.
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/services/settings/RemoteSettingsClient.jsm b/services/settings/RemoteSettingsClient.jsm
-index c06650e2d8..d5d934447a 100644
+index 3d9f04696f..e102c8b89d 100644
--- a/services/settings/RemoteSettingsClient.jsm
+++ b/services/settings/RemoteSettingsClient.jsm
-@@ -257,7 +257,7 @@ class AttachmentDownloader extends Downloader {
+@@ -256,7 +256,7 @@ class AttachmentDownloader extends Downloader {
allRecords
.filter(r => !!r.attachment)
.map(r =>
@@ -794,7 +810,7 @@ index c06650e2d8..d5d934447a 100644
)
);
}
-@@ -1082,7 +1082,7 @@ class RemoteSettingsClient extends EventEmitter {
+@@ -1092,7 +1092,7 @@ class RemoteSettingsClient extends EventEmitter {
// Signature failed, clear local DB because it contains
// bad data (local + remote changes).
lazy.console.debug(`${this.identifier} clear local data`);
@@ -803,7 +819,7 @@ index c06650e2d8..d5d934447a 100644
// Local data was tampered, throw and it will retry from empty DB.
lazy.console.error(`${this.identifier} local data was corrupted`);
throw new CorruptedDataError(this.identifier);
-@@ -1104,7 +1104,7 @@ class RemoteSettingsClient extends EventEmitter {
+@@ -1114,7 +1114,7 @@ class RemoteSettingsClient extends EventEmitter {
// _importJSONDump() only clears DB if dump is available,
// therefore do it here!
if (imported < 0) {
@@ -812,7 +828,7 @@ index c06650e2d8..d5d934447a 100644
}
}
}
-@@ -1144,6 +1144,12 @@ class RemoteSettingsClient extends EventEmitter {
+@@ -1154,6 +1154,12 @@ class RemoteSettingsClient extends EventEmitter {
return syncResult;
}
@@ -826,10 +842,10 @@ index c06650e2d8..d5d934447a 100644
* Fetch information from changeset endpoint.
*
--
-2.37.1
+2.37.2
-From 3e2487052231283079591eb158d6f45b43f1c091 Mon Sep 17 00:00:00 2001
+From 3ef189a633dfbe5a95cf5b290808b0003e8ba5c1 Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Wed, 30 Dec 2020 19:07:56 +0200
Subject: [PATCH 11/13] Client: remove comparison of collection timestamps
@@ -844,10 +860,10 @@ necessary cleanup. So remove the checks.
1 file changed, 5 deletions(-)
diff --git a/services/settings/RemoteSettingsClient.jsm b/services/settings/RemoteSettingsClient.jsm
-index d5d934447a..9a25d5103d 100644
+index e102c8b89d..9cb3455aaf 100644
--- a/services/settings/RemoteSettingsClient.jsm
+++ b/services/settings/RemoteSettingsClient.jsm
-@@ -1024,14 +1024,9 @@ class RemoteSettingsClient extends EventEmitter {
+@@ -1034,14 +1034,9 @@ class RemoteSettingsClient extends EventEmitter {
updated: [],
deleted: [],
};
@@ -863,10 +879,10 @@ index d5d934447a..9a25d5103d 100644
await this.db.importChanges(metadata, remoteTimestamp, remoteRecords, {
clear: retry,
--
-2.37.1
+2.37.2
-From ba7f771d057358ae0575f0f392116b4406b6c1a5 Mon Sep 17 00:00:00 2001
+From 3d8d5ef12ab1c06cff841a9cca15a575750fc48d Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Wed, 30 Dec 2020 19:15:44 +0200
Subject: [PATCH 12/13] Attachments: load only from dump and drop cached
@@ -876,7 +892,7 @@ Subject: [PATCH 12/13] Attachments: load only from dump and drop cached
1 file changed, 8 insertions(+), 29 deletions(-)
diff --git a/services/settings/Attachments.jsm b/services/settings/Attachments.jsm
-index 5ac6249f67..9dc7bcdbf0 100644
+index 00bf059d55..979e22c06a 100644
--- a/services/settings/Attachments.jsm
+++ b/services/settings/Attachments.jsm
@@ -151,9 +151,10 @@ class Downloader {
@@ -955,10 +971,10 @@ index 5ac6249f67..9dc7bcdbf0 100644
/**
--
-2.37.1
+2.37.2
-From 1c0858235dd0f65b00ed622eac269d35c24ee458 Mon Sep 17 00:00:00 2001
+From 0ba5c3f95dd3c8a468d49c73b5067bd78deb1442 Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Wed, 30 Dec 2020 19:22:20 +0200
Subject: [PATCH 13/13] Disable CRLite entirely for now
@@ -983,10 +999,10 @@ certificate revocations.
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules/libpref/init/StaticPrefList.yaml b/modules/libpref/init/StaticPrefList.yaml
-index 79267cded6..d67f43052a 100644
+index 192915c16f..307f983896 100644
--- a/modules/libpref/init/StaticPrefList.yaml
+++ b/modules/libpref/init/StaticPrefList.yaml
-@@ -12446,7 +12446,7 @@
+@@ -12540,7 +12540,7 @@
# 3: Consult CRLite and enforce "Not Revoked" results, but defer to OCSP for "Revoked".
- name: security.pki.crlite_mode
type: RelaxedAtomicUint32
@@ -996,7 +1012,7 @@ index 79267cded6..d67f43052a 100644
- name: security.tls.version.min
diff --git a/security/manager/ssl/nsNSSComponent.cpp b/security/manager/ssl/nsNSSComponent.cpp
-index 0996c198d2..f8525a9325 100644
+index aab4319651..f21432a7e3 100644
--- a/security/manager/ssl/nsNSSComponent.cpp
+++ b/security/manager/ssl/nsNSSComponent.cpp
@@ -1434,6 +1434,7 @@ void nsNSSComponent::setValidationOptions(
@@ -1008,5 +1024,5 @@ index 0996c198d2..f8525a9325 100644
case CRLiteMode::Disabled:
case CRLiteMode::TelemetryOnly:
--
-2.37.1
+2.37.2
diff --git a/libre/iceweasel/PKGBUILD b/libre/iceweasel/PKGBUILD
index c6afb8dd6..fc5381ff7 100644
--- a/libre/iceweasel/PKGBUILD
+++ b/libre/iceweasel/PKGBUILD
@@ -60,7 +60,7 @@
pkgname=iceweasel
epoch=1
-pkgver=103.0
+pkgver=104.0
pkgrel=1
pkgrel+=.parabola1
_brandingver=102.0-1
@@ -88,7 +88,7 @@ optdepends=('networkmanager: Location detection via available WiFi networks'
replaces=('firefox')
options=(!emptydirs !makeflags !strip !lto !debug)
source=(https://archive.mozilla.org/pub/firefox/releases/$pkgver/source/firefox-$pkgver.source.tar.xz{,.asc}
- zstandard-0.18.0.diff
+ zstandard-0.18.0.diff arc4random.diff
$pkgname.desktop identity-icons-brand.svg)
source=(${source[*]/identity-icons-brand.svg/})
source+=(https://repo.parabola.nu/other/iceweasel/${pkgname}_${_brandingver}.branding.tar.xz{,.sig}
@@ -102,13 +102,14 @@ source_armv7h=(build-arm-libopus.patch)
source_i686=('avoid-libxul-OOM-python-check.patch'
'rust-static-disable-network-test-on-static-libraries.patch'
'firefox-99.0.1-fdlibm-double.patch')
-sha256sums=('acc41d050560db4c4177ea86e2d00e47d74229041fea4c02c0e9e87e64093773'
+sha256sums=('1a294a651dc6260f9a72a3ab9f10e7792a4ab41a9cfa8527ad3dd9979cdc98ce'
'SKIP'
'a6857ad2f2e2091c6c4fdcde21a59fbeb0138914c0e126df64b50a5af5ff63be'
+ '714ca50b2ce0cac470dbd5a60e9a0101b28072f08a5e7a9bba94fef2058321c4'
'9cdc2602661717712092d28bb494e5b48e518cb930898aca85eaf21f91f7ef58')
sha256sums+=('d29c194ed7b3b4fa0f511866723118938c2be40077b4e9aadf8b3e6bfff91049'
'SKIP'
- '1c385fa5b2e2dd1cb7404c2d101de499a6b4b1324ddc051c5fb94aea6c24b42a'
+ 'bc40dc394d6de5c9db202c049c3fe24ffb547482f838d071d0b896951b25fabf'
'a2c71759290dd48c87bf8aacb681040dcaefdabe0d57317de361d2d2d509664b'
'e192458a2a9878483984e1400bb3c66df369adfbf6f144b90445f80973c32ed1'
'2697d54f827a493f7d74b8b8b01a10c70fd286a02924faae0d09c5f432a841a8'
@@ -213,6 +214,9 @@ prepare() {
# Unbreak build with python-zstandard 0.18.0
patch -Np1 -i ../zstandard-0.18.0.diff
+ # Unbreak build with glibc 2.36
+ patch -Np1 -i ../arc4random.diff
+
# echo -n "$_google_api_key" >google-api-key # anti-feature
# echo -n "$_mozilla_api_key" >mozilla-api-key # anti-feature
diff --git a/libre/iceweasel/arc4random.diff b/libre/iceweasel/arc4random.diff
new file mode 100644
index 000000000..c877d54c1
--- /dev/null
+++ b/libre/iceweasel/arc4random.diff
@@ -0,0 +1,33 @@
+diff --git i/ipc/chromium/src/third_party/libevent/linux/event2/event-config.h w/ipc/chromium/src/third_party/libevent/linux/event2/event-config.h
+index 101d39d455107..3764806240f9f 100644
+--- i/ipc/chromium/src/third_party/libevent/linux/event2/event-config.h
++++ w/ipc/chromium/src/third_party/libevent/linux/event2/event-config.h
+@@ -30,13 +30,13 @@
+ /* #undef EVENT__HAVE_AFUNIX_H 1 */
+
+ /* Define to 1 if you have the `arc4random' function. */
+-/* #undef EVENT__HAVE_ARC4RANDOM */
++#define EVENT__HAVE_ARC4RANDOM 1
+
+ /* Define to 1 if you have the `arc4random_addrandom' function. */
+ /* #undef EVENT__HAVE_ARC4RANDOM_ADDRANDOM */
+
+ /* Define to 1 if you have the `arc4random_buf' function. */
+-/* #undef EVENT__HAVE_ARC4RANDOM_BUF */
++#define EVENT__HAVE_ARC4RANDOM_BUF 1
+
+ /* Define to 1 if you have the <arpa/inet.h> header file. */
+ #define EVENT__HAVE_ARPA_INET_H 1
+diff --git i/toolkit/crashreporter/client/ping.cpp w/toolkit/crashreporter/client/ping.cpp
+index 57cf85de80b79..93a2f6e80ad0b 100644
+--- i/toolkit/crashreporter/client/ping.cpp
++++ w/toolkit/crashreporter/client/ping.cpp
+@@ -53,7 +53,7 @@ static string GenerateUUID() {
+
+ CFRelease(uuid);
+ #elif defined(HAVE_ARC4RANDOM_BUF) // Android, BSD, ...
+- arc4random_buf(id, sizeof(UUID));
++ arc4random_buf(&id, sizeof(UUID));
+ #else // Linux
+ int fd = open("/dev/urandom", O_RDONLY);
+