* [PR PATCH] firefox-esr: update to 91.3.0.
@ 2021-11-20 14:23 jdnuemm
2021-11-20 15:05 ` [PR REVIEW] " abenson
` (9 more replies)
0 siblings, 10 replies; 11+ messages in thread
From: jdnuemm @ 2021-11-20 14:23 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 583 bytes --]
There is a new pull request by jdnuemm against master on the void-packages repository
https://github.com/jdnuemm/void-packages firefox-esr-91.3.0
https://github.com/void-linux/void-packages/pull/34167
firefox-esr: update to 91.3.0.
Testing the changes:
- I tested the changes in this PR: briefly
Local build testing:
- I built this PR locally for my native architecture, x86_64-glibc
Note:
I use the Patches from Thunderbird and sync the template with Firefox.
[skip CI]
A patch file from https://github.com/void-linux/void-packages/pull/34167.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-firefox-esr-91.3.0-34167.patch --]
[-- Type: text/x-diff, Size: 68014 bytes --]
From ee5f98b841d15bf32b97129d16046c37bb8f9312 Mon Sep 17 00:00:00 2001
From: Johannes Daniel Nuemm <daniel.nuemm@blacktre.es>
Date: Thu, 18 Nov 2021 18:33:41 +0100
Subject: [PATCH] firefox-esr: update to 91.3.0.
---
srcpkgs/firefox-esr/files/mozconfig | 1 +
srcpkgs/firefox-esr/files/vendor.js | 2 +-
.../patches/avoid-redefinition.patch | 15 +
srcpkgs/firefox-esr/patches/fix-cross.patch | 16 -
.../patches/fix-fortify-inline.patch | 11 -
.../firefox-esr/patches/fix-i386-fdlibm.patch | 18 +
.../firefox-esr/patches/fix-python3.10.patch | 826 ------------------
.../firefox-esr/patches/fix-wasm-arm.patch | 15 -
.../patches/fix-webrtc-glibcisms.patch | 4 +-
.../firefox-esr/patches/flac-no-ffvpx.patch | 5 +-
.../patches/musl-rust.configure.patch | 26 -
.../firefox-esr/patches/rust-configure.patch | 132 ++-
.../firefox-esr/patches/rust-has-i128.patch | 21 -
.../firefox-esr/patches/sandbox-fork.patch | 4 +-
srcpkgs/firefox-esr/patches/sndio.patch | 14 +-
srcpkgs/firefox-esr/template | 127 ++-
srcpkgs/firefox-esr/update | 4 +-
17 files changed, 210 insertions(+), 1031 deletions(-)
create mode 100644 srcpkgs/firefox-esr/patches/avoid-redefinition.patch
delete mode 100644 srcpkgs/firefox-esr/patches/fix-cross.patch
delete mode 100644 srcpkgs/firefox-esr/patches/fix-fortify-inline.patch
create mode 100644 srcpkgs/firefox-esr/patches/fix-i386-fdlibm.patch
delete mode 100644 srcpkgs/firefox-esr/patches/fix-python3.10.patch
delete mode 100644 srcpkgs/firefox-esr/patches/fix-wasm-arm.patch
delete mode 100644 srcpkgs/firefox-esr/patches/musl-rust.configure.patch
delete mode 100644 srcpkgs/firefox-esr/patches/rust-has-i128.patch
diff --git a/srcpkgs/firefox-esr/files/mozconfig b/srcpkgs/firefox-esr/files/mozconfig
index 708ee9eded9b..fa5a7a42e04b 100644
--- a/srcpkgs/firefox-esr/files/mozconfig
+++ b/srcpkgs/firefox-esr/files/mozconfig
@@ -32,4 +32,5 @@ ac_add_options --enable-optimize="$CFLAGS"
ac_add_options --enable-official-branding
ac_add_options --enable-application=browser
+
ac_add_options --allow-addon-sideload
diff --git a/srcpkgs/firefox-esr/files/vendor.js b/srcpkgs/firefox-esr/files/vendor.js
index d8d606bc15d7..5be4f1b5f3ff 100644
--- a/srcpkgs/firefox-esr/files/vendor.js
+++ b/srcpkgs/firefox-esr/files/vendor.js
@@ -1,5 +1,5 @@
// Use LANG environment variable to choose locale
-pref("intl.locale.matchOS", true);
+pref("intl.locale.requested", "");
// Disable default browser checking.
pref("browser.shell.checkDefaultBrowser", false);
diff --git a/srcpkgs/firefox-esr/patches/avoid-redefinition.patch b/srcpkgs/firefox-esr/patches/avoid-redefinition.patch
new file mode 100644
index 000000000000..867d37c62a90
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/avoid-redefinition.patch
@@ -0,0 +1,15 @@
+Author: Rasmus Thomsen <oss@cogitri.dev>
+Reason: FF is mixing userspace net headers (net/if.h) and kernelspace ones
+(linux/if.h), leading to redefinitions. We need to include net/if.h before
+linux/if.h because linux/if.h has redifinition guards whereas net/if.h doesnt
+Upstream: No
+--- a/dom/media/webrtc/transport/third_party/nICEr/src/stun/addrs-netlink.c 2020-07-28 19:24:32.359751046 +0200
++++ b/dom/media/webrtc/transport/third_party/nICEr/src/stun/addrs-netlink.c 2020-07-28 19:24:37.856343751 +0200
+@@ -31,6 +31,7 @@
+ */
+
+ #if defined(LINUX)
++#include <net/if.h>
+ #include "addrs-netlink.h"
+ #include <csi_platform.h>
+ #include <assert.h>
diff --git a/srcpkgs/firefox-esr/patches/fix-cross.patch b/srcpkgs/firefox-esr/patches/fix-cross.patch
deleted file mode 100644
index fad8f9060c46..000000000000
--- a/srcpkgs/firefox-esr/patches/fix-cross.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-terrible hack to fix cross builds
-overwrite HOST_* flags to get rid of -MF
-
-note: this patch was used from firefox-77 until 80, dropped with the update to 81
-
---- a/third_party/rust/glslopt/build.rs
-+++ b/third_party/rust/glslopt/build.rs
-@@ -28,6 +28,8 @@
- env::remove_var(format!("CXXFLAGS_{}", &target));
- env::remove_var(format!("CFLAGS_{}", target.replace("-", "_")));
- env::remove_var(format!("CXXFLAGS_{}", target.replace("-", "_")));
-+ env::set_var("HOST_CFLAGS", "-O2");
-+ env::set_var("HOST_CXXFLAGS", "-O2");
-
- configure(&mut cc::Build::new())
- .warnings(false)
diff --git a/srcpkgs/firefox-esr/patches/fix-fortify-inline.patch b/srcpkgs/firefox-esr/patches/fix-fortify-inline.patch
deleted file mode 100644
index 2498c57fc738..000000000000
--- a/srcpkgs/firefox-esr/patches/fix-fortify-inline.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/media/webrtc/signaling/src/sdp/sipcc/sdp_os_defs.h
-+++ b/media/webrtc/signaling/src/sdp/sipcc/sdp_os_defs.h
-@@ -27,8 +27,5 @@
- typedef int16_t int16;
- typedef unsigned short ushort;
- typedef unsigned long ulong;
--#ifndef __GNUC_STDC_INLINE__
--#define inline
--#endif
-
- #endif /* _SDP_OS_DEFS_H_ */
diff --git a/srcpkgs/firefox-esr/patches/fix-i386-fdlibm.patch b/srcpkgs/firefox-esr/patches/fix-i386-fdlibm.patch
new file mode 100644
index 000000000000..831e5e03678d
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/fix-i386-fdlibm.patch
@@ -0,0 +1,18 @@
+# error: typedef redefinition with different types ('__double_t' (aka 'double') vs 'long double')
+# https://bugzilla.mozilla.org/show_bug.cgi?id=1729459
+
+--- a/modules/fdlibm/src/math_private.h
++++ b/modules/fdlibm/src/math_private.h
+@@ -30,7 +30,12 @@
+ * Adapted from https://github.com/freebsd/freebsd-src/search?q=__double_t
+ */
+
++#if defined(__linux__) && defined(__i386__)
++// rely on glibc's double_t
++typedef long double __double_t;
++#else
+ typedef double __double_t;
++#endif
+ typedef __double_t double_t;
+
+ /*
diff --git a/srcpkgs/firefox-esr/patches/fix-python3.10.patch b/srcpkgs/firefox-esr/patches/fix-python3.10.patch
deleted file mode 100644
index 143e58782581..000000000000
--- a/srcpkgs/firefox-esr/patches/fix-python3.10.patch
+++ /dev/null
@@ -1,826 +0,0 @@
-diff -ur a/python/mach/mach/config.py b/python/mach/mach/config.py
---- a/python/mach/mach/config.py 2021-09-01 13:26:18.000000000 -0400
-+++ b/python/mach/mach/config.py 2021-11-05 15:29:12.000000000 -0400
-@@ -144,7 +144,7 @@
- return _
-
-
--class ConfigSettings(collections.Mapping):
-+class ConfigSettings(collections.abc.Mapping):
- """Interface for configuration settings.
-
- This is the main interface to the configuration.
-@@ -190,7 +190,7 @@
- will result in exceptions being raised.
- """
-
-- class ConfigSection(collections.MutableMapping, object):
-+ class ConfigSection(collections.abc.MutableMapping, object):
- """Represents an individual config section."""
- def __init__(self, config, name, settings):
- object.__setattr__(self, '_config', config)
-diff -ur a/python/mach/mach/decorators.py b/python/mach/mach/decorators.py
---- a/python/mach/mach/decorators.py 2021-09-01 13:26:18.000000000 -0400
-+++ b/python/mach/mach/decorators.py 2021-11-05 15:29:12.000000000 -0400
-@@ -140,7 +140,7 @@
- 'Conditions argument must take a list ' + \
- 'of functions. Found %s instead.'
-
-- if not isinstance(command.conditions, collections.Iterable):
-+ if not isinstance(command.conditions, collections.abc.Iterable):
- msg = msg % (command.name, type(command.conditions))
- raise MachError(msg)
-
-diff -ur a/python/mach/mach/main.py b/python/mach/mach/main.py
---- a/python/mach/mach/main.py 2021-09-01 13:26:23.000000000 -0400
-+++ b/python/mach/mach/main.py 2021-11-05 15:29:12.000000000 -0400
-@@ -16,7 +16,7 @@
- import sys
- import traceback
- import uuid
--from collections import Iterable
-+from collections.abc import Iterable
-
- from six import string_types
-
-diff -ur a/python/mozbuild/mozbuild/backend/configenvironment.py b/python/mozbuild/mozbuild/backend/configenvironment.py
---- a/python/mozbuild/mozbuild/backend/configenvironment.py 2021-09-01 13:26:34.000000000 -0400
-+++ b/python/mozbuild/mozbuild/backend/configenvironment.py 2021-11-05 15:29:12.000000000 -0400
-@@ -9,7 +9,8 @@
- import sys
- import json
-
--from collections import Iterable, OrderedDict
-+from collections import OrderedDict
-+from collections.abc import Iterable
- from types import ModuleType
-
- import mozpack.path as mozpath
-diff -ur a/python/mozbuild/mozbuild/makeutil.py b/python/mozbuild/mozbuild/makeutil.py
---- a/python/mozbuild/mozbuild/makeutil.py 2021-09-01 13:26:18.000000000 -0400
-+++ b/python/mozbuild/mozbuild/makeutil.py 2021-11-05 15:29:12.000000000 -0400
-@@ -7,7 +7,7 @@
- import os
- import re
- import six
--from collections import Iterable
-+from collections.abc import Iterable
-
-
- class Makefile(object):
-diff -ur a/python/mozbuild/mozbuild/util.py b/python/mozbuild/mozbuild/util.py
---- a/python/mozbuild/mozbuild/util.py 2021-09-01 13:26:18.000000000 -0400
-+++ b/python/mozbuild/mozbuild/util.py 2021-11-05 15:29:12.000000000 -0400
-@@ -782,7 +782,7 @@
- self._strings = StrictOrderingOnAppendList()
- self._children = {}
-
-- class StringListAdaptor(collections.Sequence):
-+ class StringListAdaptor(collections.abc.Sequence):
- def __init__(self, hsl):
- self._hsl = hsl
-
-diff -ur a/testing/marionette/client/marionette_driver/wait.py b/testing/marionette/client/marionette_driver/wait.py
---- a/testing/marionette/client/marionette_driver/wait.py 2021-09-01 13:26:30.000000000 -0400
-+++ b/testing/marionette/client/marionette_driver/wait.py 2021-11-05 15:29:12.000000000 -0400
-@@ -82,7 +82,7 @@
-
- exceptions = []
- if ignored_exceptions is not None:
-- if isinstance(ignored_exceptions, collections.Iterable):
-+ if isinstance(ignored_exceptions, collections.abc.Iterable):
- exceptions.extend(iter(ignored_exceptions))
- else:
- exceptions.append(ignored_exceptions)
-diff -ur a/testing/mozbase/manifestparser/manifestparser/filters.py b/testing/mozbase/manifestparser/manifestparser/filters.py
---- a/testing/mozbase/manifestparser/manifestparser/filters.py 2021-09-01 13:26:23.000000000 -0400
-+++ b/testing/mozbase/manifestparser/manifestparser/filters.py 2021-11-05 15:29:12.000000000 -0400
-@@ -12,7 +12,8 @@
-
- import itertools
- import os
--from collections import defaultdict, MutableSequence
-+from collections import defaultdict
-+from collections.abc import MutableSequence
-
- import six
- from six import string_types
-diff -ur a/testing/mozbase/versioninfo.py b/testing/mozbase/versioninfo.py
---- a/testing/mozbase/versioninfo.py 2021-09-01 13:26:23.000000000 -0400
-+++ b/testing/mozbase/versioninfo.py 2021-11-05 15:29:12.000000000 -0400
-@@ -11,7 +11,7 @@
-
- from __future__ import absolute_import, print_function
-
--from collections import Iterable
-+from collections.abc import Iterable
- from distutils.version import StrictVersion
- import argparse
- import os
-diff -ur a/testing/web-platform/tests/tools/manifest/typedata.py b/testing/web-platform/tests/tools/manifest/typedata.py
---- a/testing/web-platform/tests/tools/manifest/typedata.py 2021-09-01 13:26:40.000000000 -0400
-+++ b/testing/web-platform/tests/tools/manifest/typedata.py 2021-11-05 15:29:12.000000000 -0400
-@@ -1,4 +1,4 @@
--from collections import MutableMapping
-+from collections.abc import MutableMapping
-
- from six import itervalues, iteritems
-
-diff -ur a/testing/web-platform/tests/tools/manifest/vcs.py b/testing/web-platform/tests/tools/manifest/vcs.py
---- a/testing/web-platform/tests/tools/manifest/vcs.py 2021-09-01 13:27:05.000000000 -0400
-+++ b/testing/web-platform/tests/tools/manifest/vcs.py 2021-11-05 15:29:12.000000000 -0400
-@@ -3,7 +3,7 @@
- import os
- import stat
- from collections import deque
--from collections import MutableMapping
-+from collections.abc import MutableMapping
-
- from six import with_metaclass, PY2
-
-diff -ur a/testing/web-platform/tests/tools/third_party/attrs/tests/test_funcs.py b/testing/web-platform/tests/tools/third_party/attrs/tests/test_funcs.py
---- a/testing/web-platform/tests/tools/third_party/attrs/tests/test_funcs.py 2021-09-01 13:26:56.000000000 -0400
-+++ b/testing/web-platform/tests/tools/third_party/attrs/tests/test_funcs.py 2021-11-05 15:29:12.000000000 -0400
-@@ -4,7 +4,8 @@
-
- from __future__ import absolute_import, division, print_function
-
--from collections import Mapping, OrderedDict, Sequence
-+from collections import OrderedDict
-+from collections.abc import Mapping, Sequence
-
- import pytest
-
-diff -ur a/testing/web-platform/tests/tools/third_party/h2/h2/settings.py b/testing/web-platform/tests/tools/third_party/h2/h2/settings.py
---- a/testing/web-platform/tests/tools/third_party/h2/h2/settings.py 2021-09-01 13:27:05.000000000 -0400
-+++ b/testing/web-platform/tests/tools/third_party/h2/h2/settings.py 2021-11-05 15:32:28.817737357 -0400
-@@ -88,7 +88,7 @@
- )
-
-
--class Settings(collections.MutableMapping):
-+class Settings(collections.abc.MutableMapping):
- """
- An object that encapsulates HTTP/2 settings state.
-
-diff -ur a/testing/web-platform/tests/tools/third_party/html5lib/html5lib/_trie/_base.py b/testing/web-platform/tests/tools/third_party/html5lib/html5lib/_trie/_base.py
---- a/testing/web-platform/tests/tools/third_party/html5lib/html5lib/_trie/_base.py 2021-09-01 13:27:05.000000000 -0400
-+++ b/testing/web-platform/tests/tools/third_party/html5lib/html5lib/_trie/_base.py 2021-11-05 15:29:12.000000000 -0400
-@@ -1,6 +1,6 @@
- from __future__ import absolute_import, division, unicode_literals
-
--from collections import Mapping
-+from collections.abc import Mapping
-
-
- class Trie(Mapping):
-diff -ur a/testing/web-platform/tests/tools/third_party/html5lib/html5lib/treebuilders/dom.py b/testing/web-platform/tests/tools/third_party/html5lib/html5lib/treebuilders/dom.py
---- a/testing/web-platform/tests/tools/third_party/html5lib/html5lib/treebuilders/dom.py 2021-09-01 13:27:05.000000000 -0400
-+++ b/testing/web-platform/tests/tools/third_party/html5lib/html5lib/treebuilders/dom.py 2021-11-05 15:29:12.000000000 -0400
-@@ -1,7 +1,7 @@
- from __future__ import absolute_import, division, unicode_literals
-
-
--from collections import MutableMapping
-+from collections.abc import MutableMapping
- from xml.dom import minidom, Node
- import weakref
-
-diff -ur a/testing/web-platform/tests/tools/third_party/hyper/hyper/common/headers.py b/testing/web-platform/tests/tools/third_party/hyper/hyper/common/headers.py
---- a/testing/web-platform/tests/tools/third_party/hyper/hyper/common/headers.py 2021-09-01 13:27:00.000000000 -0400
-+++ b/testing/web-platform/tests/tools/third_party/hyper/hyper/common/headers.py 2021-11-05 15:29:12.000000000 -0400
-@@ -10,7 +10,7 @@
- from hyper.common.util import to_bytestring, to_bytestring_tuple
-
-
--class HTTPHeaderMap(collections.MutableMapping):
-+class HTTPHeaderMap(collections.abc.MutableMapping):
- """
- A structure that contains HTTP headers.
-
-diff -ur a/testing/web-platform/tests/tools/third_party/hyper/hyper/h2/settings.py b/testing/web-platform/tests/tools/third_party/hyper/hyper/h2/settings.py
---- a/testing/web-platform/tests/tools/third_party/hyper/hyper/h2/settings.py 2021-09-01 13:26:56.000000000 -0400
-+++ b/testing/web-platform/tests/tools/third_party/hyper/hyper/h2/settings.py 2021-11-05 15:29:12.000000000 -0400
-@@ -151,7 +151,7 @@
- )
-
-
--class Settings(collections.MutableMapping):
-+class Settings(collections.abc.MutableMapping):
- """
- An object that encapsulates HTTP/2 settings state.
-
-diff -ur a/testing/web-platform/tests/tools/third_party/hyper/hyper/http11/connection.py b/testing/web-platform/tests/tools/third_party/hyper/hyper/http11/connection.py
---- a/testing/web-platform/tests/tools/third_party/hyper/hyper/http11/connection.py 2021-09-01 13:27:00.000000000 -0400
-+++ b/testing/web-platform/tests/tools/third_party/hyper/hyper/http11/connection.py 2021-11-05 15:29:12.000000000 -0400
-@@ -10,7 +10,7 @@
- import socket
- import base64
-
--from collections import Iterable, Mapping
-+from collections.abc import Iterable, Mapping
-
- import collections
- from hyperframe.frame import SettingsFrame
-@@ -295,7 +295,7 @@
- return
-
- # Iterables that set a specific content length.
-- elif isinstance(body, collections.Iterable):
-+ elif isinstance(body, collections.abc.Iterable):
- for item in body:
- try:
- self._sock.send(item)
-diff -ur a/testing/web-platform/tests/tools/third_party/hyper/hyper/packages/hyperframe/flags.py b/testing/web-platform/tests/tools/third_party/hyper/hyper/packages/hyperframe/flags.py
---- a/testing/web-platform/tests/tools/third_party/hyper/hyper/packages/hyperframe/flags.py 2021-09-01 13:27:05.000000000 -0400
-+++ b/testing/web-platform/tests/tools/third_party/hyper/hyper/packages/hyperframe/flags.py 2021-11-05 15:29:12.000000000 -0400
-@@ -11,7 +11,7 @@
- Flag = collections.namedtuple("Flag", ["name", "bit"])
-
-
--class Flags(collections.MutableSet):
-+class Flags(collections.abc.MutableSet):
- """
- A simple MutableSet implementation that will only accept known flags as elements.
-
-diff -ur a/testing/web-platform/tests/tools/third_party/hyperframe/hyperframe/flags.py b/testing/web-platform/tests/tools/third_party/hyperframe/hyperframe/flags.py
---- a/testing/web-platform/tests/tools/third_party/hyperframe/hyperframe/flags.py 2021-09-01 13:26:39.000000000 -0400
-+++ b/testing/web-platform/tests/tools/third_party/hyperframe/hyperframe/flags.py 2021-11-05 15:29:12.000000000 -0400
-@@ -11,7 +11,7 @@
- Flag = collections.namedtuple("Flag", ["name", "bit"])
-
-
--class Flags(collections.MutableSet):
-+class Flags(collections.abc.MutableSet):
- """
- A simple MutableSet implementation that will only accept known flags as
- elements.
-diff -ur a/testing/web-platform/tests/tools/wptserve/wptserve/config.py b/testing/web-platform/tests/tools/wptserve/wptserve/config.py
---- a/testing/web-platform/tests/tools/wptserve/wptserve/config.py 2021-09-01 13:27:05.000000000 -0400
-+++ b/testing/web-platform/tests/tools/wptserve/wptserve/config.py 2021-11-05 15:29:12.000000000 -0400
-@@ -2,7 +2,8 @@
- import logging
- import os
-
--from collections import defaultdict, Mapping
-+from collections import defaultdict
-+from collections.abc import Mapping
- from six import integer_types, iteritems, itervalues, string_types
-
- from . import sslutils
-diff -ur a/testing/web-platform/tests/webdriver/tests/support/sync.py b/testing/web-platform/tests/webdriver/tests/support/sync.py
---- a/testing/web-platform/tests/webdriver/tests/support/sync.py 2021-09-01 13:27:05.000000000 -0400
-+++ b/testing/web-platform/tests/webdriver/tests/support/sync.py 2021-11-05 15:29:12.000000000 -0400
-@@ -81,7 +81,7 @@
-
- exceptions = []
- if ignored_exceptions is not None:
-- if isinstance(ignored_exceptions, collections.Iterable):
-+ if isinstance(ignored_exceptions, collections.abc.Iterable):
- exceptions.extend(iter(ignored_exceptions))
- else:
- exceptions.append(ignored_exceptions)
-diff -ur a/third_party/python/gyp/pylib/gyp/common.py b/third_party/python/gyp/pylib/gyp/common.py
---- a/third_party/python/gyp/pylib/gyp/common.py 2021-09-01 13:26:46.000000000 -0400
-+++ b/third_party/python/gyp/pylib/gyp/common.py 2021-11-05 15:29:12.000000000 -0400
-@@ -494,7 +494,7 @@
-
-
- # Based on http://code.activestate.com/recipes/576694/.
--class OrderedSet(collections.MutableSet):
-+class OrderedSet(collections.abc.MutableSet):
- def __init__(self, iterable=None):
- self.end = end = []
- end += [None, end, end] # sentinel node for doubly linked list
-diff -ur a/third_party/python/gyp/pylib/gyp/msvs_emulation.py b/third_party/python/gyp/pylib/gyp/msvs_emulation.py
---- a/third_party/python/gyp/pylib/gyp/msvs_emulation.py 2021-09-01 13:27:09.000000000 -0400
-+++ b/third_party/python/gyp/pylib/gyp/msvs_emulation.py 2021-11-05 15:30:47.757760820 -0400
-@@ -91,7 +91,7 @@
- """Add |prefix| to |element| or each subelement if element is iterable."""
- if element is None:
- return element
-- if (isinstance(element, collections.Iterable) and
-+ if (isinstance(element, collections.abc.Iterable) and
- not isinstance(element, basestring)):
- return [prefix + e for e in element]
- else:
-@@ -104,7 +104,7 @@
- if map is not None and element is not None:
- if not callable(map):
- map = map.get # Assume it's a dict, otherwise a callable to do the remap.
-- if (isinstance(element, collections.Iterable) and
-+ if (isinstance(element, collections.abc.Iterable) and
- not isinstance(element, basestring)):
- element = filter(None, [map(elem) for elem in element])
- else:
-@@ -117,7 +117,7 @@
- then add |element| to it, adding each item in |element| if it's a list or
- tuple."""
- if append is not None and element is not None:
-- if (isinstance(element, collections.Iterable) and
-+ if (isinstance(element, collections.abc.Iterable) and
- not isinstance(element, basestring)):
- append.extend(element)
- else:
-diff -ur a/third_party/python/gyp/test/lib/TestGyp.py b/third_party/python/gyp/test/lib/TestGyp.py
---- a/third_party/python/gyp/test/lib/TestGyp.py 2021-09-01 13:27:09.000000000 -0400
-+++ b/third_party/python/gyp/test/lib/TestGyp.py 2021-11-05 15:30:37.671763157 -0400
-@@ -496,7 +496,7 @@
- if status is None:
- kw['status'] = None
- else:
-- if not isinstance(status, collections.Iterable): status = (status,)
-+ if not isinstance(status, collections.abc.Iterable): status = (status,)
- kw['status'] = list(itertools.chain((0,), status))
- self.cmake_build(gyp_file, target, **kw)
- kw['status'] = status
-diff -ur a/third_party/python/pipenv/pipenv/patched/notpip/_vendor/distlib/compat.py b/third_party/python/pipenv/pipenv/patched/notpip/_vendor/distlib/compat.py
---- a/third_party/python/pipenv/pipenv/patched/notpip/_vendor/distlib/compat.py 2021-09-01 13:27:09.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/patched/notpip/_vendor/distlib/compat.py 2021-11-05 15:29:12.000000000 -0400
-@@ -319,7 +319,7 @@
- try:
- callable = callable
- except NameError: # pragma: no cover
-- from collections import Callable
-+ from collections.abc import Callable
-
- def callable(obj):
- return isinstance(obj, Callable)
-@@ -475,7 +475,7 @@
- try:
- from collections import ChainMap
- except ImportError: # pragma: no cover
-- from collections import MutableMapping
-+ from collections.abc import MutableMapping
-
- try:
- from reprlib import recursive_repr as _recursive_repr
-diff -ur a/third_party/python/pipenv/pipenv/patched/notpip/_vendor/html5lib/treebuilders/dom.py b/third_party/python/pipenv/pipenv/patched/notpip/_vendor/html5lib/treebuilders/dom.py
---- a/third_party/python/pipenv/pipenv/patched/notpip/_vendor/html5lib/treebuilders/dom.py 2021-09-01 13:26:46.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/patched/notpip/_vendor/html5lib/treebuilders/dom.py 2021-11-05 15:29:12.000000000 -0400
-@@ -1,7 +1,7 @@
- from __future__ import absolute_import, division, unicode_literals
-
-
--from collections import MutableMapping
-+from collections.abc import MutableMapping
- from xml.dom import minidom, Node
- import weakref
-
-diff -ur a/third_party/python/pipenv/pipenv/patched/notpip/_vendor/pyparsing.py b/third_party/python/pipenv/pipenv/patched/notpip/_vendor/pyparsing.py
---- a/third_party/python/pipenv/pipenv/patched/notpip/_vendor/pyparsing.py 2021-09-01 13:26:46.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/patched/notpip/_vendor/pyparsing.py 2021-11-05 15:29:12.000000000 -0400
-@@ -940,7 +940,7 @@
- def __dir__(self):
- return (dir(type(self)) + list(self.keys()))
-
--collections.MutableMapping.register(ParseResults)
-+collections.abc.MutableMapping.register(ParseResults)
-
- def col (loc,strg):
- """Returns current column within a string, counting newlines as line separators.
-@@ -3223,7 +3223,7 @@
-
- if isinstance( exprs, basestring ):
- self.exprs = [ ParserElement._literalStringClass( exprs ) ]
-- elif isinstance( exprs, collections.Iterable ):
-+ elif isinstance( exprs, collections.abc.Iterable ):
- exprs = list(exprs)
- # if sequence of strings provided, wrap with Literal
- if all(isinstance(expr, basestring) for expr in exprs):
-@@ -4564,7 +4564,7 @@
- symbols = []
- if isinstance(strs,basestring):
- symbols = strs.split()
-- elif isinstance(strs, collections.Iterable):
-+ elif isinstance(strs, collections.abc.Iterable):
- symbols = list(strs)
- else:
- warnings.warn("Invalid argument to oneOf, expected string or iterable",
-diff -ur a/third_party/python/pipenv/pipenv/patched/notpip/_vendor/requests/cookies.py b/third_party/python/pipenv/pipenv/patched/notpip/_vendor/requests/cookies.py
---- a/third_party/python/pipenv/pipenv/patched/notpip/_vendor/requests/cookies.py 2021-09-01 13:27:00.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/patched/notpip/_vendor/requests/cookies.py 2021-11-05 15:29:12.000000000 -0400
-@@ -169,7 +169,7 @@
- """
-
-
--class RequestsCookieJar(cookielib.CookieJar, collections.MutableMapping):
-+class RequestsCookieJar(cookielib.CookieJar, collections.abc.MutableMapping):
- """Compatibility class; is a cookielib.CookieJar, but exposes a dict
- interface.
-
-diff -ur a/third_party/python/pipenv/pipenv/patched/notpip/_vendor/requests/models.py b/third_party/python/pipenv/pipenv/patched/notpip/_vendor/requests/models.py
---- a/third_party/python/pipenv/pipenv/patched/notpip/_vendor/requests/models.py 2021-09-01 13:26:46.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/patched/notpip/_vendor/requests/models.py 2021-11-05 15:31:35.745749692 -0400
-@@ -174,10 +174,10 @@
- if event not in self.hooks:
- raise ValueError('Unsupported event specified, with event name "%s"' % (event))
-
-- if isinstance(hook, collections.Callable):
-+ if isinstance(hook, collections.abc.Callable):
- self.hooks[event].append(hook)
- elif hasattr(hook, '__iter__'):
-- self.hooks[event].extend(h for h in hook if isinstance(h, collections.Callable))
-+ self.hooks[event].extend(h for h in hook if isinstance(h, collections.abc.Callable))
-
- def deregister_hook(self, event, hook):
- """Deregister a previously registered hook.
-@@ -461,7 +461,7 @@
-
- is_stream = all([
- hasattr(data, '__iter__'),
-- not isinstance(data, (basestring, list, tuple, collections.Mapping))
-+ not isinstance(data, (basestring, list, tuple, collections.abc.Mapping))
- ])
-
- try:
-diff -ur a/third_party/python/pipenv/pipenv/patched/notpip/_vendor/requests/structures.py b/third_party/python/pipenv/pipenv/patched/notpip/_vendor/requests/structures.py
---- a/third_party/python/pipenv/pipenv/patched/notpip/_vendor/requests/structures.py 2021-09-01 13:27:00.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/patched/notpip/_vendor/requests/structures.py 2021-11-05 15:29:12.000000000 -0400
-@@ -12,7 +12,7 @@
- from .compat import OrderedDict
-
-
--class CaseInsensitiveDict(collections.MutableMapping):
-+class CaseInsensitiveDict(collections.abc.MutableMapping):
- """A case-insensitive ``dict``-like object.
-
- Implements all methods and operations of
-@@ -71,7 +71,7 @@
- )
-
- def __eq__(self, other):
-- if isinstance(other, collections.Mapping):
-+ if isinstance(other, collections.abc.Mapping):
- other = CaseInsensitiveDict(other)
- else:
- return NotImplemented
-diff -ur a/third_party/python/pipenv/pipenv/patched/notpip/_vendor/requests/utils.py b/third_party/python/pipenv/pipenv/patched/notpip/_vendor/requests/utils.py
---- a/third_party/python/pipenv/pipenv/patched/notpip/_vendor/requests/utils.py 2021-09-01 13:27:00.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/patched/notpip/_vendor/requests/utils.py 2021-11-05 15:31:40.157748665 -0400
-@@ -262,7 +262,7 @@
- if isinstance(value, (str, bytes, bool, int)):
- raise ValueError('cannot encode objects that are not 2-tuples')
-
-- if isinstance(value, collections.Mapping):
-+ if isinstance(value, collections.abc.Mapping):
- value = value.items()
-
- return list(value)
-diff -ur a/third_party/python/pipenv/pipenv/patched/notpip/_vendor/urllib3/_collections.py b/third_party/python/pipenv/pipenv/patched/notpip/_vendor/urllib3/_collections.py
---- a/third_party/python/pipenv/pipenv/patched/notpip/_vendor/urllib3/_collections.py 2021-09-01 13:27:00.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/patched/notpip/_vendor/urllib3/_collections.py 2021-11-05 15:29:12.000000000 -0400
-@@ -1,5 +1,5 @@
- from __future__ import absolute_import
--from collections import Mapping, MutableMapping
-+from collections.abc import Mapping, MutableMapping
- try:
- from threading import RLock
- except ImportError: # Platform-specific: No threads available
-diff -ur a/third_party/python/pipenv/pipenv/vendor/jinja2/sandbox.py b/third_party/python/pipenv/pipenv/vendor/jinja2/sandbox.py
---- a/third_party/python/pipenv/pipenv/vendor/jinja2/sandbox.py 2021-09-01 13:27:09.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/vendor/jinja2/sandbox.py 2021-11-05 15:29:12.000000000 -0400
-@@ -14,7 +14,7 @@
- """
- import types
- import operator
--from collections import Mapping
-+from collections.abc import Mapping
- from jinja2.environment import Environment
- from jinja2.exceptions import SecurityError
- from jinja2._compat import string_types, PY2
-@@ -79,7 +79,7 @@
- pass
-
- #: register Python 2.6 abstract base classes
--from collections import MutableSet, MutableMapping, MutableSequence
-+from collections.abc import MutableSet, MutableMapping, MutableSequence
- _mutable_set_types += (MutableSet,)
- _mutable_mapping_types += (MutableMapping,)
- _mutable_sequence_types += (MutableSequence,)
-diff -ur a/third_party/python/pipenv/pipenv/vendor/jinja2/utils.py b/third_party/python/pipenv/pipenv/vendor/jinja2/utils.py
---- a/third_party/python/pipenv/pipenv/vendor/jinja2/utils.py 2021-09-01 13:27:00.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/vendor/jinja2/utils.py 2021-11-05 15:29:12.000000000 -0400
-@@ -482,7 +482,7 @@
-
- # register the LRU cache as mutable mapping if possible
- try:
-- from collections import MutableMapping
-+ from collections.abc import MutableMapping
- MutableMapping.register(LRUCache)
- except ImportError:
- pass
-diff -ur a/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/distlib/compat.py b/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/distlib/compat.py
---- a/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/distlib/compat.py 2021-09-01 13:27:05.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/distlib/compat.py 2021-11-05 15:29:12.000000000 -0400
-@@ -319,7 +319,7 @@
- try:
- callable = callable
- except NameError: # pragma: no cover
-- from collections import Callable
-+ from collections.abc import Callable
-
- def callable(obj):
- return isinstance(obj, Callable)
-@@ -475,7 +475,7 @@
- try:
- from collections import ChainMap
- except ImportError: # pragma: no cover
-- from collections import MutableMapping
-+ from collections.abc import MutableMapping
-
- try:
- from reprlib import recursive_repr as _recursive_repr
-diff -ur a/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/html5lib/treebuilders/dom.py b/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/html5lib/treebuilders/dom.py
---- a/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/html5lib/treebuilders/dom.py 2021-09-01 13:27:00.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/html5lib/treebuilders/dom.py 2021-11-05 15:29:12.000000000 -0400
-@@ -1,7 +1,7 @@
- from __future__ import absolute_import, division, unicode_literals
-
-
--from collections import MutableMapping
-+from collections.abc import MutableMapping
- from xml.dom import minidom, Node
- import weakref
-
-diff -ur a/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/pyparsing.py b/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/pyparsing.py
---- a/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/pyparsing.py 2021-09-01 13:26:46.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/pyparsing.py 2021-11-05 15:29:12.000000000 -0400
-@@ -940,7 +940,7 @@
- def __dir__(self):
- return (dir(type(self)) + list(self.keys()))
-
--collections.MutableMapping.register(ParseResults)
-+collections.abc.MutableMapping.register(ParseResults)
-
- def col (loc,strg):
- """Returns current column within a string, counting newlines as line separators.
-@@ -3223,7 +3223,7 @@
-
- if isinstance( exprs, basestring ):
- self.exprs = [ ParserElement._literalStringClass( exprs ) ]
-- elif isinstance( exprs, collections.Iterable ):
-+ elif isinstance( exprs, collections.abc.Iterable ):
- exprs = list(exprs)
- # if sequence of strings provided, wrap with Literal
- if all(isinstance(expr, basestring) for expr in exprs):
-@@ -4564,7 +4564,7 @@
- symbols = []
- if isinstance(strs,basestring):
- symbols = strs.split()
-- elif isinstance(strs, collections.Iterable):
-+ elif isinstance(strs, collections.abc.Iterable):
- symbols = list(strs)
- else:
- warnings.warn("Invalid argument to oneOf, expected string or iterable",
-diff -ur a/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/requests/cookies.py b/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/requests/cookies.py
---- a/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/requests/cookies.py 2021-09-01 13:27:00.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/requests/cookies.py 2021-11-05 15:29:12.000000000 -0400
-@@ -169,7 +169,7 @@
- """
-
-
--class RequestsCookieJar(cookielib.CookieJar, collections.MutableMapping):
-+class RequestsCookieJar(cookielib.CookieJar, collections.abc.MutableMapping):
- """Compatibility class; is a cookielib.CookieJar, but exposes a dict
- interface.
-
-diff -ur a/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/requests/models.py b/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/requests/models.py
---- a/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/requests/models.py 2021-09-01 13:26:46.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/requests/models.py 2021-11-05 15:31:52.397745825 -0400
-@@ -174,10 +174,10 @@
- if event not in self.hooks:
- raise ValueError('Unsupported event specified, with event name "%s"' % (event))
-
-- if isinstance(hook, collections.Callable):
-+ if isinstance(hook, collections.abc.Callable):
- self.hooks[event].append(hook)
- elif hasattr(hook, '__iter__'):
-- self.hooks[event].extend(h for h in hook if isinstance(h, collections.Callable))
-+ self.hooks[event].extend(h for h in hook if isinstance(h, collections.abc.Callable))
-
- def deregister_hook(self, event, hook):
- """Deregister a previously registered hook.
-@@ -461,7 +461,7 @@
-
- is_stream = all([
- hasattr(data, '__iter__'),
-- not isinstance(data, (basestring, list, tuple, collections.Mapping))
-+ not isinstance(data, (basestring, list, tuple, collections.abc.Mapping))
- ])
-
- try:
-diff -ur a/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/requests/structures.py b/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/requests/structures.py
---- a/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/requests/structures.py 2021-09-01 13:27:09.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/requests/structures.py 2021-11-05 15:32:02.765743413 -0400
-@@ -12,7 +12,7 @@
- from .compat import OrderedDict
-
-
--class CaseInsensitiveDict(collections.MutableMapping):
-+class CaseInsensitiveDict(collections.abc.MutableMapping):
- """A case-insensitive ``dict``-like object.
-
- Implements all methods and operations of
-@@ -71,7 +71,7 @@
- )
-
- def __eq__(self, other):
-- if isinstance(other, collections.Mapping):
-+ if isinstance(other, collections.abc.Mapping):
- other = CaseInsensitiveDict(other)
- else:
- return NotImplemented
-diff -ur a/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/requests/utils.py b/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/requests/utils.py
---- a/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/requests/utils.py 2021-09-01 13:27:00.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/requests/utils.py 2021-11-05 15:31:57.123744724 -0400
-@@ -262,7 +262,7 @@
- if isinstance(value, (str, bytes, bool, int)):
- raise ValueError('cannot encode objects that are not 2-tuples')
-
-- if isinstance(value, collections.Mapping):
-+ if isinstance(value, collections.abc.Mapping):
- value = value.items()
-
- return list(value)
-diff -ur a/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/urllib3/_collections.py b/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/urllib3/_collections.py
---- a/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/urllib3/_collections.py 2021-09-01 13:27:00.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/urllib3/_collections.py 2021-11-05 15:29:12.000000000 -0400
-@@ -1,5 +1,5 @@
- from __future__ import absolute_import
--from collections import Mapping, MutableMapping
-+from collections.abc import Mapping, MutableMapping
- try:
- from threading import RLock
- except ImportError: # Platform-specific: No threads available
-diff -ur a/third_party/python/pipenv/pipenv/vendor/requests/cookies.py b/third_party/python/pipenv/pipenv/vendor/requests/cookies.py
---- a/third_party/python/pipenv/pipenv/vendor/requests/cookies.py 2021-09-01 13:27:00.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/vendor/requests/cookies.py 2021-11-05 15:29:12.000000000 -0400
-@@ -169,7 +169,7 @@
- """
-
-
--class RequestsCookieJar(cookielib.CookieJar, collections.MutableMapping):
-+class RequestsCookieJar(cookielib.CookieJar, collections.abc.MutableMapping):
- """Compatibility class; is a cookielib.CookieJar, but exposes a dict
- interface.
-
-diff -ur a/third_party/python/pipenv/pipenv/vendor/requests/models.py b/third_party/python/pipenv/pipenv/vendor/requests/models.py
---- a/third_party/python/pipenv/pipenv/vendor/requests/models.py 2021-09-01 13:27:09.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/vendor/requests/models.py 2021-11-05 15:32:09.732741793 -0400
-@@ -174,10 +174,10 @@
- if event not in self.hooks:
- raise ValueError('Unsupported event specified, with event name "%s"' % (event))
-
-- if isinstance(hook, collections.Callable):
-+ if isinstance(hook, collections.abc.Callable):
- self.hooks[event].append(hook)
- elif hasattr(hook, '__iter__'):
-- self.hooks[event].extend(h for h in hook if isinstance(h, collections.Callable))
-+ self.hooks[event].extend(h for h in hook if isinstance(h, collections.abc.Callable))
-
- def deregister_hook(self, event, hook):
- """Deregister a previously registered hook.
-@@ -461,7 +461,7 @@
-
- is_stream = all([
- hasattr(data, '__iter__'),
-- not isinstance(data, (basestring, list, tuple, collections.Mapping))
-+ not isinstance(data, (basestring, list, tuple, collections.abc.Mapping))
- ])
-
- try:
-diff -ur a/third_party/python/pipenv/pipenv/vendor/requests/structures.py b/third_party/python/pipenv/pipenv/vendor/requests/structures.py
---- a/third_party/python/pipenv/pipenv/vendor/requests/structures.py 2021-09-01 13:27:00.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/vendor/requests/structures.py 2021-11-05 15:29:12.000000000 -0400
-@@ -12,7 +12,7 @@
- from .compat import OrderedDict
-
-
--class CaseInsensitiveDict(collections.MutableMapping):
-+class CaseInsensitiveDict(collections.abc.MutableMapping):
- """A case-insensitive ``dict``-like object.
-
- Implements all methods and operations of
-@@ -71,7 +71,7 @@
- )
-
- def __eq__(self, other):
-- if isinstance(other, collections.Mapping):
-+ if isinstance(other, collections.abc.Mapping):
- other = CaseInsensitiveDict(other)
- else:
- return NotImplemented
-diff -ur a/third_party/python/pipenv/pipenv/vendor/requests/utils.py b/third_party/python/pipenv/pipenv/vendor/requests/utils.py
---- a/third_party/python/pipenv/pipenv/vendor/requests/utils.py 2021-09-01 13:27:00.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/vendor/requests/utils.py 2021-11-05 15:32:13.776740860 -0400
-@@ -262,7 +262,7 @@
- if isinstance(value, (str, bytes, bool, int)):
- raise ValueError('cannot encode objects that are not 2-tuples')
-
-- if isinstance(value, collections.Mapping):
-+ if isinstance(value, collections.abc.Mapping):
- value = value.items()
-
- return list(value)
-diff -ur a/third_party/python/pipenv/pipenv/vendor/urllib3/_collections.py b/third_party/python/pipenv/pipenv/vendor/urllib3/_collections.py
---- a/third_party/python/pipenv/pipenv/vendor/urllib3/_collections.py 2021-09-01 13:26:46.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/vendor/urllib3/_collections.py 2021-11-05 15:29:12.000000000 -0400
-@@ -1,5 +1,5 @@
- from __future__ import absolute_import
--from collections import Mapping, MutableMapping
-+from collections.abc import Mapping, MutableMapping
- try:
- from threading import RLock
- except ImportError: # Platform-specific: No threads available
-diff -ur a/third_party/python/pyyaml/lib3/yaml/constructor.py b/third_party/python/pyyaml/lib3/yaml/constructor.py
---- a/third_party/python/pyyaml/lib3/yaml/constructor.py 2021-09-01 13:27:00.000000000 -0400
-+++ b/third_party/python/pyyaml/lib3/yaml/constructor.py 2021-11-05 15:29:12.000000000 -0400
-@@ -123,7 +123,7 @@
- mapping = {}
- for key_node, value_node in node.value:
- key = self.construct_object(key_node, deep=deep)
-- if not isinstance(key, collections.Hashable):
-+ if not isinstance(key, collections.abc.Hashable):
- raise ConstructorError("while constructing a mapping", node.start_mark,
- "found unhashable key", key_node.start_mark)
- value = self.construct_object(value_node, deep=deep)
-diff -ur a/third_party/python/requests/requests/cookies.py b/third_party/python/requests/requests/cookies.py
---- a/third_party/python/requests/requests/cookies.py 2021-09-01 13:27:05.000000000 -0400
-+++ b/third_party/python/requests/requests/cookies.py 2021-11-05 15:29:12.000000000 -0400
-@@ -161,7 +161,7 @@
- Use .get and .set and include domain and path args in order to be more specific."""
-
-
--class RequestsCookieJar(cookielib.CookieJar, collections.MutableMapping):
-+class RequestsCookieJar(cookielib.CookieJar, collections.abc.MutableMapping):
- """Compatibility class; is a cookielib.CookieJar, but exposes a dict
- interface.
-
-diff -ur a/third_party/python/requests/requests/packages/urllib3/_collections.py b/third_party/python/requests/requests/packages/urllib3/_collections.py
---- a/third_party/python/requests/requests/packages/urllib3/_collections.py 2021-09-01 13:27:13.000000000 -0400
-+++ b/third_party/python/requests/requests/packages/urllib3/_collections.py 2021-11-05 15:29:12.000000000 -0400
-@@ -1,5 +1,5 @@
- from __future__ import absolute_import
--from collections import Mapping, MutableMapping
-+from collections.abc import Mapping, MutableMapping
- try:
- from threading import RLock
- except ImportError: # Platform-specific: No threads available
-diff -ur a/third_party/python/requests/requests/structures.py b/third_party/python/requests/requests/structures.py
---- a/third_party/python/requests/requests/structures.py 2021-09-01 13:27:09.000000000 -0400
-+++ b/third_party/python/requests/requests/structures.py 2021-11-05 15:29:12.000000000 -0400
-@@ -11,7 +11,7 @@
- import collections
-
-
--class CaseInsensitiveDict(collections.MutableMapping):
-+class CaseInsensitiveDict(collections.abc.MutableMapping):
- """
- A case-insensitive ``dict``-like object.
-
-@@ -71,7 +71,7 @@
- )
-
- def __eq__(self, other):
-- if isinstance(other, collections.Mapping):
-+ if isinstance(other, collections.abc.Mapping):
- other = CaseInsensitiveDict(other)
- else:
- return NotImplemented
-diff -ur a/third_party/python/requests/requests/utils.py b/third_party/python/requests/requests/utils.py
---- a/third_party/python/requests/requests/utils.py 2021-09-01 13:27:09.000000000 -0400
-+++ b/third_party/python/requests/requests/utils.py 2021-11-05 15:30:55.420759045 -0400
-@@ -189,7 +189,7 @@
- if isinstance(value, (str, bytes, bool, int)):
- raise ValueError('cannot encode objects that are not 2-tuples')
-
-- if isinstance(value, collections.Mapping):
-+ if isinstance(value, collections.abc.Mapping):
- value = value.items()
-
- return list(value)
-diff -ur a/third_party/python/virtualenv/__virtualenv__/distlib-0.3.1-py2.py3-none-any/distlib/compat.py b/third_party/python/virtualenv/__virtualenv__/distlib-0.3.1-py2.py3-none-any/distlib/compat.py
---- a/third_party/python/virtualenv/__virtualenv__/distlib-0.3.1-py2.py3-none-any/distlib/compat.py 2021-09-01 13:27:00.000000000 -0400
-+++ b/third_party/python/virtualenv/__virtualenv__/distlib-0.3.1-py2.py3-none-any/distlib/compat.py 2021-11-05 15:29:12.000000000 -0400
-@@ -481,7 +481,7 @@
- try:
- from collections import ChainMap
- except ImportError: # pragma: no cover
-- from collections import MutableMapping
-+ from collections.abc import MutableMapping
-
- try:
- from reprlib import recursive_repr as _recursive_repr
-diff -ur a/third_party/python/voluptuous/voluptuous/schema_builder.py b/third_party/python/voluptuous/voluptuous/schema_builder.py
---- a/third_party/python/voluptuous/voluptuous/schema_builder.py 2021-09-01 13:27:09.000000000 -0400
-+++ b/third_party/python/voluptuous/voluptuous/schema_builder.py 2021-11-05 15:30:32.399764374 -0400
-@@ -280,7 +280,7 @@
- return schema.__voluptuous_compile__(self)
- if isinstance(schema, Object):
- return self._compile_object(schema)
-- if isinstance(schema, collections.Mapping):
-+ if isinstance(schema, collections.abc.Mapping):
- return self._compile_dict(schema)
- elif isinstance(schema, list):
- return self._compile_list(schema)
diff --git a/srcpkgs/firefox-esr/patches/fix-wasm-arm.patch b/srcpkgs/firefox-esr/patches/fix-wasm-arm.patch
deleted file mode 100644
index a6035e876163..000000000000
--- a/srcpkgs/firefox-esr/patches/fix-wasm-arm.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/js/src/wasm/WasmSignalHandlers.cpp
-+++ b/js/src/wasm/WasmSignalHandlers.cpp
-@@ -243,9 +243,9 @@
- // If you run into compile problems on a tier-3 platform, you can disable the
- // emulation here.
-
--#if defined(__linux__) && defined(__arm__)
--# define WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
--#endif
-+// #if defined(__linux__) && defined(__arm__)
-+// # define WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
-+// #endif
-
- #ifdef WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
- # include <sys/user.h>
diff --git a/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch b/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch
index 70910da5861e..5d17021a99f4 100644
--- a/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch
+++ b/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch
@@ -1,5 +1,5 @@
---- a/media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c 2019-01-29 11:20:52.298793223 +0100
-+++ b/media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c 2019-01-29 11:21:48.250250850 +0100
+--- a/third_party/libwebrtc/webrtc/system_wrappers/source/cpu_features_linux.c 2019-01-29 11:20:52.298793223 +0100
++++ b/third_party/libwebrtc/webrtc/system_wrappers/source/cpu_features_linux.c 2019-01-29 11:21:48.250250850 +0100
@@ -14,7 +14,7 @@
#ifndef __GLIBC_PREREQ
#define __GLIBC_PREREQ(a, b) 0
diff --git a/srcpkgs/firefox-esr/patches/flac-no-ffvpx.patch b/srcpkgs/firefox-esr/patches/flac-no-ffvpx.patch
index 154aad63e33a..ebf48deb9720 100644
--- a/srcpkgs/firefox-esr/patches/flac-no-ffvpx.patch
+++ b/srcpkgs/firefox-esr/patches/flac-no-ffvpx.patch
@@ -12,15 +12,14 @@ index 53fc3c9937f7..b23771ab80fa 100644
namespace mozilla {
-@@ -14,6 +15,11 @@ namespace mozilla {
+@@ -14,6 +15,10 @@ namespace mozilla {
bool FlacDecoder::IsEnabled() {
#ifdef MOZ_FFVPX
return StaticPrefs::media_flac_enabled();
+#elif defined(MOZ_FFMPEG)
+ RefPtr<PDMFactory> platform = new PDMFactory();
+ return StaticPrefs::media_flac_enabled() &&
-+ platform->SupportsMimeType("audio/flac"_ns,
-+ /* DecoderDoctorDiagnostics* */ nullptr);
++ platform->SupportsMimeType("audio/flac"_ns);
#else
// Until bug 1295886 is fixed.
return false;
diff --git a/srcpkgs/firefox-esr/patches/musl-rust.configure.patch b/srcpkgs/firefox-esr/patches/musl-rust.configure.patch
deleted file mode 100644
index 0b2f7dee1d3c..000000000000
--- a/srcpkgs/firefox-esr/patches/musl-rust.configure.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- a/build/moz.configure/rust.configure 2019-10-28 12:05:04.930404603 +0700
-+++ b/build/moz.configure/rust.configure 2019-10-28 12:09:42.742338957 +0700
-@@ -297,11 +297,20 @@
- suffix = 'hf'
- else:
- suffix = ''
-+
-+ narrowed = []
- for p in prefixes:
- for c in candidates:
-- if c.rust_target.startswith('{}-'.format(p)) and \
-- c.rust_target.endswith(suffix):
-- return c.rust_target
-+ if c.rust_target.startswith('{}-'.format(p)):
-+ narrowed.append(c.rust_target)
-+
-+ for target in narrowed:
-+ if target.endswith(host_or_target.raw_os):
-+ return target
-+
-+ for target in narrowed:
-+ if target.endswith(suffix):
-+ return target
-
- # See if we can narrow down on the exact alias
- narrowed = [c for c in candidates if c.target.alias == host_or_target.alias]
diff --git a/srcpkgs/firefox-esr/patches/rust-configure.patch b/srcpkgs/firefox-esr/patches/rust-configure.patch
index 07b98d6c7cae..61fb2ba891d9 100644
--- a/srcpkgs/firefox-esr/patches/rust-configure.patch
+++ b/srcpkgs/firefox-esr/patches/rust-configure.patch
@@ -1,42 +1,112 @@
Mozilla rustc check does not support crossbuild: let's remove it
Remove calls to unwrap_rustup, they fail if rustup isn't present
---- a/build/moz.configure/rust.configure 2019-10-17 04:19:59.000000000 +0700
-+++ b/build/moz.configure/rust.configure 2019-10-22 11:48:55.616022140 +0700
-@@ -78,9 +78,6 @@
-
+Do not try to figure out the rust target as it is broken on musl
+instead use what is set in RUST_TARGET
+
+Skip extra checks on cross builds (broken for arm*)
+
+--- a/build/moz.configure/rust.configure 2020-12-12 01:35:33.000000000 +0100
++++ b/build/moz.configure/rust.configure 2020-12-15 19:45:16.467750787 +0100
+@@ -91,9 +91,6 @@
return unwrap
--rustc = unwrap_rustup(rustc, 'rustc')
--cargo = unwrap_rustup(cargo, 'cargo')
+
+-rustc = unwrap_rustup(rustc, "rustc")
+-cargo = unwrap_rustup(cargo, "cargo")
-
- set_config('CARGO', cargo)
- set_config('RUSTC', rustc)
-@@ -348,26 +345,6 @@
+ set_config("CARGO", cargo)
+ set_config("RUSTC", rustc)
+@@ -260,7 +257,9 @@
+ data.setdefault(key, []).append(namespace(rust_target=t, target=info))
+ return data
+
+-
++@imports('os')
++@imports(_from='mozbuild.util', _import='ensure_unicode')
++@imports(_from='mozbuild.util', _import='system_encoding')
+ def detect_rustc_target(
+ host_or_target, compiler_info, arm_target, rust_supported_targets
+ ):
+@@ -382,12 +381,12 @@
+
+ return None
+
+- rustc_target = find_candidate(candidates)
++ rustc_target = os.environ['RUST_TARGET']
- os.write(in_fd, source)
- os.close(in_fd)
+ if rustc_target is None:
+ die("Don't know how to translate {} for rustc".format(host_or_target.alias))
+
+- return rustc_target
++ return ensure_unicode(rustc_target, system_encoding)
+
+
+ @imports("os")
+@@ -410,35 +409,6 @@
+
+ os.write(in_fd, ensure_binary(source))
+ os.close(in_fd)
-
-- cmd = [
-- rustc,
-- '--crate-type', 'staticlib',
-- target_arg,
-- '-o', out_path,
-- in_path,
-- ]
+- cmd = [
+- rustc,
+- "--crate-type",
+- "staticlib",
+- target_arg,
+- "-o",
+- out_path,
+- in_path,
+- ]
-
-- def failed():
-- die(dedent('''\
-- Cannot compile for {} with {}
-- The target may be unsupported, or you may not have
-- a rust std library for that target installed. Try:
+- def failed():
+- die(
+- dedent(
+- """\
+- Cannot compile for {} with {}
+- The target may be unsupported, or you may not have
+- a rust std library for that target installed. Try:
-
-- rustup target add {}
-- '''.format(host_or_target.alias, rustc, rustc_target)))
-- check_cmd_output(*cmd, onerror=failed)
-- if not os.path.exists(out_path) or os.path.getsize(out_path) == 0:
-- failed()
- finally:
- os.remove(in_path)
- os.remove(out_path)
+- rustup target add {}
+- """.format(
+- host_or_target.alias, rustc, rustc_target
+- )
+- )
+- )
+-
+- check_cmd_output(*cmd, onerror=failed)
+- if not os.path.exists(out_path) or os.path.getsize(out_path) == 0:
+- failed()
+ finally:
+ os.remove(in_path)
+ os.remove(out_path)
+@@ -462,28 +432,7 @@
+ host, compiler_info, arm_target, rust_supported_targets
+ )
+ if rustc_target != rustc_host:
+- if host.alias == rustc_target:
+- configure_host = host.alias
+- else:
+- configure_host = "{}/{}".format(host.alias, rustc_target)
+- die(
+- dedent(
+- """\
+- The rust compiler host ({rustc}) is not suitable for the configure host ({configure}).
+-
+- You can solve this by:
+- * Set your configure host to match the rust compiler host by editing your
+- mozconfig and adding "ac_add_options --host={rustc}".
+- * Or, install the rust toolchain for {configure}, if supported, by running
+- "rustup default stable-{rustc_target}"
+- """.format(
+- rustc=rustc_host,
+- configure=configure_host,
+- rustc_target=rustc_target,
+- )
+- )
+- )
+- assert_rust_compile(host, rustc_target, rustc)
++ return rustc_host
+ return rustc_target
+
+
diff --git a/srcpkgs/firefox-esr/patches/rust-has-i128.patch b/srcpkgs/firefox-esr/patches/rust-has-i128.patch
deleted file mode 100644
index c25a185c1c11..000000000000
--- a/srcpkgs/firefox-esr/patches/rust-has-i128.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-The configure check fails for cross builds.
-i128 is supported since rust-1.26, so it is safe for us to assume it is always present
-
---- a/third_party/rust/num-traits/build.rs 2020-02-14 23:57:25.985355610 +0100
-+++ b/third_party/rust/num-traits/build.rs 2020-02-14 23:58:36.255710188 +0100
-@@ -1,14 +1,5 @@
--extern crate autocfg;
--
--use std::env;
--
- fn main() {
-- let ac = autocfg::new();
-- if ac.probe_type("i128") {
-- println!("cargo:rustc-cfg=has_i128");
-- } else if env::var_os("CARGO_FEATURE_I128").is_some() {
-- panic!("i128 support was not detected!");
-- }
-+ println!("cargo:rustc-cfg=has_i128");
-
- autocfg::rerun_path("build.rs");
- }
diff --git a/srcpkgs/firefox-esr/patches/sandbox-fork.patch b/srcpkgs/firefox-esr/patches/sandbox-fork.patch
index 328943cb0013..d4584e74b91c 100644
--- a/srcpkgs/firefox-esr/patches/sandbox-fork.patch
+++ b/srcpkgs/firefox-esr/patches/sandbox-fork.patch
@@ -2,12 +2,14 @@ make SYS_fork non-fatal, musl uses it for fork(2)
--- a/security/sandbox/linux/SandboxFilter.cpp
+++ b/security/sandbox/linux/SandboxFilter.cpp
-@@ -1253,6 +1253,8 @@
+@@ -1420,6 +1420,10 @@
// usually do something reasonable on error.
case __NR_clone:
return ClonePolicy(Error(EPERM));
++# ifdef __NR_fork
+ case __NR_fork:
+ return Error(ENOSYS);
++# endif
# ifdef __NR_fadvise64
case __NR_fadvise64:
diff --git a/srcpkgs/firefox-esr/patches/sndio.patch b/srcpkgs/firefox-esr/patches/sndio.patch
index 959fc1ec913a..68628bea8d8f 100644
--- a/srcpkgs/firefox-esr/patches/sndio.patch
+++ b/srcpkgs/firefox-esr/patches/sndio.patch
@@ -42,11 +42,11 @@
if CONFIG['OS_TARGET'] == 'Darwin':
--- a/build/moz.configure/old.configure 2020-06-30 12:17:04.087609070 +0200
+++ b/build/moz.configure/old.configure 2020-06-30 12:17:04.087609070 +0200
-@@ -210,6 +210,7 @@
+@@ -88,6 +88,7 @@
@old_configure_options(
- '--cache-file',
- '--datadir',
-+ '--enable-sndio',
- '--enable-crashreporter',
- '--enable-dbus',
- '--enable-debug-js-modules',
+ "--cache-file",
+ "--datadir",
++ "--enable-sndio",
+ "--enable-crashreporter",
+ "--enable-dbus",
+ "--enable-debug-js-modules",
diff --git a/srcpkgs/firefox-esr/template b/srcpkgs/firefox-esr/template
index 33fa4dfaf2a0..35e7b0be93c8 100644
--- a/srcpkgs/firefox-esr/template
+++ b/srcpkgs/firefox-esr/template
@@ -3,58 +3,63 @@
# THIS PKG MUST BE SYNCHRONIZED WITH "srcpkgs/firefox-esr-i18n".
#
pkgname=firefox-esr
-version=78.14.0
+version=91.3.0
revision=1
wrksrc="firefox-${version}"
-build_helper="rust qemu"
+build_helper="rust"
+short_desc="Mozilla Firefox web browser - Extended Support Release"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="MPL-2.0, GPL-2.0-or-later, LGPL-2.1-or-later"
+homepage="https://www.mozilla.org/firefox/"
+distfiles="${MOZILLA_SITE}/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz"
+checksum=128b5349f112d8a0fd8698f3645ed43ea29d4b95047b7c4fd770b95d0661e96c
+
+lib32disabled=yes
+
hostmakedepends="autoconf213 unzip zip pkg-config perl python3 yasm rust cargo
llvm clang nodejs-lts cbindgen python nasm which tar"
-makedepends="nss-devel libjpeg-turbo-devel gtk+-devel gtk+3-devel icu-devel
+makedepends="nss-devel libjpeg-turbo-devel gtk+3-devel icu-devel
pixman-devel libevent-devel libnotify-devel libvpx-devel
libXrender-devel libXcomposite-devel libSM-devel libXt-devel rust-std
libXdamage-devel freetype-devel $(vopt_if alsa alsa-lib-devel)
$(vopt_if dbus dbus-glib-devel) $(vopt_if pulseaudio pulseaudio-devel)
$(vopt_if xscreensaver libXScrnSaver-devel)
$(vopt_if sndio sndio-devel) $(vopt_if jack jack-devel)"
-depends="nss>=3.53 desktop-file-utils hicolor-icon-theme"
-short_desc="Firefox browser - Extended Support Release"
-maintainer="Orphaned <orphan@voidlinux.org>"
-license="MPL-2.0, GPL-2.0-or-later, LGPL-2.1-or-later"
-homepage="https://www.mozilla.org/firefox/organizations/"
-distfiles="${MOZILLA_SITE}/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz"
-checksum=aa0e28a4150c33a165120a24f20e0373e74635c9f812732a08850d71cda3b2fa
-lib32disabled=yes
+depends="nss>=3.66 nspr>=4.32 desktop-file-utils hicolor-icon-theme"
conflicts="firefox>=0"
build_options="alsa jack dbus pulseaudio xscreensaver sndio wayland"
build_options_default="alsa jack dbus pulseaudio xscreensaver sndio wayland"
-if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
- makedepends+=" libatomic-devel"
-fi
-
case $XBPS_TARGET_MACHINE in
- armv[56]*) broken="required NEON extensions are not supported on armv[56]" ;;
+ armv[56]*) broken="required NEON extensions are not supported on armv6" ;;
ppc64*) ;;
ppc*) broken="xptcall bitrot" ;;
esac
-CXXFLAGS="-Wno-class-memaccess -Wno-unused-function"
+if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
+ makedepends+=" libatomic-devel"
+fi
+
+# work around large debug symbols on 32-bit hosts
+# cargo:warning=cc1plus: out of memory allocating 65536 bytes after a total of 1010126848 bytes
+if [ "$XBPS_WORDSIZE" = "32" ]; then
+ nodebug=yes
+fi
-# We need this because cargo verifies checksums of all files
-# in vendor crates when it builds and gives us no way to
-# override or update the file sanely... so just clear out the file list
+# we need this because cargo verifies checksums of all files in vendor
+# crates when it builds and gives us no way to override or update the
+# file sanely... so just clear out the file list
_clear_vendor_checksums() {
sed -i 's/\("files":{\)[^}]*/\1/' third_party/rust/$1/.cargo-checksum.json
}
post_extract() {
- if [ "$XBPS_TARGET_LIBC" = musl ]; then
+ case "$XBPS_TARGET_MACHINE" in
+ *-musl)
cp "${FILESDIR}/stab.h" toolkit/crashreporter/google-breakpad/src/
- fi
- # Google API key (see http://www.chromium.org/developers/how-tos/api-keys)
- # Note: This is for Void Linux use ONLY.
- echo -n "AIzaSyCIFdBA7eQP43R6kXRwTq7j6Mvj1ITze90" > google-api-key
+ ;;
+ esac
# Mozilla API keys (see https://location.services.mozilla.com/api)
# Note: This is for Void Linux use ONLY.
@@ -63,20 +68,20 @@ post_extract() {
post_patch() {
_clear_vendor_checksums num-traits
- _clear_vendor_checksums glslopt
}
do_build() {
- cp ${FILESDIR}/mozconfig .mozconfig
+ cp "${FILESDIR}/mozconfig" "${wrksrc}/.mozconfig"
- if [ "$XBPS_TARGET_LIBC" = musl ]; then
+ case "$XBPS_TARGET_MACHINE" in
+ *-musl)
echo "ac_add_options --disable-jemalloc" >>.mozconfig
echo "ac_add_options --disable-gold" >>.mozconfig
- echo "ac_add_options --enable-release" >>.mozconfig
- fi
+ ;;
+ esac
case "$XBPS_TARGET_MACHINE" in
- arm*|x86_64*|i686*)
+ x86_64*|i686*|arm*)
echo "ac_add_options --disable-elf-hack" >>.mozconfig
;;
esac
@@ -98,16 +103,17 @@ do_build() {
export BINDGEN_CFLAGS="--target=$XBPS_CROSS_TRIPLET \
--sysroot=${XBPS_CROSS_BASE} ${BINDGEN_INCLUDE_FLAGS}"
- export HOST_CC="${CC_host}"
+ export HOST_CC=cc
export TARGET_CC="${CC}"
export HOST_CFLAGS="${XBPS_CFLAGS}"
export HOST_CXXFLAGS="${XBPS_CXXFLAGS}"
- echo "ac_cv_sqlite_secure_delete=yes" >> .mozconfig
- echo "ac_cv_sqlite_threadsafe=yes" >> .mozconfig
- echo "ac_cv_sqlite_enable_fts3=yes" >> .mozconfig
- echo "ac_cv_sqlite_dbstat_vtab=yes" >> .mozconfig
- echo "ac_cv_sqlite_enable_unlock_notify=yes" >> .mozconfig
- echo "ac_cv_prog_hostcxx_works=1" >> .mozconfig
+ export ac_cv_sqlite_secure_delete=yes \
+ ac_cv_sqlite_threadsafe=yes \
+ ac_cv_sqlite_enable_fts3=yes \
+ ac_cv_sqlite_dbstat_vtab=yes \
+ ac_cv_sqlite_enable_unlock_notify=yes \
+ ac_cv_prog_hostcxx_works=1
+
echo "ac_add_options --target=$XBPS_CROSS_TRIPLET" >>.mozconfig
echo "ac_add_options --host=$XBPS_TRIPLET" >>.mozconfig
else
@@ -126,19 +132,18 @@ do_build() {
# work around large debug symbols on 32-bit hosts
if [ "$XBPS_WORDSIZE" = "32" ]; then
- export CFLAGS="${CFLAGS/-g/-g1}"
- export CXXFLAGS="${CXXFLAGS/-g/-g1}"
+ echo "ac_add_options --disable-debug-symbols" >>.mozconfig
+ echo "ac_add_options --disable-debug" >>.mozconfig
export LDFLAGS+=" -Wl,--no-keep-memory"
# patch the rust debug level, this is hardcoded
- sed -i "s/debug_info = '2'/debug_info = '1'/" \
+ vsed -i 's/debug_info = "2"/debug_info = "0"/' \
build/moz.configure/toolchain.configure
fi
- # FIXME: incompatible with rust 1.48 in this release
- #case "$XBPS_TARGET_MACHINE" in
- #aarch64*|i686*|x86_64*)
- # echo "ac_add_options --enable-rust-simd" >>.mozconfig ;;
- #esac
+ case "$XBPS_TARGET_MACHINE" in
+ aarch64*|i686*|x86_64*)
+ echo "ac_add_options --enable-rust-simd" >>.mozconfig ;;
+ esac
export LDFLAGS+=" -Wl,-rpath=/usr/lib/firefox"
@@ -153,9 +158,7 @@ do_build() {
export AS=$CC
- cat >>.mozconfig <<EOF
-ac_add_options --with-google-location-service-api-keyfile="${wrksrc}/google-api-key"
-ac_add_options --with-google-safebrowsing-api-keyfile="${wrksrc}/google-api-key"
+ cat <<! >>.mozconfig
ac_add_options --with-mozilla-api-keyfile="${wrksrc}/mozilla-api-key"
ac_add_options $(vopt_enable alsa)
ac_add_options $(vopt_enable jack)
@@ -164,42 +167,28 @@ ac_add_options $(vopt_enable dbus)
ac_add_options $(vopt_enable dbus necko-wifi)
ac_add_options $(vopt_enable pulseaudio)
ac_add_options --enable-default-toolkit=$(vopt_if wayland 'cairo-gtk3-wayland' 'cairo-gtk3')
-EOF
+!
+
rm -f old-configure
./mach build
-
- # Make langpacks for all languages
- dir=$(ls -d obj-*/browser/locales)
- cd ${wrksrc}/${dir}
- for lang in ${languages[*]}; do
- msg_normal "Making langpack for ${lang} ...\n"
- make ${makejobs} langpack-${lang} LOCALE_MERGEDIR=.
- done
}
-
do_install() {
export MACH_USE_SYSTEM_PYTHON=1
DESTDIR="$DESTDIR" ./mach install
- vbin ${FILESDIR}/firefox-wayland
vinstall ${FILESDIR}/vendor.js 644 usr/lib/firefox/browser/defaults/preferences
vinstall taskcluster/docker/firefox-snap/firefox.desktop 644 usr/share/applications
- for i in 16x16 22x22 24x24 32x32 48x48 256x256; do
+ for i in 16x16 22x22 24x24 32x32 48x48 128x128 256x256; do
vinstall ${wrksrc}/browser/branding/official/default${i%x*}.png 644 \
usr/share/icons/hicolor/${i}/apps firefox.png
done
- vinstall ${wrksrc}/browser/branding/official/default256.png 644 \
- usr/share/pixmaps firefox.png
- # Use system-provided dictionaries
- rm -rf ${DESTDIR}/usr/lib/firefox/{dictionaries,hyphenation}
- ln -s /usr/share/hunspell ${DESTDIR}/usr/lib/firefox/dictionaries
- ln -s /usr/share/hyphen ${DESTDIR}/usr/lib/firefox/hyphenation
+ # We don't want the development stuff
+ rm -rf ${DESTDIR}/usr/{include,lib/firefox-devel,share/idl}
# https://bugzilla.mozilla.org/show_bug.cgi?id=658850
ln -sf firefox ${DESTDIR}/usr/lib/firefox/firefox-bin
- # Remove the development files - noone uses them
- rm -rf ${DESTDIR}/usr/{include,lib/firefox-devel,share/idl}
+ vbin ${FILESDIR}/firefox-wayland
}
diff --git a/srcpkgs/firefox-esr/update b/srcpkgs/firefox-esr/update
index 61f68de4f42a..946c8a7aaa49 100644
--- a/srcpkgs/firefox-esr/update
+++ b/srcpkgs/firefox-esr/update
@@ -1,2 +1,2 @@
-site="${MOZILLA_SITE}/firefox/releases/"
-pattern="[\d.]+(?=esr)"
+site="${MOZILLA_SITE}/${pkgname}/releases/"
+pattern="\">\K[0-9.]+(?=/</a>)"
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PR REVIEW] firefox-esr: update to 91.3.0.
2021-11-20 14:23 [PR PATCH] firefox-esr: update to 91.3.0 jdnuemm
@ 2021-11-20 15:05 ` abenson
2021-11-20 15:06 ` abenson
` (8 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: abenson @ 2021-11-20 15:05 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 151 bytes --]
New review comment by abenson on void-packages repository
https://github.com/void-linux/void-packages/pull/34167#discussion_r753683430
Comment:
why?
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: firefox-esr: update to 91.3.0.
2021-11-20 14:23 [PR PATCH] firefox-esr: update to 91.3.0 jdnuemm
2021-11-20 15:05 ` [PR REVIEW] " abenson
@ 2021-11-20 15:06 ` abenson
2021-11-21 9:58 ` [PR PATCH] [Updated] " jdnuemm
` (7 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: abenson @ 2021-11-20 15:06 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 226 bytes --]
New comment by abenson on void-packages repository
https://github.com/void-linux/void-packages/pull/34167#issuecomment-974662677
Comment:
I would prefer this and the other PR be combined since they need to be synced anyway.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PR PATCH] [Updated] firefox-esr: update to 91.3.0.
2021-11-20 14:23 [PR PATCH] firefox-esr: update to 91.3.0 jdnuemm
2021-11-20 15:05 ` [PR REVIEW] " abenson
2021-11-20 15:06 ` abenson
@ 2021-11-21 9:58 ` jdnuemm
2021-11-21 10:01 ` [PR REVIEW] " jdnuemm
` (6 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: jdnuemm @ 2021-11-21 9:58 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 588 bytes --]
There is an updated pull request by jdnuemm against master on the void-packages repository
https://github.com/jdnuemm/void-packages firefox-esr-91.3.0
https://github.com/void-linux/void-packages/pull/34167
firefox-esr: update to 91.3.0.
Testing the changes:
- I tested the changes in this PR: briefly
Local build testing:
- I built this PR locally for my native architecture, x86_64-glibc
Note:
I use the Patches from Thunderbird and sync the template with Firefox.
[skip CI]
A patch file from https://github.com/void-linux/void-packages/pull/34167.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-firefox-esr-91.3.0-34167.patch --]
[-- Type: text/x-diff, Size: 80892 bytes --]
From 6384016299464666803cbdc7c29f14cbf041bf7a Mon Sep 17 00:00:00 2001
From: Johannes Daniel Nuemm <daniel.nuemm@blacktre.es>
Date: Thu, 18 Nov 2021 18:33:41 +0100
Subject: [PATCH 1/2] firefox-esr: update to 91.3.0.
---
srcpkgs/firefox-esr/files/mozconfig | 1 +
srcpkgs/firefox-esr/files/vendor.js | 2 +-
.../patches/avoid-redefinition.patch | 15 +
srcpkgs/firefox-esr/patches/fix-cross.patch | 16 -
.../patches/fix-fortify-inline.patch | 11 -
.../firefox-esr/patches/fix-i386-fdlibm.patch | 18 +
.../firefox-esr/patches/fix-python3.10.patch | 826 ------------------
.../firefox-esr/patches/fix-wasm-arm.patch | 15 -
.../patches/fix-webrtc-glibcisms.patch | 4 +-
.../firefox-esr/patches/flac-no-ffvpx.patch | 5 +-
.../patches/musl-rust.configure.patch | 26 -
.../firefox-esr/patches/rust-configure.patch | 132 ++-
.../firefox-esr/patches/rust-has-i128.patch | 21 -
.../firefox-esr/patches/sandbox-fork.patch | 4 +-
srcpkgs/firefox-esr/patches/sndio.patch | 14 +-
srcpkgs/firefox-esr/template | 127 ++-
16 files changed, 208 insertions(+), 1029 deletions(-)
create mode 100644 srcpkgs/firefox-esr/patches/avoid-redefinition.patch
delete mode 100644 srcpkgs/firefox-esr/patches/fix-cross.patch
delete mode 100644 srcpkgs/firefox-esr/patches/fix-fortify-inline.patch
create mode 100644 srcpkgs/firefox-esr/patches/fix-i386-fdlibm.patch
delete mode 100644 srcpkgs/firefox-esr/patches/fix-python3.10.patch
delete mode 100644 srcpkgs/firefox-esr/patches/fix-wasm-arm.patch
delete mode 100644 srcpkgs/firefox-esr/patches/musl-rust.configure.patch
delete mode 100644 srcpkgs/firefox-esr/patches/rust-has-i128.patch
diff --git a/srcpkgs/firefox-esr/files/mozconfig b/srcpkgs/firefox-esr/files/mozconfig
index 708ee9eded9b..fa5a7a42e04b 100644
--- a/srcpkgs/firefox-esr/files/mozconfig
+++ b/srcpkgs/firefox-esr/files/mozconfig
@@ -32,4 +32,5 @@ ac_add_options --enable-optimize="$CFLAGS"
ac_add_options --enable-official-branding
ac_add_options --enable-application=browser
+
ac_add_options --allow-addon-sideload
diff --git a/srcpkgs/firefox-esr/files/vendor.js b/srcpkgs/firefox-esr/files/vendor.js
index d8d606bc15d7..5be4f1b5f3ff 100644
--- a/srcpkgs/firefox-esr/files/vendor.js
+++ b/srcpkgs/firefox-esr/files/vendor.js
@@ -1,5 +1,5 @@
// Use LANG environment variable to choose locale
-pref("intl.locale.matchOS", true);
+pref("intl.locale.requested", "");
// Disable default browser checking.
pref("browser.shell.checkDefaultBrowser", false);
diff --git a/srcpkgs/firefox-esr/patches/avoid-redefinition.patch b/srcpkgs/firefox-esr/patches/avoid-redefinition.patch
new file mode 100644
index 000000000000..867d37c62a90
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/avoid-redefinition.patch
@@ -0,0 +1,15 @@
+Author: Rasmus Thomsen <oss@cogitri.dev>
+Reason: FF is mixing userspace net headers (net/if.h) and kernelspace ones
+(linux/if.h), leading to redefinitions. We need to include net/if.h before
+linux/if.h because linux/if.h has redifinition guards whereas net/if.h doesnt
+Upstream: No
+--- a/dom/media/webrtc/transport/third_party/nICEr/src/stun/addrs-netlink.c 2020-07-28 19:24:32.359751046 +0200
++++ b/dom/media/webrtc/transport/third_party/nICEr/src/stun/addrs-netlink.c 2020-07-28 19:24:37.856343751 +0200
+@@ -31,6 +31,7 @@
+ */
+
+ #if defined(LINUX)
++#include <net/if.h>
+ #include "addrs-netlink.h"
+ #include <csi_platform.h>
+ #include <assert.h>
diff --git a/srcpkgs/firefox-esr/patches/fix-cross.patch b/srcpkgs/firefox-esr/patches/fix-cross.patch
deleted file mode 100644
index fad8f9060c46..000000000000
--- a/srcpkgs/firefox-esr/patches/fix-cross.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-terrible hack to fix cross builds
-overwrite HOST_* flags to get rid of -MF
-
-note: this patch was used from firefox-77 until 80, dropped with the update to 81
-
---- a/third_party/rust/glslopt/build.rs
-+++ b/third_party/rust/glslopt/build.rs
-@@ -28,6 +28,8 @@
- env::remove_var(format!("CXXFLAGS_{}", &target));
- env::remove_var(format!("CFLAGS_{}", target.replace("-", "_")));
- env::remove_var(format!("CXXFLAGS_{}", target.replace("-", "_")));
-+ env::set_var("HOST_CFLAGS", "-O2");
-+ env::set_var("HOST_CXXFLAGS", "-O2");
-
- configure(&mut cc::Build::new())
- .warnings(false)
diff --git a/srcpkgs/firefox-esr/patches/fix-fortify-inline.patch b/srcpkgs/firefox-esr/patches/fix-fortify-inline.patch
deleted file mode 100644
index 2498c57fc738..000000000000
--- a/srcpkgs/firefox-esr/patches/fix-fortify-inline.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/media/webrtc/signaling/src/sdp/sipcc/sdp_os_defs.h
-+++ b/media/webrtc/signaling/src/sdp/sipcc/sdp_os_defs.h
-@@ -27,8 +27,5 @@
- typedef int16_t int16;
- typedef unsigned short ushort;
- typedef unsigned long ulong;
--#ifndef __GNUC_STDC_INLINE__
--#define inline
--#endif
-
- #endif /* _SDP_OS_DEFS_H_ */
diff --git a/srcpkgs/firefox-esr/patches/fix-i386-fdlibm.patch b/srcpkgs/firefox-esr/patches/fix-i386-fdlibm.patch
new file mode 100644
index 000000000000..831e5e03678d
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/fix-i386-fdlibm.patch
@@ -0,0 +1,18 @@
+# error: typedef redefinition with different types ('__double_t' (aka 'double') vs 'long double')
+# https://bugzilla.mozilla.org/show_bug.cgi?id=1729459
+
+--- a/modules/fdlibm/src/math_private.h
++++ b/modules/fdlibm/src/math_private.h
+@@ -30,7 +30,12 @@
+ * Adapted from https://github.com/freebsd/freebsd-src/search?q=__double_t
+ */
+
++#if defined(__linux__) && defined(__i386__)
++// rely on glibc's double_t
++typedef long double __double_t;
++#else
+ typedef double __double_t;
++#endif
+ typedef __double_t double_t;
+
+ /*
diff --git a/srcpkgs/firefox-esr/patches/fix-python3.10.patch b/srcpkgs/firefox-esr/patches/fix-python3.10.patch
deleted file mode 100644
index 143e58782581..000000000000
--- a/srcpkgs/firefox-esr/patches/fix-python3.10.patch
+++ /dev/null
@@ -1,826 +0,0 @@
-diff -ur a/python/mach/mach/config.py b/python/mach/mach/config.py
---- a/python/mach/mach/config.py 2021-09-01 13:26:18.000000000 -0400
-+++ b/python/mach/mach/config.py 2021-11-05 15:29:12.000000000 -0400
-@@ -144,7 +144,7 @@
- return _
-
-
--class ConfigSettings(collections.Mapping):
-+class ConfigSettings(collections.abc.Mapping):
- """Interface for configuration settings.
-
- This is the main interface to the configuration.
-@@ -190,7 +190,7 @@
- will result in exceptions being raised.
- """
-
-- class ConfigSection(collections.MutableMapping, object):
-+ class ConfigSection(collections.abc.MutableMapping, object):
- """Represents an individual config section."""
- def __init__(self, config, name, settings):
- object.__setattr__(self, '_config', config)
-diff -ur a/python/mach/mach/decorators.py b/python/mach/mach/decorators.py
---- a/python/mach/mach/decorators.py 2021-09-01 13:26:18.000000000 -0400
-+++ b/python/mach/mach/decorators.py 2021-11-05 15:29:12.000000000 -0400
-@@ -140,7 +140,7 @@
- 'Conditions argument must take a list ' + \
- 'of functions. Found %s instead.'
-
-- if not isinstance(command.conditions, collections.Iterable):
-+ if not isinstance(command.conditions, collections.abc.Iterable):
- msg = msg % (command.name, type(command.conditions))
- raise MachError(msg)
-
-diff -ur a/python/mach/mach/main.py b/python/mach/mach/main.py
---- a/python/mach/mach/main.py 2021-09-01 13:26:23.000000000 -0400
-+++ b/python/mach/mach/main.py 2021-11-05 15:29:12.000000000 -0400
-@@ -16,7 +16,7 @@
- import sys
- import traceback
- import uuid
--from collections import Iterable
-+from collections.abc import Iterable
-
- from six import string_types
-
-diff -ur a/python/mozbuild/mozbuild/backend/configenvironment.py b/python/mozbuild/mozbuild/backend/configenvironment.py
---- a/python/mozbuild/mozbuild/backend/configenvironment.py 2021-09-01 13:26:34.000000000 -0400
-+++ b/python/mozbuild/mozbuild/backend/configenvironment.py 2021-11-05 15:29:12.000000000 -0400
-@@ -9,7 +9,8 @@
- import sys
- import json
-
--from collections import Iterable, OrderedDict
-+from collections import OrderedDict
-+from collections.abc import Iterable
- from types import ModuleType
-
- import mozpack.path as mozpath
-diff -ur a/python/mozbuild/mozbuild/makeutil.py b/python/mozbuild/mozbuild/makeutil.py
---- a/python/mozbuild/mozbuild/makeutil.py 2021-09-01 13:26:18.000000000 -0400
-+++ b/python/mozbuild/mozbuild/makeutil.py 2021-11-05 15:29:12.000000000 -0400
-@@ -7,7 +7,7 @@
- import os
- import re
- import six
--from collections import Iterable
-+from collections.abc import Iterable
-
-
- class Makefile(object):
-diff -ur a/python/mozbuild/mozbuild/util.py b/python/mozbuild/mozbuild/util.py
---- a/python/mozbuild/mozbuild/util.py 2021-09-01 13:26:18.000000000 -0400
-+++ b/python/mozbuild/mozbuild/util.py 2021-11-05 15:29:12.000000000 -0400
-@@ -782,7 +782,7 @@
- self._strings = StrictOrderingOnAppendList()
- self._children = {}
-
-- class StringListAdaptor(collections.Sequence):
-+ class StringListAdaptor(collections.abc.Sequence):
- def __init__(self, hsl):
- self._hsl = hsl
-
-diff -ur a/testing/marionette/client/marionette_driver/wait.py b/testing/marionette/client/marionette_driver/wait.py
---- a/testing/marionette/client/marionette_driver/wait.py 2021-09-01 13:26:30.000000000 -0400
-+++ b/testing/marionette/client/marionette_driver/wait.py 2021-11-05 15:29:12.000000000 -0400
-@@ -82,7 +82,7 @@
-
- exceptions = []
- if ignored_exceptions is not None:
-- if isinstance(ignored_exceptions, collections.Iterable):
-+ if isinstance(ignored_exceptions, collections.abc.Iterable):
- exceptions.extend(iter(ignored_exceptions))
- else:
- exceptions.append(ignored_exceptions)
-diff -ur a/testing/mozbase/manifestparser/manifestparser/filters.py b/testing/mozbase/manifestparser/manifestparser/filters.py
---- a/testing/mozbase/manifestparser/manifestparser/filters.py 2021-09-01 13:26:23.000000000 -0400
-+++ b/testing/mozbase/manifestparser/manifestparser/filters.py 2021-11-05 15:29:12.000000000 -0400
-@@ -12,7 +12,8 @@
-
- import itertools
- import os
--from collections import defaultdict, MutableSequence
-+from collections import defaultdict
-+from collections.abc import MutableSequence
-
- import six
- from six import string_types
-diff -ur a/testing/mozbase/versioninfo.py b/testing/mozbase/versioninfo.py
---- a/testing/mozbase/versioninfo.py 2021-09-01 13:26:23.000000000 -0400
-+++ b/testing/mozbase/versioninfo.py 2021-11-05 15:29:12.000000000 -0400
-@@ -11,7 +11,7 @@
-
- from __future__ import absolute_import, print_function
-
--from collections import Iterable
-+from collections.abc import Iterable
- from distutils.version import StrictVersion
- import argparse
- import os
-diff -ur a/testing/web-platform/tests/tools/manifest/typedata.py b/testing/web-platform/tests/tools/manifest/typedata.py
---- a/testing/web-platform/tests/tools/manifest/typedata.py 2021-09-01 13:26:40.000000000 -0400
-+++ b/testing/web-platform/tests/tools/manifest/typedata.py 2021-11-05 15:29:12.000000000 -0400
-@@ -1,4 +1,4 @@
--from collections import MutableMapping
-+from collections.abc import MutableMapping
-
- from six import itervalues, iteritems
-
-diff -ur a/testing/web-platform/tests/tools/manifest/vcs.py b/testing/web-platform/tests/tools/manifest/vcs.py
---- a/testing/web-platform/tests/tools/manifest/vcs.py 2021-09-01 13:27:05.000000000 -0400
-+++ b/testing/web-platform/tests/tools/manifest/vcs.py 2021-11-05 15:29:12.000000000 -0400
-@@ -3,7 +3,7 @@
- import os
- import stat
- from collections import deque
--from collections import MutableMapping
-+from collections.abc import MutableMapping
-
- from six import with_metaclass, PY2
-
-diff -ur a/testing/web-platform/tests/tools/third_party/attrs/tests/test_funcs.py b/testing/web-platform/tests/tools/third_party/attrs/tests/test_funcs.py
---- a/testing/web-platform/tests/tools/third_party/attrs/tests/test_funcs.py 2021-09-01 13:26:56.000000000 -0400
-+++ b/testing/web-platform/tests/tools/third_party/attrs/tests/test_funcs.py 2021-11-05 15:29:12.000000000 -0400
-@@ -4,7 +4,8 @@
-
- from __future__ import absolute_import, division, print_function
-
--from collections import Mapping, OrderedDict, Sequence
-+from collections import OrderedDict
-+from collections.abc import Mapping, Sequence
-
- import pytest
-
-diff -ur a/testing/web-platform/tests/tools/third_party/h2/h2/settings.py b/testing/web-platform/tests/tools/third_party/h2/h2/settings.py
---- a/testing/web-platform/tests/tools/third_party/h2/h2/settings.py 2021-09-01 13:27:05.000000000 -0400
-+++ b/testing/web-platform/tests/tools/third_party/h2/h2/settings.py 2021-11-05 15:32:28.817737357 -0400
-@@ -88,7 +88,7 @@
- )
-
-
--class Settings(collections.MutableMapping):
-+class Settings(collections.abc.MutableMapping):
- """
- An object that encapsulates HTTP/2 settings state.
-
-diff -ur a/testing/web-platform/tests/tools/third_party/html5lib/html5lib/_trie/_base.py b/testing/web-platform/tests/tools/third_party/html5lib/html5lib/_trie/_base.py
---- a/testing/web-platform/tests/tools/third_party/html5lib/html5lib/_trie/_base.py 2021-09-01 13:27:05.000000000 -0400
-+++ b/testing/web-platform/tests/tools/third_party/html5lib/html5lib/_trie/_base.py 2021-11-05 15:29:12.000000000 -0400
-@@ -1,6 +1,6 @@
- from __future__ import absolute_import, division, unicode_literals
-
--from collections import Mapping
-+from collections.abc import Mapping
-
-
- class Trie(Mapping):
-diff -ur a/testing/web-platform/tests/tools/third_party/html5lib/html5lib/treebuilders/dom.py b/testing/web-platform/tests/tools/third_party/html5lib/html5lib/treebuilders/dom.py
---- a/testing/web-platform/tests/tools/third_party/html5lib/html5lib/treebuilders/dom.py 2021-09-01 13:27:05.000000000 -0400
-+++ b/testing/web-platform/tests/tools/third_party/html5lib/html5lib/treebuilders/dom.py 2021-11-05 15:29:12.000000000 -0400
-@@ -1,7 +1,7 @@
- from __future__ import absolute_import, division, unicode_literals
-
-
--from collections import MutableMapping
-+from collections.abc import MutableMapping
- from xml.dom import minidom, Node
- import weakref
-
-diff -ur a/testing/web-platform/tests/tools/third_party/hyper/hyper/common/headers.py b/testing/web-platform/tests/tools/third_party/hyper/hyper/common/headers.py
---- a/testing/web-platform/tests/tools/third_party/hyper/hyper/common/headers.py 2021-09-01 13:27:00.000000000 -0400
-+++ b/testing/web-platform/tests/tools/third_party/hyper/hyper/common/headers.py 2021-11-05 15:29:12.000000000 -0400
-@@ -10,7 +10,7 @@
- from hyper.common.util import to_bytestring, to_bytestring_tuple
-
-
--class HTTPHeaderMap(collections.MutableMapping):
-+class HTTPHeaderMap(collections.abc.MutableMapping):
- """
- A structure that contains HTTP headers.
-
-diff -ur a/testing/web-platform/tests/tools/third_party/hyper/hyper/h2/settings.py b/testing/web-platform/tests/tools/third_party/hyper/hyper/h2/settings.py
---- a/testing/web-platform/tests/tools/third_party/hyper/hyper/h2/settings.py 2021-09-01 13:26:56.000000000 -0400
-+++ b/testing/web-platform/tests/tools/third_party/hyper/hyper/h2/settings.py 2021-11-05 15:29:12.000000000 -0400
-@@ -151,7 +151,7 @@
- )
-
-
--class Settings(collections.MutableMapping):
-+class Settings(collections.abc.MutableMapping):
- """
- An object that encapsulates HTTP/2 settings state.
-
-diff -ur a/testing/web-platform/tests/tools/third_party/hyper/hyper/http11/connection.py b/testing/web-platform/tests/tools/third_party/hyper/hyper/http11/connection.py
---- a/testing/web-platform/tests/tools/third_party/hyper/hyper/http11/connection.py 2021-09-01 13:27:00.000000000 -0400
-+++ b/testing/web-platform/tests/tools/third_party/hyper/hyper/http11/connection.py 2021-11-05 15:29:12.000000000 -0400
-@@ -10,7 +10,7 @@
- import socket
- import base64
-
--from collections import Iterable, Mapping
-+from collections.abc import Iterable, Mapping
-
- import collections
- from hyperframe.frame import SettingsFrame
-@@ -295,7 +295,7 @@
- return
-
- # Iterables that set a specific content length.
-- elif isinstance(body, collections.Iterable):
-+ elif isinstance(body, collections.abc.Iterable):
- for item in body:
- try:
- self._sock.send(item)
-diff -ur a/testing/web-platform/tests/tools/third_party/hyper/hyper/packages/hyperframe/flags.py b/testing/web-platform/tests/tools/third_party/hyper/hyper/packages/hyperframe/flags.py
---- a/testing/web-platform/tests/tools/third_party/hyper/hyper/packages/hyperframe/flags.py 2021-09-01 13:27:05.000000000 -0400
-+++ b/testing/web-platform/tests/tools/third_party/hyper/hyper/packages/hyperframe/flags.py 2021-11-05 15:29:12.000000000 -0400
-@@ -11,7 +11,7 @@
- Flag = collections.namedtuple("Flag", ["name", "bit"])
-
-
--class Flags(collections.MutableSet):
-+class Flags(collections.abc.MutableSet):
- """
- A simple MutableSet implementation that will only accept known flags as elements.
-
-diff -ur a/testing/web-platform/tests/tools/third_party/hyperframe/hyperframe/flags.py b/testing/web-platform/tests/tools/third_party/hyperframe/hyperframe/flags.py
---- a/testing/web-platform/tests/tools/third_party/hyperframe/hyperframe/flags.py 2021-09-01 13:26:39.000000000 -0400
-+++ b/testing/web-platform/tests/tools/third_party/hyperframe/hyperframe/flags.py 2021-11-05 15:29:12.000000000 -0400
-@@ -11,7 +11,7 @@
- Flag = collections.namedtuple("Flag", ["name", "bit"])
-
-
--class Flags(collections.MutableSet):
-+class Flags(collections.abc.MutableSet):
- """
- A simple MutableSet implementation that will only accept known flags as
- elements.
-diff -ur a/testing/web-platform/tests/tools/wptserve/wptserve/config.py b/testing/web-platform/tests/tools/wptserve/wptserve/config.py
---- a/testing/web-platform/tests/tools/wptserve/wptserve/config.py 2021-09-01 13:27:05.000000000 -0400
-+++ b/testing/web-platform/tests/tools/wptserve/wptserve/config.py 2021-11-05 15:29:12.000000000 -0400
-@@ -2,7 +2,8 @@
- import logging
- import os
-
--from collections import defaultdict, Mapping
-+from collections import defaultdict
-+from collections.abc import Mapping
- from six import integer_types, iteritems, itervalues, string_types
-
- from . import sslutils
-diff -ur a/testing/web-platform/tests/webdriver/tests/support/sync.py b/testing/web-platform/tests/webdriver/tests/support/sync.py
---- a/testing/web-platform/tests/webdriver/tests/support/sync.py 2021-09-01 13:27:05.000000000 -0400
-+++ b/testing/web-platform/tests/webdriver/tests/support/sync.py 2021-11-05 15:29:12.000000000 -0400
-@@ -81,7 +81,7 @@
-
- exceptions = []
- if ignored_exceptions is not None:
-- if isinstance(ignored_exceptions, collections.Iterable):
-+ if isinstance(ignored_exceptions, collections.abc.Iterable):
- exceptions.extend(iter(ignored_exceptions))
- else:
- exceptions.append(ignored_exceptions)
-diff -ur a/third_party/python/gyp/pylib/gyp/common.py b/third_party/python/gyp/pylib/gyp/common.py
---- a/third_party/python/gyp/pylib/gyp/common.py 2021-09-01 13:26:46.000000000 -0400
-+++ b/third_party/python/gyp/pylib/gyp/common.py 2021-11-05 15:29:12.000000000 -0400
-@@ -494,7 +494,7 @@
-
-
- # Based on http://code.activestate.com/recipes/576694/.
--class OrderedSet(collections.MutableSet):
-+class OrderedSet(collections.abc.MutableSet):
- def __init__(self, iterable=None):
- self.end = end = []
- end += [None, end, end] # sentinel node for doubly linked list
-diff -ur a/third_party/python/gyp/pylib/gyp/msvs_emulation.py b/third_party/python/gyp/pylib/gyp/msvs_emulation.py
---- a/third_party/python/gyp/pylib/gyp/msvs_emulation.py 2021-09-01 13:27:09.000000000 -0400
-+++ b/third_party/python/gyp/pylib/gyp/msvs_emulation.py 2021-11-05 15:30:47.757760820 -0400
-@@ -91,7 +91,7 @@
- """Add |prefix| to |element| or each subelement if element is iterable."""
- if element is None:
- return element
-- if (isinstance(element, collections.Iterable) and
-+ if (isinstance(element, collections.abc.Iterable) and
- not isinstance(element, basestring)):
- return [prefix + e for e in element]
- else:
-@@ -104,7 +104,7 @@
- if map is not None and element is not None:
- if not callable(map):
- map = map.get # Assume it's a dict, otherwise a callable to do the remap.
-- if (isinstance(element, collections.Iterable) and
-+ if (isinstance(element, collections.abc.Iterable) and
- not isinstance(element, basestring)):
- element = filter(None, [map(elem) for elem in element])
- else:
-@@ -117,7 +117,7 @@
- then add |element| to it, adding each item in |element| if it's a list or
- tuple."""
- if append is not None and element is not None:
-- if (isinstance(element, collections.Iterable) and
-+ if (isinstance(element, collections.abc.Iterable) and
- not isinstance(element, basestring)):
- append.extend(element)
- else:
-diff -ur a/third_party/python/gyp/test/lib/TestGyp.py b/third_party/python/gyp/test/lib/TestGyp.py
---- a/third_party/python/gyp/test/lib/TestGyp.py 2021-09-01 13:27:09.000000000 -0400
-+++ b/third_party/python/gyp/test/lib/TestGyp.py 2021-11-05 15:30:37.671763157 -0400
-@@ -496,7 +496,7 @@
- if status is None:
- kw['status'] = None
- else:
-- if not isinstance(status, collections.Iterable): status = (status,)
-+ if not isinstance(status, collections.abc.Iterable): status = (status,)
- kw['status'] = list(itertools.chain((0,), status))
- self.cmake_build(gyp_file, target, **kw)
- kw['status'] = status
-diff -ur a/third_party/python/pipenv/pipenv/patched/notpip/_vendor/distlib/compat.py b/third_party/python/pipenv/pipenv/patched/notpip/_vendor/distlib/compat.py
---- a/third_party/python/pipenv/pipenv/patched/notpip/_vendor/distlib/compat.py 2021-09-01 13:27:09.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/patched/notpip/_vendor/distlib/compat.py 2021-11-05 15:29:12.000000000 -0400
-@@ -319,7 +319,7 @@
- try:
- callable = callable
- except NameError: # pragma: no cover
-- from collections import Callable
-+ from collections.abc import Callable
-
- def callable(obj):
- return isinstance(obj, Callable)
-@@ -475,7 +475,7 @@
- try:
- from collections import ChainMap
- except ImportError: # pragma: no cover
-- from collections import MutableMapping
-+ from collections.abc import MutableMapping
-
- try:
- from reprlib import recursive_repr as _recursive_repr
-diff -ur a/third_party/python/pipenv/pipenv/patched/notpip/_vendor/html5lib/treebuilders/dom.py b/third_party/python/pipenv/pipenv/patched/notpip/_vendor/html5lib/treebuilders/dom.py
---- a/third_party/python/pipenv/pipenv/patched/notpip/_vendor/html5lib/treebuilders/dom.py 2021-09-01 13:26:46.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/patched/notpip/_vendor/html5lib/treebuilders/dom.py 2021-11-05 15:29:12.000000000 -0400
-@@ -1,7 +1,7 @@
- from __future__ import absolute_import, division, unicode_literals
-
-
--from collections import MutableMapping
-+from collections.abc import MutableMapping
- from xml.dom import minidom, Node
- import weakref
-
-diff -ur a/third_party/python/pipenv/pipenv/patched/notpip/_vendor/pyparsing.py b/third_party/python/pipenv/pipenv/patched/notpip/_vendor/pyparsing.py
---- a/third_party/python/pipenv/pipenv/patched/notpip/_vendor/pyparsing.py 2021-09-01 13:26:46.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/patched/notpip/_vendor/pyparsing.py 2021-11-05 15:29:12.000000000 -0400
-@@ -940,7 +940,7 @@
- def __dir__(self):
- return (dir(type(self)) + list(self.keys()))
-
--collections.MutableMapping.register(ParseResults)
-+collections.abc.MutableMapping.register(ParseResults)
-
- def col (loc,strg):
- """Returns current column within a string, counting newlines as line separators.
-@@ -3223,7 +3223,7 @@
-
- if isinstance( exprs, basestring ):
- self.exprs = [ ParserElement._literalStringClass( exprs ) ]
-- elif isinstance( exprs, collections.Iterable ):
-+ elif isinstance( exprs, collections.abc.Iterable ):
- exprs = list(exprs)
- # if sequence of strings provided, wrap with Literal
- if all(isinstance(expr, basestring) for expr in exprs):
-@@ -4564,7 +4564,7 @@
- symbols = []
- if isinstance(strs,basestring):
- symbols = strs.split()
-- elif isinstance(strs, collections.Iterable):
-+ elif isinstance(strs, collections.abc.Iterable):
- symbols = list(strs)
- else:
- warnings.warn("Invalid argument to oneOf, expected string or iterable",
-diff -ur a/third_party/python/pipenv/pipenv/patched/notpip/_vendor/requests/cookies.py b/third_party/python/pipenv/pipenv/patched/notpip/_vendor/requests/cookies.py
---- a/third_party/python/pipenv/pipenv/patched/notpip/_vendor/requests/cookies.py 2021-09-01 13:27:00.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/patched/notpip/_vendor/requests/cookies.py 2021-11-05 15:29:12.000000000 -0400
-@@ -169,7 +169,7 @@
- """
-
-
--class RequestsCookieJar(cookielib.CookieJar, collections.MutableMapping):
-+class RequestsCookieJar(cookielib.CookieJar, collections.abc.MutableMapping):
- """Compatibility class; is a cookielib.CookieJar, but exposes a dict
- interface.
-
-diff -ur a/third_party/python/pipenv/pipenv/patched/notpip/_vendor/requests/models.py b/third_party/python/pipenv/pipenv/patched/notpip/_vendor/requests/models.py
---- a/third_party/python/pipenv/pipenv/patched/notpip/_vendor/requests/models.py 2021-09-01 13:26:46.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/patched/notpip/_vendor/requests/models.py 2021-11-05 15:31:35.745749692 -0400
-@@ -174,10 +174,10 @@
- if event not in self.hooks:
- raise ValueError('Unsupported event specified, with event name "%s"' % (event))
-
-- if isinstance(hook, collections.Callable):
-+ if isinstance(hook, collections.abc.Callable):
- self.hooks[event].append(hook)
- elif hasattr(hook, '__iter__'):
-- self.hooks[event].extend(h for h in hook if isinstance(h, collections.Callable))
-+ self.hooks[event].extend(h for h in hook if isinstance(h, collections.abc.Callable))
-
- def deregister_hook(self, event, hook):
- """Deregister a previously registered hook.
-@@ -461,7 +461,7 @@
-
- is_stream = all([
- hasattr(data, '__iter__'),
-- not isinstance(data, (basestring, list, tuple, collections.Mapping))
-+ not isinstance(data, (basestring, list, tuple, collections.abc.Mapping))
- ])
-
- try:
-diff -ur a/third_party/python/pipenv/pipenv/patched/notpip/_vendor/requests/structures.py b/third_party/python/pipenv/pipenv/patched/notpip/_vendor/requests/structures.py
---- a/third_party/python/pipenv/pipenv/patched/notpip/_vendor/requests/structures.py 2021-09-01 13:27:00.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/patched/notpip/_vendor/requests/structures.py 2021-11-05 15:29:12.000000000 -0400
-@@ -12,7 +12,7 @@
- from .compat import OrderedDict
-
-
--class CaseInsensitiveDict(collections.MutableMapping):
-+class CaseInsensitiveDict(collections.abc.MutableMapping):
- """A case-insensitive ``dict``-like object.
-
- Implements all methods and operations of
-@@ -71,7 +71,7 @@
- )
-
- def __eq__(self, other):
-- if isinstance(other, collections.Mapping):
-+ if isinstance(other, collections.abc.Mapping):
- other = CaseInsensitiveDict(other)
- else:
- return NotImplemented
-diff -ur a/third_party/python/pipenv/pipenv/patched/notpip/_vendor/requests/utils.py b/third_party/python/pipenv/pipenv/patched/notpip/_vendor/requests/utils.py
---- a/third_party/python/pipenv/pipenv/patched/notpip/_vendor/requests/utils.py 2021-09-01 13:27:00.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/patched/notpip/_vendor/requests/utils.py 2021-11-05 15:31:40.157748665 -0400
-@@ -262,7 +262,7 @@
- if isinstance(value, (str, bytes, bool, int)):
- raise ValueError('cannot encode objects that are not 2-tuples')
-
-- if isinstance(value, collections.Mapping):
-+ if isinstance(value, collections.abc.Mapping):
- value = value.items()
-
- return list(value)
-diff -ur a/third_party/python/pipenv/pipenv/patched/notpip/_vendor/urllib3/_collections.py b/third_party/python/pipenv/pipenv/patched/notpip/_vendor/urllib3/_collections.py
---- a/third_party/python/pipenv/pipenv/patched/notpip/_vendor/urllib3/_collections.py 2021-09-01 13:27:00.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/patched/notpip/_vendor/urllib3/_collections.py 2021-11-05 15:29:12.000000000 -0400
-@@ -1,5 +1,5 @@
- from __future__ import absolute_import
--from collections import Mapping, MutableMapping
-+from collections.abc import Mapping, MutableMapping
- try:
- from threading import RLock
- except ImportError: # Platform-specific: No threads available
-diff -ur a/third_party/python/pipenv/pipenv/vendor/jinja2/sandbox.py b/third_party/python/pipenv/pipenv/vendor/jinja2/sandbox.py
---- a/third_party/python/pipenv/pipenv/vendor/jinja2/sandbox.py 2021-09-01 13:27:09.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/vendor/jinja2/sandbox.py 2021-11-05 15:29:12.000000000 -0400
-@@ -14,7 +14,7 @@
- """
- import types
- import operator
--from collections import Mapping
-+from collections.abc import Mapping
- from jinja2.environment import Environment
- from jinja2.exceptions import SecurityError
- from jinja2._compat import string_types, PY2
-@@ -79,7 +79,7 @@
- pass
-
- #: register Python 2.6 abstract base classes
--from collections import MutableSet, MutableMapping, MutableSequence
-+from collections.abc import MutableSet, MutableMapping, MutableSequence
- _mutable_set_types += (MutableSet,)
- _mutable_mapping_types += (MutableMapping,)
- _mutable_sequence_types += (MutableSequence,)
-diff -ur a/third_party/python/pipenv/pipenv/vendor/jinja2/utils.py b/third_party/python/pipenv/pipenv/vendor/jinja2/utils.py
---- a/third_party/python/pipenv/pipenv/vendor/jinja2/utils.py 2021-09-01 13:27:00.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/vendor/jinja2/utils.py 2021-11-05 15:29:12.000000000 -0400
-@@ -482,7 +482,7 @@
-
- # register the LRU cache as mutable mapping if possible
- try:
-- from collections import MutableMapping
-+ from collections.abc import MutableMapping
- MutableMapping.register(LRUCache)
- except ImportError:
- pass
-diff -ur a/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/distlib/compat.py b/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/distlib/compat.py
---- a/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/distlib/compat.py 2021-09-01 13:27:05.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/distlib/compat.py 2021-11-05 15:29:12.000000000 -0400
-@@ -319,7 +319,7 @@
- try:
- callable = callable
- except NameError: # pragma: no cover
-- from collections import Callable
-+ from collections.abc import Callable
-
- def callable(obj):
- return isinstance(obj, Callable)
-@@ -475,7 +475,7 @@
- try:
- from collections import ChainMap
- except ImportError: # pragma: no cover
-- from collections import MutableMapping
-+ from collections.abc import MutableMapping
-
- try:
- from reprlib import recursive_repr as _recursive_repr
-diff -ur a/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/html5lib/treebuilders/dom.py b/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/html5lib/treebuilders/dom.py
---- a/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/html5lib/treebuilders/dom.py 2021-09-01 13:27:00.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/html5lib/treebuilders/dom.py 2021-11-05 15:29:12.000000000 -0400
-@@ -1,7 +1,7 @@
- from __future__ import absolute_import, division, unicode_literals
-
-
--from collections import MutableMapping
-+from collections.abc import MutableMapping
- from xml.dom import minidom, Node
- import weakref
-
-diff -ur a/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/pyparsing.py b/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/pyparsing.py
---- a/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/pyparsing.py 2021-09-01 13:26:46.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/pyparsing.py 2021-11-05 15:29:12.000000000 -0400
-@@ -940,7 +940,7 @@
- def __dir__(self):
- return (dir(type(self)) + list(self.keys()))
-
--collections.MutableMapping.register(ParseResults)
-+collections.abc.MutableMapping.register(ParseResults)
-
- def col (loc,strg):
- """Returns current column within a string, counting newlines as line separators.
-@@ -3223,7 +3223,7 @@
-
- if isinstance( exprs, basestring ):
- self.exprs = [ ParserElement._literalStringClass( exprs ) ]
-- elif isinstance( exprs, collections.Iterable ):
-+ elif isinstance( exprs, collections.abc.Iterable ):
- exprs = list(exprs)
- # if sequence of strings provided, wrap with Literal
- if all(isinstance(expr, basestring) for expr in exprs):
-@@ -4564,7 +4564,7 @@
- symbols = []
- if isinstance(strs,basestring):
- symbols = strs.split()
-- elif isinstance(strs, collections.Iterable):
-+ elif isinstance(strs, collections.abc.Iterable):
- symbols = list(strs)
- else:
- warnings.warn("Invalid argument to oneOf, expected string or iterable",
-diff -ur a/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/requests/cookies.py b/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/requests/cookies.py
---- a/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/requests/cookies.py 2021-09-01 13:27:00.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/requests/cookies.py 2021-11-05 15:29:12.000000000 -0400
-@@ -169,7 +169,7 @@
- """
-
-
--class RequestsCookieJar(cookielib.CookieJar, collections.MutableMapping):
-+class RequestsCookieJar(cookielib.CookieJar, collections.abc.MutableMapping):
- """Compatibility class; is a cookielib.CookieJar, but exposes a dict
- interface.
-
-diff -ur a/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/requests/models.py b/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/requests/models.py
---- a/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/requests/models.py 2021-09-01 13:26:46.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/requests/models.py 2021-11-05 15:31:52.397745825 -0400
-@@ -174,10 +174,10 @@
- if event not in self.hooks:
- raise ValueError('Unsupported event specified, with event name "%s"' % (event))
-
-- if isinstance(hook, collections.Callable):
-+ if isinstance(hook, collections.abc.Callable):
- self.hooks[event].append(hook)
- elif hasattr(hook, '__iter__'):
-- self.hooks[event].extend(h for h in hook if isinstance(h, collections.Callable))
-+ self.hooks[event].extend(h for h in hook if isinstance(h, collections.abc.Callable))
-
- def deregister_hook(self, event, hook):
- """Deregister a previously registered hook.
-@@ -461,7 +461,7 @@
-
- is_stream = all([
- hasattr(data, '__iter__'),
-- not isinstance(data, (basestring, list, tuple, collections.Mapping))
-+ not isinstance(data, (basestring, list, tuple, collections.abc.Mapping))
- ])
-
- try:
-diff -ur a/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/requests/structures.py b/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/requests/structures.py
---- a/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/requests/structures.py 2021-09-01 13:27:09.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/requests/structures.py 2021-11-05 15:32:02.765743413 -0400
-@@ -12,7 +12,7 @@
- from .compat import OrderedDict
-
-
--class CaseInsensitiveDict(collections.MutableMapping):
-+class CaseInsensitiveDict(collections.abc.MutableMapping):
- """A case-insensitive ``dict``-like object.
-
- Implements all methods and operations of
-@@ -71,7 +71,7 @@
- )
-
- def __eq__(self, other):
-- if isinstance(other, collections.Mapping):
-+ if isinstance(other, collections.abc.Mapping):
- other = CaseInsensitiveDict(other)
- else:
- return NotImplemented
-diff -ur a/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/requests/utils.py b/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/requests/utils.py
---- a/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/requests/utils.py 2021-09-01 13:27:00.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/requests/utils.py 2021-11-05 15:31:57.123744724 -0400
-@@ -262,7 +262,7 @@
- if isinstance(value, (str, bytes, bool, int)):
- raise ValueError('cannot encode objects that are not 2-tuples')
-
-- if isinstance(value, collections.Mapping):
-+ if isinstance(value, collections.abc.Mapping):
- value = value.items()
-
- return list(value)
-diff -ur a/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/urllib3/_collections.py b/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/urllib3/_collections.py
---- a/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/urllib3/_collections.py 2021-09-01 13:27:00.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/vendor/pip9/_vendor/urllib3/_collections.py 2021-11-05 15:29:12.000000000 -0400
-@@ -1,5 +1,5 @@
- from __future__ import absolute_import
--from collections import Mapping, MutableMapping
-+from collections.abc import Mapping, MutableMapping
- try:
- from threading import RLock
- except ImportError: # Platform-specific: No threads available
-diff -ur a/third_party/python/pipenv/pipenv/vendor/requests/cookies.py b/third_party/python/pipenv/pipenv/vendor/requests/cookies.py
---- a/third_party/python/pipenv/pipenv/vendor/requests/cookies.py 2021-09-01 13:27:00.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/vendor/requests/cookies.py 2021-11-05 15:29:12.000000000 -0400
-@@ -169,7 +169,7 @@
- """
-
-
--class RequestsCookieJar(cookielib.CookieJar, collections.MutableMapping):
-+class RequestsCookieJar(cookielib.CookieJar, collections.abc.MutableMapping):
- """Compatibility class; is a cookielib.CookieJar, but exposes a dict
- interface.
-
-diff -ur a/third_party/python/pipenv/pipenv/vendor/requests/models.py b/third_party/python/pipenv/pipenv/vendor/requests/models.py
---- a/third_party/python/pipenv/pipenv/vendor/requests/models.py 2021-09-01 13:27:09.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/vendor/requests/models.py 2021-11-05 15:32:09.732741793 -0400
-@@ -174,10 +174,10 @@
- if event not in self.hooks:
- raise ValueError('Unsupported event specified, with event name "%s"' % (event))
-
-- if isinstance(hook, collections.Callable):
-+ if isinstance(hook, collections.abc.Callable):
- self.hooks[event].append(hook)
- elif hasattr(hook, '__iter__'):
-- self.hooks[event].extend(h for h in hook if isinstance(h, collections.Callable))
-+ self.hooks[event].extend(h for h in hook if isinstance(h, collections.abc.Callable))
-
- def deregister_hook(self, event, hook):
- """Deregister a previously registered hook.
-@@ -461,7 +461,7 @@
-
- is_stream = all([
- hasattr(data, '__iter__'),
-- not isinstance(data, (basestring, list, tuple, collections.Mapping))
-+ not isinstance(data, (basestring, list, tuple, collections.abc.Mapping))
- ])
-
- try:
-diff -ur a/third_party/python/pipenv/pipenv/vendor/requests/structures.py b/third_party/python/pipenv/pipenv/vendor/requests/structures.py
---- a/third_party/python/pipenv/pipenv/vendor/requests/structures.py 2021-09-01 13:27:00.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/vendor/requests/structures.py 2021-11-05 15:29:12.000000000 -0400
-@@ -12,7 +12,7 @@
- from .compat import OrderedDict
-
-
--class CaseInsensitiveDict(collections.MutableMapping):
-+class CaseInsensitiveDict(collections.abc.MutableMapping):
- """A case-insensitive ``dict``-like object.
-
- Implements all methods and operations of
-@@ -71,7 +71,7 @@
- )
-
- def __eq__(self, other):
-- if isinstance(other, collections.Mapping):
-+ if isinstance(other, collections.abc.Mapping):
- other = CaseInsensitiveDict(other)
- else:
- return NotImplemented
-diff -ur a/third_party/python/pipenv/pipenv/vendor/requests/utils.py b/third_party/python/pipenv/pipenv/vendor/requests/utils.py
---- a/third_party/python/pipenv/pipenv/vendor/requests/utils.py 2021-09-01 13:27:00.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/vendor/requests/utils.py 2021-11-05 15:32:13.776740860 -0400
-@@ -262,7 +262,7 @@
- if isinstance(value, (str, bytes, bool, int)):
- raise ValueError('cannot encode objects that are not 2-tuples')
-
-- if isinstance(value, collections.Mapping):
-+ if isinstance(value, collections.abc.Mapping):
- value = value.items()
-
- return list(value)
-diff -ur a/third_party/python/pipenv/pipenv/vendor/urllib3/_collections.py b/third_party/python/pipenv/pipenv/vendor/urllib3/_collections.py
---- a/third_party/python/pipenv/pipenv/vendor/urllib3/_collections.py 2021-09-01 13:26:46.000000000 -0400
-+++ b/third_party/python/pipenv/pipenv/vendor/urllib3/_collections.py 2021-11-05 15:29:12.000000000 -0400
-@@ -1,5 +1,5 @@
- from __future__ import absolute_import
--from collections import Mapping, MutableMapping
-+from collections.abc import Mapping, MutableMapping
- try:
- from threading import RLock
- except ImportError: # Platform-specific: No threads available
-diff -ur a/third_party/python/pyyaml/lib3/yaml/constructor.py b/third_party/python/pyyaml/lib3/yaml/constructor.py
---- a/third_party/python/pyyaml/lib3/yaml/constructor.py 2021-09-01 13:27:00.000000000 -0400
-+++ b/third_party/python/pyyaml/lib3/yaml/constructor.py 2021-11-05 15:29:12.000000000 -0400
-@@ -123,7 +123,7 @@
- mapping = {}
- for key_node, value_node in node.value:
- key = self.construct_object(key_node, deep=deep)
-- if not isinstance(key, collections.Hashable):
-+ if not isinstance(key, collections.abc.Hashable):
- raise ConstructorError("while constructing a mapping", node.start_mark,
- "found unhashable key", key_node.start_mark)
- value = self.construct_object(value_node, deep=deep)
-diff -ur a/third_party/python/requests/requests/cookies.py b/third_party/python/requests/requests/cookies.py
---- a/third_party/python/requests/requests/cookies.py 2021-09-01 13:27:05.000000000 -0400
-+++ b/third_party/python/requests/requests/cookies.py 2021-11-05 15:29:12.000000000 -0400
-@@ -161,7 +161,7 @@
- Use .get and .set and include domain and path args in order to be more specific."""
-
-
--class RequestsCookieJar(cookielib.CookieJar, collections.MutableMapping):
-+class RequestsCookieJar(cookielib.CookieJar, collections.abc.MutableMapping):
- """Compatibility class; is a cookielib.CookieJar, but exposes a dict
- interface.
-
-diff -ur a/third_party/python/requests/requests/packages/urllib3/_collections.py b/third_party/python/requests/requests/packages/urllib3/_collections.py
---- a/third_party/python/requests/requests/packages/urllib3/_collections.py 2021-09-01 13:27:13.000000000 -0400
-+++ b/third_party/python/requests/requests/packages/urllib3/_collections.py 2021-11-05 15:29:12.000000000 -0400
-@@ -1,5 +1,5 @@
- from __future__ import absolute_import
--from collections import Mapping, MutableMapping
-+from collections.abc import Mapping, MutableMapping
- try:
- from threading import RLock
- except ImportError: # Platform-specific: No threads available
-diff -ur a/third_party/python/requests/requests/structures.py b/third_party/python/requests/requests/structures.py
---- a/third_party/python/requests/requests/structures.py 2021-09-01 13:27:09.000000000 -0400
-+++ b/third_party/python/requests/requests/structures.py 2021-11-05 15:29:12.000000000 -0400
-@@ -11,7 +11,7 @@
- import collections
-
-
--class CaseInsensitiveDict(collections.MutableMapping):
-+class CaseInsensitiveDict(collections.abc.MutableMapping):
- """
- A case-insensitive ``dict``-like object.
-
-@@ -71,7 +71,7 @@
- )
-
- def __eq__(self, other):
-- if isinstance(other, collections.Mapping):
-+ if isinstance(other, collections.abc.Mapping):
- other = CaseInsensitiveDict(other)
- else:
- return NotImplemented
-diff -ur a/third_party/python/requests/requests/utils.py b/third_party/python/requests/requests/utils.py
---- a/third_party/python/requests/requests/utils.py 2021-09-01 13:27:09.000000000 -0400
-+++ b/third_party/python/requests/requests/utils.py 2021-11-05 15:30:55.420759045 -0400
-@@ -189,7 +189,7 @@
- if isinstance(value, (str, bytes, bool, int)):
- raise ValueError('cannot encode objects that are not 2-tuples')
-
-- if isinstance(value, collections.Mapping):
-+ if isinstance(value, collections.abc.Mapping):
- value = value.items()
-
- return list(value)
-diff -ur a/third_party/python/virtualenv/__virtualenv__/distlib-0.3.1-py2.py3-none-any/distlib/compat.py b/third_party/python/virtualenv/__virtualenv__/distlib-0.3.1-py2.py3-none-any/distlib/compat.py
---- a/third_party/python/virtualenv/__virtualenv__/distlib-0.3.1-py2.py3-none-any/distlib/compat.py 2021-09-01 13:27:00.000000000 -0400
-+++ b/third_party/python/virtualenv/__virtualenv__/distlib-0.3.1-py2.py3-none-any/distlib/compat.py 2021-11-05 15:29:12.000000000 -0400
-@@ -481,7 +481,7 @@
- try:
- from collections import ChainMap
- except ImportError: # pragma: no cover
-- from collections import MutableMapping
-+ from collections.abc import MutableMapping
-
- try:
- from reprlib import recursive_repr as _recursive_repr
-diff -ur a/third_party/python/voluptuous/voluptuous/schema_builder.py b/third_party/python/voluptuous/voluptuous/schema_builder.py
---- a/third_party/python/voluptuous/voluptuous/schema_builder.py 2021-09-01 13:27:09.000000000 -0400
-+++ b/third_party/python/voluptuous/voluptuous/schema_builder.py 2021-11-05 15:30:32.399764374 -0400
-@@ -280,7 +280,7 @@
- return schema.__voluptuous_compile__(self)
- if isinstance(schema, Object):
- return self._compile_object(schema)
-- if isinstance(schema, collections.Mapping):
-+ if isinstance(schema, collections.abc.Mapping):
- return self._compile_dict(schema)
- elif isinstance(schema, list):
- return self._compile_list(schema)
diff --git a/srcpkgs/firefox-esr/patches/fix-wasm-arm.patch b/srcpkgs/firefox-esr/patches/fix-wasm-arm.patch
deleted file mode 100644
index a6035e876163..000000000000
--- a/srcpkgs/firefox-esr/patches/fix-wasm-arm.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/js/src/wasm/WasmSignalHandlers.cpp
-+++ b/js/src/wasm/WasmSignalHandlers.cpp
-@@ -243,9 +243,9 @@
- // If you run into compile problems on a tier-3 platform, you can disable the
- // emulation here.
-
--#if defined(__linux__) && defined(__arm__)
--# define WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
--#endif
-+// #if defined(__linux__) && defined(__arm__)
-+// # define WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
-+// #endif
-
- #ifdef WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
- # include <sys/user.h>
diff --git a/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch b/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch
index 70910da5861e..5d17021a99f4 100644
--- a/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch
+++ b/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch
@@ -1,5 +1,5 @@
---- a/media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c 2019-01-29 11:20:52.298793223 +0100
-+++ b/media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c 2019-01-29 11:21:48.250250850 +0100
+--- a/third_party/libwebrtc/webrtc/system_wrappers/source/cpu_features_linux.c 2019-01-29 11:20:52.298793223 +0100
++++ b/third_party/libwebrtc/webrtc/system_wrappers/source/cpu_features_linux.c 2019-01-29 11:21:48.250250850 +0100
@@ -14,7 +14,7 @@
#ifndef __GLIBC_PREREQ
#define __GLIBC_PREREQ(a, b) 0
diff --git a/srcpkgs/firefox-esr/patches/flac-no-ffvpx.patch b/srcpkgs/firefox-esr/patches/flac-no-ffvpx.patch
index 154aad63e33a..ebf48deb9720 100644
--- a/srcpkgs/firefox-esr/patches/flac-no-ffvpx.patch
+++ b/srcpkgs/firefox-esr/patches/flac-no-ffvpx.patch
@@ -12,15 +12,14 @@ index 53fc3c9937f7..b23771ab80fa 100644
namespace mozilla {
-@@ -14,6 +15,11 @@ namespace mozilla {
+@@ -14,6 +15,10 @@ namespace mozilla {
bool FlacDecoder::IsEnabled() {
#ifdef MOZ_FFVPX
return StaticPrefs::media_flac_enabled();
+#elif defined(MOZ_FFMPEG)
+ RefPtr<PDMFactory> platform = new PDMFactory();
+ return StaticPrefs::media_flac_enabled() &&
-+ platform->SupportsMimeType("audio/flac"_ns,
-+ /* DecoderDoctorDiagnostics* */ nullptr);
++ platform->SupportsMimeType("audio/flac"_ns);
#else
// Until bug 1295886 is fixed.
return false;
diff --git a/srcpkgs/firefox-esr/patches/musl-rust.configure.patch b/srcpkgs/firefox-esr/patches/musl-rust.configure.patch
deleted file mode 100644
index 0b2f7dee1d3c..000000000000
--- a/srcpkgs/firefox-esr/patches/musl-rust.configure.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- a/build/moz.configure/rust.configure 2019-10-28 12:05:04.930404603 +0700
-+++ b/build/moz.configure/rust.configure 2019-10-28 12:09:42.742338957 +0700
-@@ -297,11 +297,20 @@
- suffix = 'hf'
- else:
- suffix = ''
-+
-+ narrowed = []
- for p in prefixes:
- for c in candidates:
-- if c.rust_target.startswith('{}-'.format(p)) and \
-- c.rust_target.endswith(suffix):
-- return c.rust_target
-+ if c.rust_target.startswith('{}-'.format(p)):
-+ narrowed.append(c.rust_target)
-+
-+ for target in narrowed:
-+ if target.endswith(host_or_target.raw_os):
-+ return target
-+
-+ for target in narrowed:
-+ if target.endswith(suffix):
-+ return target
-
- # See if we can narrow down on the exact alias
- narrowed = [c for c in candidates if c.target.alias == host_or_target.alias]
diff --git a/srcpkgs/firefox-esr/patches/rust-configure.patch b/srcpkgs/firefox-esr/patches/rust-configure.patch
index 07b98d6c7cae..61fb2ba891d9 100644
--- a/srcpkgs/firefox-esr/patches/rust-configure.patch
+++ b/srcpkgs/firefox-esr/patches/rust-configure.patch
@@ -1,42 +1,112 @@
Mozilla rustc check does not support crossbuild: let's remove it
Remove calls to unwrap_rustup, they fail if rustup isn't present
---- a/build/moz.configure/rust.configure 2019-10-17 04:19:59.000000000 +0700
-+++ b/build/moz.configure/rust.configure 2019-10-22 11:48:55.616022140 +0700
-@@ -78,9 +78,6 @@
-
+Do not try to figure out the rust target as it is broken on musl
+instead use what is set in RUST_TARGET
+
+Skip extra checks on cross builds (broken for arm*)
+
+--- a/build/moz.configure/rust.configure 2020-12-12 01:35:33.000000000 +0100
++++ b/build/moz.configure/rust.configure 2020-12-15 19:45:16.467750787 +0100
+@@ -91,9 +91,6 @@
return unwrap
--rustc = unwrap_rustup(rustc, 'rustc')
--cargo = unwrap_rustup(cargo, 'cargo')
+
+-rustc = unwrap_rustup(rustc, "rustc")
+-cargo = unwrap_rustup(cargo, "cargo")
-
- set_config('CARGO', cargo)
- set_config('RUSTC', rustc)
-@@ -348,26 +345,6 @@
+ set_config("CARGO", cargo)
+ set_config("RUSTC", rustc)
+@@ -260,7 +257,9 @@
+ data.setdefault(key, []).append(namespace(rust_target=t, target=info))
+ return data
+
+-
++@imports('os')
++@imports(_from='mozbuild.util', _import='ensure_unicode')
++@imports(_from='mozbuild.util', _import='system_encoding')
+ def detect_rustc_target(
+ host_or_target, compiler_info, arm_target, rust_supported_targets
+ ):
+@@ -382,12 +381,12 @@
+
+ return None
+
+- rustc_target = find_candidate(candidates)
++ rustc_target = os.environ['RUST_TARGET']
- os.write(in_fd, source)
- os.close(in_fd)
+ if rustc_target is None:
+ die("Don't know how to translate {} for rustc".format(host_or_target.alias))
+
+- return rustc_target
++ return ensure_unicode(rustc_target, system_encoding)
+
+
+ @imports("os")
+@@ -410,35 +409,6 @@
+
+ os.write(in_fd, ensure_binary(source))
+ os.close(in_fd)
-
-- cmd = [
-- rustc,
-- '--crate-type', 'staticlib',
-- target_arg,
-- '-o', out_path,
-- in_path,
-- ]
+- cmd = [
+- rustc,
+- "--crate-type",
+- "staticlib",
+- target_arg,
+- "-o",
+- out_path,
+- in_path,
+- ]
-
-- def failed():
-- die(dedent('''\
-- Cannot compile for {} with {}
-- The target may be unsupported, or you may not have
-- a rust std library for that target installed. Try:
+- def failed():
+- die(
+- dedent(
+- """\
+- Cannot compile for {} with {}
+- The target may be unsupported, or you may not have
+- a rust std library for that target installed. Try:
-
-- rustup target add {}
-- '''.format(host_or_target.alias, rustc, rustc_target)))
-- check_cmd_output(*cmd, onerror=failed)
-- if not os.path.exists(out_path) or os.path.getsize(out_path) == 0:
-- failed()
- finally:
- os.remove(in_path)
- os.remove(out_path)
+- rustup target add {}
+- """.format(
+- host_or_target.alias, rustc, rustc_target
+- )
+- )
+- )
+-
+- check_cmd_output(*cmd, onerror=failed)
+- if not os.path.exists(out_path) or os.path.getsize(out_path) == 0:
+- failed()
+ finally:
+ os.remove(in_path)
+ os.remove(out_path)
+@@ -462,28 +432,7 @@
+ host, compiler_info, arm_target, rust_supported_targets
+ )
+ if rustc_target != rustc_host:
+- if host.alias == rustc_target:
+- configure_host = host.alias
+- else:
+- configure_host = "{}/{}".format(host.alias, rustc_target)
+- die(
+- dedent(
+- """\
+- The rust compiler host ({rustc}) is not suitable for the configure host ({configure}).
+-
+- You can solve this by:
+- * Set your configure host to match the rust compiler host by editing your
+- mozconfig and adding "ac_add_options --host={rustc}".
+- * Or, install the rust toolchain for {configure}, if supported, by running
+- "rustup default stable-{rustc_target}"
+- """.format(
+- rustc=rustc_host,
+- configure=configure_host,
+- rustc_target=rustc_target,
+- )
+- )
+- )
+- assert_rust_compile(host, rustc_target, rustc)
++ return rustc_host
+ return rustc_target
+
+
diff --git a/srcpkgs/firefox-esr/patches/rust-has-i128.patch b/srcpkgs/firefox-esr/patches/rust-has-i128.patch
deleted file mode 100644
index c25a185c1c11..000000000000
--- a/srcpkgs/firefox-esr/patches/rust-has-i128.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-The configure check fails for cross builds.
-i128 is supported since rust-1.26, so it is safe for us to assume it is always present
-
---- a/third_party/rust/num-traits/build.rs 2020-02-14 23:57:25.985355610 +0100
-+++ b/third_party/rust/num-traits/build.rs 2020-02-14 23:58:36.255710188 +0100
-@@ -1,14 +1,5 @@
--extern crate autocfg;
--
--use std::env;
--
- fn main() {
-- let ac = autocfg::new();
-- if ac.probe_type("i128") {
-- println!("cargo:rustc-cfg=has_i128");
-- } else if env::var_os("CARGO_FEATURE_I128").is_some() {
-- panic!("i128 support was not detected!");
-- }
-+ println!("cargo:rustc-cfg=has_i128");
-
- autocfg::rerun_path("build.rs");
- }
diff --git a/srcpkgs/firefox-esr/patches/sandbox-fork.patch b/srcpkgs/firefox-esr/patches/sandbox-fork.patch
index 328943cb0013..d4584e74b91c 100644
--- a/srcpkgs/firefox-esr/patches/sandbox-fork.patch
+++ b/srcpkgs/firefox-esr/patches/sandbox-fork.patch
@@ -2,12 +2,14 @@ make SYS_fork non-fatal, musl uses it for fork(2)
--- a/security/sandbox/linux/SandboxFilter.cpp
+++ b/security/sandbox/linux/SandboxFilter.cpp
-@@ -1253,6 +1253,8 @@
+@@ -1420,6 +1420,10 @@
// usually do something reasonable on error.
case __NR_clone:
return ClonePolicy(Error(EPERM));
++# ifdef __NR_fork
+ case __NR_fork:
+ return Error(ENOSYS);
++# endif
# ifdef __NR_fadvise64
case __NR_fadvise64:
diff --git a/srcpkgs/firefox-esr/patches/sndio.patch b/srcpkgs/firefox-esr/patches/sndio.patch
index 959fc1ec913a..68628bea8d8f 100644
--- a/srcpkgs/firefox-esr/patches/sndio.patch
+++ b/srcpkgs/firefox-esr/patches/sndio.patch
@@ -42,11 +42,11 @@
if CONFIG['OS_TARGET'] == 'Darwin':
--- a/build/moz.configure/old.configure 2020-06-30 12:17:04.087609070 +0200
+++ b/build/moz.configure/old.configure 2020-06-30 12:17:04.087609070 +0200
-@@ -210,6 +210,7 @@
+@@ -88,6 +88,7 @@
@old_configure_options(
- '--cache-file',
- '--datadir',
-+ '--enable-sndio',
- '--enable-crashreporter',
- '--enable-dbus',
- '--enable-debug-js-modules',
+ "--cache-file",
+ "--datadir",
++ "--enable-sndio",
+ "--enable-crashreporter",
+ "--enable-dbus",
+ "--enable-debug-js-modules",
diff --git a/srcpkgs/firefox-esr/template b/srcpkgs/firefox-esr/template
index 33fa4dfaf2a0..35e7b0be93c8 100644
--- a/srcpkgs/firefox-esr/template
+++ b/srcpkgs/firefox-esr/template
@@ -3,58 +3,63 @@
# THIS PKG MUST BE SYNCHRONIZED WITH "srcpkgs/firefox-esr-i18n".
#
pkgname=firefox-esr
-version=78.14.0
+version=91.3.0
revision=1
wrksrc="firefox-${version}"
-build_helper="rust qemu"
+build_helper="rust"
+short_desc="Mozilla Firefox web browser - Extended Support Release"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="MPL-2.0, GPL-2.0-or-later, LGPL-2.1-or-later"
+homepage="https://www.mozilla.org/firefox/"
+distfiles="${MOZILLA_SITE}/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz"
+checksum=128b5349f112d8a0fd8698f3645ed43ea29d4b95047b7c4fd770b95d0661e96c
+
+lib32disabled=yes
+
hostmakedepends="autoconf213 unzip zip pkg-config perl python3 yasm rust cargo
llvm clang nodejs-lts cbindgen python nasm which tar"
-makedepends="nss-devel libjpeg-turbo-devel gtk+-devel gtk+3-devel icu-devel
+makedepends="nss-devel libjpeg-turbo-devel gtk+3-devel icu-devel
pixman-devel libevent-devel libnotify-devel libvpx-devel
libXrender-devel libXcomposite-devel libSM-devel libXt-devel rust-std
libXdamage-devel freetype-devel $(vopt_if alsa alsa-lib-devel)
$(vopt_if dbus dbus-glib-devel) $(vopt_if pulseaudio pulseaudio-devel)
$(vopt_if xscreensaver libXScrnSaver-devel)
$(vopt_if sndio sndio-devel) $(vopt_if jack jack-devel)"
-depends="nss>=3.53 desktop-file-utils hicolor-icon-theme"
-short_desc="Firefox browser - Extended Support Release"
-maintainer="Orphaned <orphan@voidlinux.org>"
-license="MPL-2.0, GPL-2.0-or-later, LGPL-2.1-or-later"
-homepage="https://www.mozilla.org/firefox/organizations/"
-distfiles="${MOZILLA_SITE}/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz"
-checksum=aa0e28a4150c33a165120a24f20e0373e74635c9f812732a08850d71cda3b2fa
-lib32disabled=yes
+depends="nss>=3.66 nspr>=4.32 desktop-file-utils hicolor-icon-theme"
conflicts="firefox>=0"
build_options="alsa jack dbus pulseaudio xscreensaver sndio wayland"
build_options_default="alsa jack dbus pulseaudio xscreensaver sndio wayland"
-if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
- makedepends+=" libatomic-devel"
-fi
-
case $XBPS_TARGET_MACHINE in
- armv[56]*) broken="required NEON extensions are not supported on armv[56]" ;;
+ armv[56]*) broken="required NEON extensions are not supported on armv6" ;;
ppc64*) ;;
ppc*) broken="xptcall bitrot" ;;
esac
-CXXFLAGS="-Wno-class-memaccess -Wno-unused-function"
+if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
+ makedepends+=" libatomic-devel"
+fi
+
+# work around large debug symbols on 32-bit hosts
+# cargo:warning=cc1plus: out of memory allocating 65536 bytes after a total of 1010126848 bytes
+if [ "$XBPS_WORDSIZE" = "32" ]; then
+ nodebug=yes
+fi
-# We need this because cargo verifies checksums of all files
-# in vendor crates when it builds and gives us no way to
-# override or update the file sanely... so just clear out the file list
+# we need this because cargo verifies checksums of all files in vendor
+# crates when it builds and gives us no way to override or update the
+# file sanely... so just clear out the file list
_clear_vendor_checksums() {
sed -i 's/\("files":{\)[^}]*/\1/' third_party/rust/$1/.cargo-checksum.json
}
post_extract() {
- if [ "$XBPS_TARGET_LIBC" = musl ]; then
+ case "$XBPS_TARGET_MACHINE" in
+ *-musl)
cp "${FILESDIR}/stab.h" toolkit/crashreporter/google-breakpad/src/
- fi
- # Google API key (see http://www.chromium.org/developers/how-tos/api-keys)
- # Note: This is for Void Linux use ONLY.
- echo -n "AIzaSyCIFdBA7eQP43R6kXRwTq7j6Mvj1ITze90" > google-api-key
+ ;;
+ esac
# Mozilla API keys (see https://location.services.mozilla.com/api)
# Note: This is for Void Linux use ONLY.
@@ -63,20 +68,20 @@ post_extract() {
post_patch() {
_clear_vendor_checksums num-traits
- _clear_vendor_checksums glslopt
}
do_build() {
- cp ${FILESDIR}/mozconfig .mozconfig
+ cp "${FILESDIR}/mozconfig" "${wrksrc}/.mozconfig"
- if [ "$XBPS_TARGET_LIBC" = musl ]; then
+ case "$XBPS_TARGET_MACHINE" in
+ *-musl)
echo "ac_add_options --disable-jemalloc" >>.mozconfig
echo "ac_add_options --disable-gold" >>.mozconfig
- echo "ac_add_options --enable-release" >>.mozconfig
- fi
+ ;;
+ esac
case "$XBPS_TARGET_MACHINE" in
- arm*|x86_64*|i686*)
+ x86_64*|i686*|arm*)
echo "ac_add_options --disable-elf-hack" >>.mozconfig
;;
esac
@@ -98,16 +103,17 @@ do_build() {
export BINDGEN_CFLAGS="--target=$XBPS_CROSS_TRIPLET \
--sysroot=${XBPS_CROSS_BASE} ${BINDGEN_INCLUDE_FLAGS}"
- export HOST_CC="${CC_host}"
+ export HOST_CC=cc
export TARGET_CC="${CC}"
export HOST_CFLAGS="${XBPS_CFLAGS}"
export HOST_CXXFLAGS="${XBPS_CXXFLAGS}"
- echo "ac_cv_sqlite_secure_delete=yes" >> .mozconfig
- echo "ac_cv_sqlite_threadsafe=yes" >> .mozconfig
- echo "ac_cv_sqlite_enable_fts3=yes" >> .mozconfig
- echo "ac_cv_sqlite_dbstat_vtab=yes" >> .mozconfig
- echo "ac_cv_sqlite_enable_unlock_notify=yes" >> .mozconfig
- echo "ac_cv_prog_hostcxx_works=1" >> .mozconfig
+ export ac_cv_sqlite_secure_delete=yes \
+ ac_cv_sqlite_threadsafe=yes \
+ ac_cv_sqlite_enable_fts3=yes \
+ ac_cv_sqlite_dbstat_vtab=yes \
+ ac_cv_sqlite_enable_unlock_notify=yes \
+ ac_cv_prog_hostcxx_works=1
+
echo "ac_add_options --target=$XBPS_CROSS_TRIPLET" >>.mozconfig
echo "ac_add_options --host=$XBPS_TRIPLET" >>.mozconfig
else
@@ -126,19 +132,18 @@ do_build() {
# work around large debug symbols on 32-bit hosts
if [ "$XBPS_WORDSIZE" = "32" ]; then
- export CFLAGS="${CFLAGS/-g/-g1}"
- export CXXFLAGS="${CXXFLAGS/-g/-g1}"
+ echo "ac_add_options --disable-debug-symbols" >>.mozconfig
+ echo "ac_add_options --disable-debug" >>.mozconfig
export LDFLAGS+=" -Wl,--no-keep-memory"
# patch the rust debug level, this is hardcoded
- sed -i "s/debug_info = '2'/debug_info = '1'/" \
+ vsed -i 's/debug_info = "2"/debug_info = "0"/' \
build/moz.configure/toolchain.configure
fi
- # FIXME: incompatible with rust 1.48 in this release
- #case "$XBPS_TARGET_MACHINE" in
- #aarch64*|i686*|x86_64*)
- # echo "ac_add_options --enable-rust-simd" >>.mozconfig ;;
- #esac
+ case "$XBPS_TARGET_MACHINE" in
+ aarch64*|i686*|x86_64*)
+ echo "ac_add_options --enable-rust-simd" >>.mozconfig ;;
+ esac
export LDFLAGS+=" -Wl,-rpath=/usr/lib/firefox"
@@ -153,9 +158,7 @@ do_build() {
export AS=$CC
- cat >>.mozconfig <<EOF
-ac_add_options --with-google-location-service-api-keyfile="${wrksrc}/google-api-key"
-ac_add_options --with-google-safebrowsing-api-keyfile="${wrksrc}/google-api-key"
+ cat <<! >>.mozconfig
ac_add_options --with-mozilla-api-keyfile="${wrksrc}/mozilla-api-key"
ac_add_options $(vopt_enable alsa)
ac_add_options $(vopt_enable jack)
@@ -164,42 +167,28 @@ ac_add_options $(vopt_enable dbus)
ac_add_options $(vopt_enable dbus necko-wifi)
ac_add_options $(vopt_enable pulseaudio)
ac_add_options --enable-default-toolkit=$(vopt_if wayland 'cairo-gtk3-wayland' 'cairo-gtk3')
-EOF
+!
+
rm -f old-configure
./mach build
-
- # Make langpacks for all languages
- dir=$(ls -d obj-*/browser/locales)
- cd ${wrksrc}/${dir}
- for lang in ${languages[*]}; do
- msg_normal "Making langpack for ${lang} ...\n"
- make ${makejobs} langpack-${lang} LOCALE_MERGEDIR=.
- done
}
-
do_install() {
export MACH_USE_SYSTEM_PYTHON=1
DESTDIR="$DESTDIR" ./mach install
- vbin ${FILESDIR}/firefox-wayland
vinstall ${FILESDIR}/vendor.js 644 usr/lib/firefox/browser/defaults/preferences
vinstall taskcluster/docker/firefox-snap/firefox.desktop 644 usr/share/applications
- for i in 16x16 22x22 24x24 32x32 48x48 256x256; do
+ for i in 16x16 22x22 24x24 32x32 48x48 128x128 256x256; do
vinstall ${wrksrc}/browser/branding/official/default${i%x*}.png 644 \
usr/share/icons/hicolor/${i}/apps firefox.png
done
- vinstall ${wrksrc}/browser/branding/official/default256.png 644 \
- usr/share/pixmaps firefox.png
- # Use system-provided dictionaries
- rm -rf ${DESTDIR}/usr/lib/firefox/{dictionaries,hyphenation}
- ln -s /usr/share/hunspell ${DESTDIR}/usr/lib/firefox/dictionaries
- ln -s /usr/share/hyphen ${DESTDIR}/usr/lib/firefox/hyphenation
+ # We don't want the development stuff
+ rm -rf ${DESTDIR}/usr/{include,lib/firefox-devel,share/idl}
# https://bugzilla.mozilla.org/show_bug.cgi?id=658850
ln -sf firefox ${DESTDIR}/usr/lib/firefox/firefox-bin
- # Remove the development files - noone uses them
- rm -rf ${DESTDIR}/usr/{include,lib/firefox-devel,share/idl}
+ vbin ${FILESDIR}/firefox-wayland
}
From 6ec1e0398557f34ad2d470f1c37ae0db57cbef8d Mon Sep 17 00:00:00 2001
From: Johannes Daniel Nuemm <daniel.nuemm@blacktre.es>
Date: Sat, 20 Nov 2021 15:13:43 +0100
Subject: [PATCH 2/2] firefox-esr-i18n: update to 91.3.0.
---
srcpkgs/firefox-esr-i18n/template | 188 +++++++++++++++---------------
1 file changed, 94 insertions(+), 94 deletions(-)
diff --git a/srcpkgs/firefox-esr-i18n/template b/srcpkgs/firefox-esr-i18n/template
index 258494c4a723..51583fb80e9b 100644
--- a/srcpkgs/firefox-esr-i18n/template
+++ b/srcpkgs/firefox-esr-i18n/template
@@ -1,6 +1,6 @@
# Template file for 'firefox-esr-i18n'
pkgname=firefox-esr-i18n
-version=78.14.0
+version=91.3.0
revision=1
build_style=meta
short_desc="Firefox ESR language packs"
@@ -135,96 +135,96 @@ _pkgtmpl() {
}
}
-checksum="6e91070c0ee58852ac3b8c8f0ac9620289ca4e200b8074dee8449374301616d1
- 764a7f3a61f0d1b50fdc6dc313f7651e8aa62df4e8883af1a6ef4d18750909c7
- 941ab61c6cb0d52c0e348e080e769cfebe2364eb8cf24a94f625b57f84ba17f1
- a0e0649532c34ccdc1abe1cc1215e66186df8d9d484dfc4337df92151629e04d
- 6c21635e8b1293f9b6b8acdcebd372574610ba535d35f21cf77c73bffb88dd92
- 71d4a6b25d6f18e207c7749f8e50a70a122acea8208c9940c8c882cea7435e0d
- 37209366ed7a66ad7710f268d326a79198c0e9459f751776cf74cb5e5b181d08
- 7638eafa83ac00c88f4410bd67d997570f2635cfc9e7448389ad73e9330b2141
- 3d0e276f98253020935fdec54d906633992848acd4a14d3c48f30fbc6d58c752
- 0b8073a34cd6c62ed8a32c5a0d04a715839b7421a4a681c69bcf9c5d3b0b257d
- 39ee3a5be8fead6f9d69e151107402e234ba6ccd6052573ec48ce71c7d63c964
- 04d517783ec518afc6550b7ca7b591fb17967d8f1c47cfd552b7aeab3d7239c1
- d87112e2791a3fc49c33e4a4be445bebe64d69894a472d0c3f063129294c321f
- e8ab1a8f936f9f8b554573b9b65d8b3377f6fcc6256087424866d3c93dc4bd31
- 518232ababbf0a4f8d5c9aea0e21a2d019b781988bc448a20066b9798bf79a7e
- 50d1fc49591b2a4211337034f036725bf6d0d1816cf54b5a7c4091af504541bc
- f61902d98456796d545a9cfcc3362c682b9938bdfdb6b5d4b9184cc33efbb481
- c254eed182b5c49b52dcea39f8a4af0c14ecece14ea1fb02fe75770fda4dcec1
- 8c9ba5f38c939166fa557e7fc2de1e7880719e4671d3e35d7f0902d7367a759e
- a76a8263887dc89c4f5cc4cfd70eb36406fddd8e9d569bb62ab82fc68849a655
- e6d33c3f1d0173886bf9118695fa9b613b99fdb5777b2582c2d43827e08732fa
- f524faec3cbf044e2082306decd1f6c4737a6babc4a5886b50de71c6a1482de2
- e1ad21912117ed7019498a2a0f65db03ebace025fbd7119f2632f580e1bfdfc6
- 586538a8b5a643329e21a0e66244dc30c5b065684c37c06d92ccfc244bb117a6
- 741c5c34ef55bdd3484f32aa11ce96230a4ad94be929fc3219935d09c22dac09
- 557233773969799d2b946a68e732c55ff4b901d5a1cf45552ab1bb6801024e01
- 8aa1bf00d7e97981dc0933dbe4f886ac9f9e1569f5b60ae219c50a7e82d6e81f
- 1cffa9258de8c892eaf13dc6fcb0883b2bcd418af567d6685eb0b89ada1b6260
- c5b3271069de86cc1713c9a93d4be1941792a55b7831a191369935b18d450fd1
- 00338ba5f470c3d4171d271b97692f6e66f94579709395f7409f4b535cbee1c3
- 1708326197664159d86812e28084975f63ae8112b2d805e62f4acb741bae803b
- 1c86c059ec1ca13904d40fe121cab5ed502f829533fb0ef649396cd5d94e074e
- 6b7885a7cb52c6a74064bc83f7f1d4117994bda1487255f1d91cb6d663149073
- d3b14f75fc0da0940a540afb402f41f097ecaa281f5decbcbc6a05ca0e102283
- c2dd8a7920c1baa2a13af9cc13b523c9162c213c79b063e1b2bb41290c5938f2
- ef7e94deeb31bfc0edec3265de05bf1881bf4c9b348f9ba539f0e4b74368225e
- f8031fbc3b85324ad05e415a0cdf8c189ed95bf6fd4a793e3d5f7b8e1e361966
- 138c430787462e3e77e87ae86178a663777a970c5a3bcc6236d0e5042a958c1e
- 49d98fdbbee4998a856634e4556a4ea1bda13ee60ea328accd381a3eb0ce1196
- 27ed18424e42b98b213714f864216be9eff08a5ed910be69b6dd82b9ec592ca9
- dc4cf3f9d0c9104d615e1760eae09326605b31a4efb69938cffbf553dec0d0a2
- 6db58cccd8cc96014ce481225b34a5d2bcbe4766ceca676bb6b56ee53a31fcd1
- ac10d3163d8d50746d3f2bbee8309508297654a5f5f40d003631cecd9920e8ce
- d4c03de6fce7abc8ce0c98547c45fed6c44229fe0737dd514c0681dc31e37cde
- 8ea5624f13b33073b704a5f967075c29ccfa64b9985432407b656a66a6e47b64
- f7b8654b8d5d0b5513bfaa4ce1ab171ce4b63aed297be7c416df42a5e127c370
- a7e805711ef4fdbe402bef807a5a8af92af99448366f34d61ba9e3d8d267c1f8
- 4fb10b2d88af4ce05b685562a07cb8fd29cfe0a479472d6c156799c83e2bf579
- 4398447f5f86446095f5f361ecc80750d0d6fbed6aa1cf85afe594beb2687c88
- fd87b2fda7d00d6e981d5eba8dccce8d1a30a5582a2c7dcf746d06233b45c18b
- 0436bf7c162632dbe4c64d15401b5f5c42feaf723ea67cf05a9e316dea14abaf
- f8998bb3b5761a00a57ae042422779f05034dd69f3196fb828aaf75e5e3b6337
- c37bb2c9bc3184d7ad4ecd5849d0c2a5e77c4d7ec4afc0844feb9f3ad757d1d5
- f371deedf56b3f255379ca97aa6dafa47dceee58fd6d16193f186dbab7465ad1
- c76bc59d2208494f09bdfb4d96ac9a7ed5f1a638e54dbfeea450a69b58880f6d
- 16bb969ac6361be47396433559096a37d6cca1f05bedd9e366515b8a34ad8c1b
- e1c1100b75b1a15616e646289785673b3e8f8a7e22386dc77aa18016f7ea4934
- a5b8b2baff1adf9eda601210d86aacc933c4228611bc45d1a6df8433ca6ef946
- 0b3fea009c5add84a640fbae307d591714f01229f57f43257fa6c2e19b464b5f
- 9d30fa8a25a24c524d1e23a06689dd2f830aebbca92f0f77f72c3728efa1d960
- 4591f36f1ee21dfe64710f5027549591cecb952c1d4e67d4ef70038c63194874
- 716ad69bb9e3f06e6d00acc34be816072e0dd1d96715ee0d7906beed94ee4732
- 316d93e9dd34495b156cc625b5a4077d427cf809ade0e0f810ae35bb16766bf6
- 30ea50cd8518bb7e5339111eafd0af87a35dd930efc1e635760d3e4627ef7554
- d99bf09e2cc94cbf752a144e6c0cb47f51eb5f6785709af2410ce6177dee20de
- 6355fd36f28b81ef08b6a038cf6b3dc7bd22b36bb135473fc259453bd73c1432
- ef8b8b7d79e8d9ea8c2a44193498d4887d1ce1ed5bd66373422b68e86f81b3d1
- 5607e93a36a9dcf78000fab7b69e4bba868654a6a1b0f9d516ed4463c490f57a
- e0ecd0dd559c050f4f1e8db8e94b7db84ab73e3417658ef8374b5f116050d530
- c5fe51c00538aa8241b94c1a4297a66ea10cd54bdf71d90253ace7c731ba9fbe
- a335ec53c6dcdf7a464d3b5277921c53461f91e2f9a03ec5d08daa72b1600efc
- 8f8a52f9e80c985ac16cae526a68aa08e2869fcaf1acfef9438b587ccc51941f
- 56fc9691d438f2d120a8d769896cba6132ce2c1b4a1a36b64eb8504987c6579b
- 10ba83c6355c6f7ffee301c28940d98249c06e8f36d0c728d448244b144d4f3c
- 407a2137aecb233bcb357cfe20c798e3fb37c1d715d98d5f290fdd0770c15ef6
- a175a2046c88f70d5758dc8dbe2c418152fe4e4b008ca4cd0c3e5ac6de13290c
- 35c87e3ad5dad7736036edcf35b1c2f33a4f46df41d0b802e136ee13faead1fc
- c56ebb4f1d1b887a829ba460fb03c474cb67b470b8f938ff8a32da1d58fc48fb
- aebab0123ce77668cff72bb095d2ac30621868782c4fc93b52a5f8576d3a8871
- bb08adf26a85f7406dc996b89a487c5fa0d3c0e4305fa4c533841b41076bd507
- c6c8a8307e332639c7bc9ef840b09cd4c861c1bd943b7c66c1b444c245c1cf93
- d0c7ebd30244c515e1be32f623d338cc4d615d36dae162f82c707ba69da3f484
- 947e7d619562722590db3826cf101d778a26e7aed70d8e9ead439c05e6f809bf
- 574b1e04824158e5a0957438ee6286adeb1cb42fe646ca42ff75c1c86e3ad17d
- 099c671e44e2469c0dd346b3d4c51311309628b96b35f1208e0963d8cf3498c4
- 87d11612ee4d7fb05ba8e409b8b26bcf5e0c210a2da12de71aa97d7ff25a1c0a
- bb9d38cfd9f739f0051508527a9a53c6ad45f4c6f6ca1d47cca3b0564e732817
- f9fd22a7b66d45475e817bb9c045b46d4d819b9b608b64987c43935f51de40f8
- b587c932a5c493f4f7572ca15c43af2efb2611f827194b73a695b9d504f5e89e
- 861fe37d11daf1b0d789a910ba951b7826e69e0f8f222df15df156dfb9144821
- e5af78b8e3851e057e36e562914907fe6eab527885f671f8b68b447304c804f8
- 1211d210260ad788b85c72a0ec3eac9904de5c61426ef4fe5ccce5b3e0de536f
- 5d0170365a32c1df7a4504430d547d7b9b7626715ba52d00334717ed5696a7f4"
+checksum="0eee1b17b1f5aed676a2a494cf29b5e5d3d2698728a35eba08e66571d8c84c14
+ bff092f5e1bc8e01e3d88fad4f6121f71c6df9f3f68a0437ef0a14050c7e3b42
+ 71498faef46ff645bbbac526bb66b1cbca34c2b7022ac570a4796c6a39a8975f
+ bd99f9ada2c8248ee1239aa95f448804ec9686a73a28045bf05689d6919fbfcd
+ 467e04bd6eecf14f1b565ee9b89161873d205f54076d94d41a8bfc6fa2a58996
+ 9881874658e6066b366a0a0f6140141caa165c1830f74947270c52c06cb38fa8
+ a9c1c955fb11c7f473ea615c917804cbba1cc1c87b027b581f5c8a738f1a34fb
+ c61f578136c998d7fcfe157dd85637d536da4593a4f8fa90ffc5fe94bba9a803
+ 47ce84a0d744c33049a6e081bd8d65dac515237e5298ff9fc424a1bc4700cc92
+ 08f6eb5779f4399fdf0a8132dc92438e974cd3dcb4c5438fb587db876ee889ec
+ e16ed1906c49edfaaa233338bfd6eaf9e4f2113260a5682d4fdd9e9ce71b017e
+ ddb25de3a9e4cc3e282ffe270e62c13287a016e3c0d676cf8242b6d93afccaf5
+ 9ad51c6346e7d70a94277eaf7146fa11199b2ab40d91653d6abf0d374f7134fd
+ 64ad0267457678a7b6f2b3e452f3678a3aaf14bfb905f4f78ce4d99e06312c37
+ 91df48c9b6ae23e9e94641b98a0ba978f308cfd72236f0a0b9fa712e026cc71d
+ 52e87048120243092d77f79aa33852b57f6aec875b44cc7f321abd50f88afe7d
+ a98a26d0a50af7fec7a95f138d724ef67f309303a0df8067c0755c139b254aee
+ 126894015f17d908062f1600c7d8fa4010b8ed70d206bffc4a408b43356ea3d4
+ 22180f6601376b132f2f46eb08a4ecb3c484e76bb90587764addd5d0647029ea
+ cbb323b2b1133d8290b991b79008ee8471a916c5ba542ca8e359770c19d4759a
+ b3015a7dbf693ce9ef44c6f3b8f7c0f043bb13474e4144159cc26a65cbb23521
+ 2ab851974bdbb5b914acd44edfd6ef2adf4d0d83b872a8adb8b2b64d620b27fc
+ 234ecc57e99be39aa51ab5e5e5b238a9c5857fd366f69cdf160efd25237d0496
+ e627aa9ee85e449ced2e655f45ab60e1372a36f4b9ff8543839a864766718569
+ de9b1a64b01fd15ff6b89d6ccc93451e1f11216b07dc5e6fa05268c3e926cae1
+ 2ca889180191d8183e052c9df3c377600fcae622f7649ab488a3c1a5a1cd8d5b
+ 3b95aace3579b535a55128b9959979a61dba22bcdb195e362ceeb7526407c77a
+ 49154388549a9c5db321ebb7d327708a7bf4b36de39cdf0d93d3b88cee077fb3
+ 9f2b35bc942ca69cb498c2752a234f58a1a765ce30563589c720a755bf29e655
+ e10a8e72f0b6aa267a4a3e51708c86c21d9b92ddfac28d1f2d68a8b21729ca8c
+ 09a1e51ba668959331ac46041a76cc15f345b8634a642918544c0158777dd989
+ 7792bbcc9a1ddcfca8968cea5bcaae250095b5a46fde5d51a48d4426b4c6f5d2
+ 638c665557ef6556a5bbb2c9f79fca780a081226dbd5a465e7615f055a117748
+ 9c3b45900a28ab3efb5b3bb52daebacc1dd3a246936b745fff676e6c3fd251fd
+ 7bcbba3e353cc7a0344302db8a9888f606e28e8c2f11f4f88dde52fba69b43c4
+ 62383ba98a16964ce6ef2bde878515505965cfded17b69e477d3671e1a942fef
+ dcc2212529bea4e8b21bedf3ceefeec1a798818005d526d6d18cabecdff230e1
+ 5d0c64cec6aafcf478b57c26640e18cfae6928d5ae705b9a82337559389a57fe
+ dab730eab216c2cb0a1672a21e78fbf93c672498d5e36781b1c68050ae8431d9
+ e9296fdadb84d3462f63a06e9e72e3d7c1e6df95870a6f303b498fb115e8ac6b
+ 519f1afe2b1a6747e26718f28b39d27f5d0188bc85ed906b54d18cbca6a67ec7
+ e90fdd34d1d4612bd1a7a81ca3275be2dada26862944b4caeb356482596f591a
+ 83142afa82a9db327475afcc3318882fd8a26d81bc946749d57eb3923c5f489b
+ 027604328860d5bc938ac9564aae8957308da5b9ec05cd3984856da1c2af3ea0
+ a7028398816ae2334bf94c66efe429d981a48b790286d27fdc25f3388720e62c
+ 9224a7e0f1ceecdf4c7f77fdeb510100419f9e805e0b204f0c59d36275f6d925
+ 8af990a6fb805f552643b6ee38d178d2f75bd169802cec178175c8005bc77b37
+ b629886a47facaf7fad105b7ee9dc98b470670b25b575e51710d876235209674
+ 31fc7f882b79c4d91d270bcc8e5b2fa7066f21d6c8a5d4d491d7896e49202f06
+ fd7e5dc510770cc601f9ed4e174b8585ef28316f660379235245f10cc0c6bc3e
+ e0ac6d1626c1dfa05bcf6298919aeee4fa6904d4a347608d729e38ead4baf120
+ fe05e00413a2905f3f25d65d635655cf9e37d62fec5d0d235ea5cc7fa08ee1fd
+ 20ff2c930b732082a44020fdebc588ac069264ead48fa0f9ace5aea4210b046f
+ 4346e474009cbb630392ed0583c65448ee577a71403cb164e904a99bf6e819c2
+ f48ac2e2725c83c82af0374b5aa7a1da270bf25ea696c533c981d34518746fbd
+ e520a79ebdec829889a2225079ea7081bfa153ccf71024a9617625b88923d011
+ feb471682e8aa79cdc410c053bd2763878275f1abff17bcb1783798ee264b6be
+ f98a07ccb4806ddfef815712756f06b82543dd13483abe9865434d4c247fa2b0
+ 17f6388807ec48a8419dcc67381f8d8a5aadd467ed7d6c386ff56173e645633c
+ f7aab2c51a78cac47270bd37c9b545fe07b08429299d8fdc27b087ccbb4108f1
+ 0dd59e9a669894d9ae82c50f2ee04495922aa6f45780b51df089706c7ba9cbcc
+ 7579ce83f088693989326b7166f66a3808398be81b922361556c3efbc8a8c08a
+ f07e95eea11c8f6e516c0fdb33038c321ae8aa27ac81f5c6773cf3104e967a19
+ 5e247f86c15a267ac017dfcf73395ed3104f407c96bb606e34070332e2b26050
+ 8b61a367a186feca735487d9f62f0de7865d1a678e7e9f990ad31945bab10eb7
+ 080f150e066508946482e78dcc714c9fb3b63a7975f66ceba018ffc5bc65a833
+ e9f5b74a2856fc009c3139164872ccbe284618d7fc1fa59c16575c82cda8491e
+ 80c50b252b4bc0c00a336a9bdbfb05e7c510f4ad1ae6c64f92f6f6a037f9d762
+ 85596a73a957ff80d403d691cbc96724bae7186e1358f85c3ef21c501b033ad1
+ 81277a3e8b896e760ef75ad90c197818aa3395abf017b7560db5b189302d8e1d
+ 733de2df49762e7c6e16a02acbfe409869ec61f071364d0bbe8cbee43f350c07
+ b8d634c6ce7b03bc78c02480d82a4effbec46119cd8a6c7a0fbfbdbd7f8bee93
+ f68c8c8de23ec4eae407e44176df77b48146a2bd6de4edbcf6eca33f3cf93cb2
+ da5b8d10bfae987051f978f5f5707c9532c124233929402249ac99fe027c4c56
+ 5a00221c264e06b04476acf4098eb9a5813eaebd38d35527652ae757bd7ac819
+ 849872f1edf674b5200c35b05375a23ae56437e8ec1f5cbbd8cd4470127896d1
+ c37075191481a93fd82c3ec12cb5ed81682eff4722e1d519287535e959a46379
+ 286fd2991570be7813a7372b0651ee84de3e94e12b41e906de380573c05b75a9
+ 8f367feebd634b1cdd004c0c448fed8473f780511f525eba7a902753d873b63a
+ f58b3eb8dbf4b214cd6de44ffc23ddddd2a2e61ba4f2b21eb1ae134669e3e19a
+ c527ca276d7c2b676e89030a36b1b0d2eb30eb986849d1ecc3c7fc90ed1b5b22
+ 893484fbfa297fc87733918620f94629f2baee5d747b8cbcef4ff5268d0b8d3e
+ 11a46dde2f4e32c7ba5498195973e26dd757e6eb6f81717259062a92c0bc6cc0
+ 0bca99ff50cb7105bbaba19b345c933b9e4902a92e439bc1bddc8db210a0416e
+ 07536a87813be5de3f2d7b9828b9d846daa4656ed983ef8321496d63d74ed55f
+ bf57e98659c357fb4223d1320d445ad58cb75a5327eceecc9deef4f81b713388
+ 795322220ec8916e15938637d3d0ee0fedc876e6020a5e8d26d8281829b7a609
+ 0b4327c104f159202f4d0ec2c4af3f742551322ea7880194cb4d5eb2e72efb39
+ 9cc3ac6c592f7cc08f5bd0c7285c5de6530a63397212878d69f436f07110049b
+ c63c170c66b39ad9de3f8f6adc5980c7994ea5ee873140654bdcf12c3bc315d1
+ cf94ac6f8728367d485173afc6b17d1687ebb23cb7bc3cf36073ceb0786e6283
+ abceb2f7f9ea142c9029344e502cfad821d32960462b9c1747c289db19a652bc
+ e0eb06bf6818df10345e08ad1431d300bbe26c52f1c1795e95fd157296d3794d"
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PR REVIEW] firefox-esr: update to 91.3.0.
2021-11-20 14:23 [PR PATCH] firefox-esr: update to 91.3.0 jdnuemm
` (2 preceding siblings ...)
2021-11-21 9:58 ` [PR PATCH] [Updated] " jdnuemm
@ 2021-11-21 10:01 ` jdnuemm
2021-11-21 10:09 ` jdnuemm
` (5 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: jdnuemm @ 2021-11-21 10:01 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 229 bytes --]
New review comment by jdnuemm on void-packages repository
https://github.com/void-linux/void-packages/pull/34167#discussion_r753775767
Comment:
I sync the files from src pkg/firefox so it is easier to diff them in the future.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: firefox-esr: update to 91.3.0.
2021-11-20 14:23 [PR PATCH] firefox-esr: update to 91.3.0 jdnuemm
` (3 preceding siblings ...)
2021-11-21 10:01 ` [PR REVIEW] " jdnuemm
@ 2021-11-21 10:09 ` jdnuemm
2021-11-26 14:26 ` Duncaen
` (4 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: jdnuemm @ 2021-11-21 10:09 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 516 bytes --]
New comment by jdnuemm on void-packages repository
https://github.com/void-linux/void-packages/pull/34167#issuecomment-974788164
Comment:
> I would prefer this and the other PR be combined since they need to be synced anyway.
I was not sure about this. Is this for other packages as well? Like bundling dependencies?
Some other Questions:
1. Do i use the [skip CI] wrong? The build process has run and throw some errors.
2. I saw the srrcpkgs/firefox-esr/update file. How is this generated? And Why?
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: firefox-esr: update to 91.3.0.
2021-11-20 14:23 [PR PATCH] firefox-esr: update to 91.3.0 jdnuemm
` (4 preceding siblings ...)
2021-11-21 10:09 ` jdnuemm
@ 2021-11-26 14:26 ` Duncaen
2021-11-26 14:27 ` Duncaen
` (3 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: Duncaen @ 2021-11-26 14:26 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 503 bytes --]
New comment by Duncaen on void-packages repository
https://github.com/void-linux/void-packages/pull/34167#issuecomment-980013722
Comment:
1. yes it should be `[ci skip]`.
2. the update file is not generated, its added if `./xbps-src update-check firefox-esr` does not correctly find if there is a new release. I.e. to change the pattern or the url where to check for new upstream releases. This update check is also used to generate https://alpha.de.repo.voidlinux.org/void-updates/void-updates.txt.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: firefox-esr: update to 91.3.0.
2021-11-20 14:23 [PR PATCH] firefox-esr: update to 91.3.0 jdnuemm
` (5 preceding siblings ...)
2021-11-26 14:26 ` Duncaen
@ 2021-11-26 14:27 ` Duncaen
2021-11-28 9:06 ` jdnuemm
` (2 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: Duncaen @ 2021-11-26 14:27 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 667 bytes --]
New comment by Duncaen on void-packages repository
https://github.com/void-linux/void-packages/pull/34167#issuecomment-980013722
Comment:
1. yes it should be `[ci skip]`.
2. the update file is not generated, its added if `./xbps-src update-check firefox-esr` does not correctly find if there is a new release. I.e. to change the pattern or the url where to check for new upstream releases. This update check is also used to generate https://alpha.de.repo.voidlinux.org/void-updates/void-updates.txt.
Generally for firefox updates its good to do also a musl and maybe a cross compiled test build just to make sure, if you don't have the resources I can do that.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: firefox-esr: update to 91.3.0.
2021-11-20 14:23 [PR PATCH] firefox-esr: update to 91.3.0 jdnuemm
` (6 preceding siblings ...)
2021-11-26 14:27 ` Duncaen
@ 2021-11-28 9:06 ` jdnuemm
2021-11-28 14:01 ` Duncaen
2021-11-28 14:02 ` [PR PATCH] [Merged]: " Duncaen
9 siblings, 0 replies; 11+ messages in thread
From: jdnuemm @ 2021-11-28 9:06 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 674 bytes --]
New comment by jdnuemm on void-packages repository
https://github.com/void-linux/void-packages/pull/34167#issuecomment-981049548
Comment:
@Duncaen if i am helpfull here i will keep this package up to date in the future. But in the moment the whole void package thing is new to me. Anyway i managed to cross compile builds for aarch64-musl, aarch64 and native for x86_64-musl.
```
./xbps-src -m ~/masterdir-musl binary-bootstrap x86_64-musl
./xbps-src -m ~/masterdir-musl pkg firefox-esr
sudo xbps-install -S cross-aarch64-linux-gnu
./xbps-src -a aarch64 pkg firefox-esr
sudo xbps-install -S cross-aarch64-musl
./xbps-src -a aarch64-musl pkg firefox-esr
```
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: firefox-esr: update to 91.3.0.
2021-11-20 14:23 [PR PATCH] firefox-esr: update to 91.3.0 jdnuemm
` (7 preceding siblings ...)
2021-11-28 9:06 ` jdnuemm
@ 2021-11-28 14:01 ` Duncaen
2021-11-28 14:02 ` [PR PATCH] [Merged]: " Duncaen
9 siblings, 0 replies; 11+ messages in thread
From: Duncaen @ 2021-11-28 14:01 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 260 bytes --]
New comment by Duncaen on void-packages repository
https://github.com/void-linux/void-packages/pull/34167#issuecomment-981090646
Comment:
Ok nice. You don't have to install the cross compilers on the host system, xbps-src installs them into the masterdir.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PR PATCH] [Merged]: firefox-esr: update to 91.3.0.
2021-11-20 14:23 [PR PATCH] firefox-esr: update to 91.3.0 jdnuemm
` (8 preceding siblings ...)
2021-11-28 14:01 ` Duncaen
@ 2021-11-28 14:02 ` Duncaen
9 siblings, 0 replies; 11+ messages in thread
From: Duncaen @ 2021-11-28 14:02 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 421 bytes --]
There's a merged pull request on the void-packages repository
firefox-esr: update to 91.3.0.
https://github.com/void-linux/void-packages/pull/34167
Description:
Testing the changes:
- I tested the changes in this PR: briefly
Local build testing:
- I built this PR locally for my native architecture, x86_64-glibc
Note:
I use the Patches from Thunderbird and sync the template with Firefox.
[skip CI]
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2021-11-28 14:02 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-20 14:23 [PR PATCH] firefox-esr: update to 91.3.0 jdnuemm
2021-11-20 15:05 ` [PR REVIEW] " abenson
2021-11-20 15:06 ` abenson
2021-11-21 9:58 ` [PR PATCH] [Updated] " jdnuemm
2021-11-21 10:01 ` [PR REVIEW] " jdnuemm
2021-11-21 10:09 ` jdnuemm
2021-11-26 14:26 ` Duncaen
2021-11-26 14:27 ` Duncaen
2021-11-28 9:06 ` jdnuemm
2021-11-28 14:01 ` Duncaen
2021-11-28 14:02 ` [PR PATCH] [Merged]: " Duncaen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).