summaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
authorIan Eure <ian@retrospec.tv>2026-04-21 15:52:23 -0700
committerIan Eure <ian@retrospec.tv>2026-04-25 09:50:42 -0700
commite5e2aaaf558033f46eabe3717add9fb6a79042a8 (patch)
tree5929338ed3640a76a3d1281f6a6664c1196f2c0b /gnu/packages
parent5d73106227e29ce4dcd518dda23bf5cb07874326 (diff)
gnu: librewolf: Update to 150.0-1. [security-updates]
Contains fixes for: CVE-2026-6746: Use-after-free in the DOM: Core & HTML component CVE-2026-6747: Use-after-free in the WebRTC component CVE-2026-6748: Uninitialized memory in the Audio/Video: Web Codecs component CVE-2026-6749: Information disclosure due to uninitialized memory in the Graphics: Canvas2D component CVE-2026-6750: Privilege escalation in the Graphics: WebRender component CVE-2026-6751: Uninitialized memory in the Audio/Video: Web Codecs component CVE-2026-6752: Incorrect boundary conditions in the WebRTC component CVE-2026-6753: Incorrect boundary conditions in the WebRTC component CVE-2026-6754: Use-after-free in the JavaScript Engine component CVE-2026-6755: Mitigation bypass in the DOM: postMessage component CVE-2026-6756: Mitigation bypass in Firefox for Android CVE-2026-6757: Invalid pointer in the JavaScript: WebAssembly component CVE-2026-6758: Use-after-free in the JavaScript: WebAssembly component CVE-2026-6759: Use-after-free in the Widget: Cocoa component CVE-2026-6760: Mitigation bypass in the Networking: Cookies component CVE-2026-6761: Privilege escalation in the Networking component CVE-2026-6762: Spoofing issue in the DOM: Core & HTML component CVE-2026-6763: Mitigation bypass in the File Handling component CVE-2026-6764: Incorrect boundary conditions in the DOM: Device Interfaces component CVE-2026-6765: Information disclosure in the Form Autofill component CVE-2026-6766: Incorrect boundary conditions in the Libraries component in NSS CVE-2026-6767: Other issue in the Libraries component in NSS CVE-2026-6768: Mitigation bypass in the Networking: Cookies component CVE-2026-6769: Privilege escalation in the Debugger component CVE-2026-6770: Other issue in the Storage: IndexedDB component CVE-2026-6771: Mitigation bypass in the DOM: Security component CVE-2026-6772: Incorrect boundary conditions in the Libraries component in NSS CVE-2026-6773: Denial-of-service due to integer overflow in the Graphics: WebGPU component CVE-2026-6774: Mitigation bypass in the DOM: Security component CVE-2026-6775: Incorrect boundary conditions in the WebRTC component CVE-2026-6776: Incorrect boundary conditions in the WebRTC: Networking component CVE-2026-6777: Other issue in the Networking: DNS component CVE-2026-6778: Invalid pointer in the Audio/Video: Playback component CVE-2026-6779: Other issue in the JavaScript Engine component CVE-2026-6780: Denial-of-service in the Audio/Video: Playback component CVE-2026-6781: Denial-of-service in the Audio/Video: Playback component CVE-2026-6782: Information disclosure in the IP Protection component CVE-2026-6783: Incorrect boundary conditions, integer overflow in the Audio/Video: Playback component CVE-2026-6784: Memory safety bugs fixed in Firefox 150 and Thunderbird 150 CVE-2026-6785: Memory safety bugs fixed in Firefox ESR 115.35, Firefox ESR 140.10, Thunderbird ESR 140.10, Firefox 150 and Thunderbird 150 CVE-2026-6786: Memory safety bugs fixed in Firefox ESR 140.10, Thunderbird ESR 140.10, Firefox 150 and Thunderbird 150 * gnu/packages/patches/librewolf-150.0-encoding_rs-rust-fix.patch: New file. * gnu/local.mk: Add new patch to dist_patch_DATA. * gnu/packages/librewolf.scm (make-librewolf-source): Apply new patch. * gnu/packages/librewolf.scm (librewolf): Update to 150.0-1. [arguments #:phases use-mozzarella]: Update Mozzarella URLs. Fixes #1923. Change-Id: I7696abc0ac44d689190d9ef1e12704905c11d431
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/librewolf.scm27
-rw-r--r--gnu/packages/patches/librewolf-150.0-encoding_rs-rust-fix.patch260
2 files changed, 274 insertions, 13 deletions
diff --git a/gnu/packages/librewolf.scm b/gnu/packages/librewolf.scm
index b8b0ae3223d..e3bd013133c 100644
--- a/gnu/packages/librewolf.scm
+++ b/gnu/packages/librewolf.scm
@@ -125,14 +125,14 @@
125 ;; ex: 125 ;; ex:
126 ;; tar xf /gnu/store/...-firefox-123.4.source.tar.xz -O \ 126 ;; tar xf /gnu/store/...-firefox-123.4.source.tar.xz -O \
127 ;; firefox-123.4/browser/locales/l10n-changesets.json | grep revision 127 ;; firefox-123.4/browser/locales/l10n-changesets.json | grep revision
128 (let ((commit "0245ffb160688061f0e0c67ea488bcdfdacbeca4")) 128 (let ((commit "fefe280d909d0eee8d60edd2a6db7d969df56c5b"))
129 (origin 129 (origin
130 (method git-fetch) 130 (method git-fetch)
131 (uri (git-reference 131 (uri (git-reference
132 (url "https://github.com/mozilla-l10n/firefox-l10n.git") 132 (url "https://github.com/mozilla-l10n/firefox-l10n.git")
133 (commit commit))) 133 (commit commit)))
134 (file-name (git-file-name "firefox-l10n" commit)) 134 (file-name (git-file-name "firefox-l10n" commit))
135 (sha256 (base32 "0y8xdxql04yys0wj685v4yp3kmx1ivnndg6z11vam8vszh0j7ak6"))))) 135 (sha256 (base32 "0z1ksvspbn4bbzxdl2w4x7bg36j4rwhaby8g37apg4393frh558i")))))
136 136
137(define* (make-librewolf-source #:key version firefox-hash librewolf-hash l10n) 137(define* (make-librewolf-source #:key version firefox-hash librewolf-hash l10n)
138 (let* ((ff-src (firefox-source-origin 138 (let* ((ff-src (firefox-source-origin
@@ -205,7 +205,8 @@
205 (search-patches 205 (search-patches
206 "librewolf-compare-paths.patch" 206 "librewolf-compare-paths.patch"
207 "librewolf-use-system-wide-dir.patch" 207 "librewolf-use-system-wide-dir.patch"
208 "librewolf-add-store-to-rdd-allowlist.patch")) 208 "librewolf-add-store-to-rdd-allowlist.patch"
209 "librewolf-150.0-encoding_rs-rust-fix.patch"))
209 ;; Slim down the tarball by removing unbundled libraries and 75 Mo (800+ 210 ;; Slim down the tarball by removing unbundled libraries and 75 Mo (800+
210 ;; Mo uncompressed) of unused tests. 211 ;; Mo uncompressed) of unused tests.
211 ;; TODO: Unbundle security/nss and media/libpng. 212 ;; TODO: Unbundle security/nss and media/libpng.
@@ -244,17 +245,17 @@
244;; It's used for cache validation and therefore can lead to strange bugs. 245;; It's used for cache validation and therefore can lead to strange bugs.
245;; ex: date '+%Y%m%d%H%M%S' 246;; ex: date '+%Y%m%d%H%M%S'
246;; or: (format-time-string "%Y%m%d%H%M%S") 247;; or: (format-time-string "%Y%m%d%H%M%S")
247(define %librewolf-build-id "20260409162101") 248(define %librewolf-build-id "20260421153818")
248 249
249(define-public librewolf 250(define-public librewolf
250 (package 251 (package
251 (name "librewolf") 252 (name "librewolf")
252 (version "149.0.2-2") 253 (version "150.0-1")
253 (source 254 (source
254 (make-librewolf-source 255 (make-librewolf-source
255 #:version version 256 #:version version
256 #:firefox-hash "1kkhg3lgyakinn5ankxrlxbf39wi61mqbhwrj1l4q5l7y0n1m4va" 257 #:firefox-hash "151rxzl80dm8jsxl6fwzgbirwq4zpms5adwwnbjcwdd1r3s3vr7v"
257 #:librewolf-hash "1bai8g2kc9snck2f724al29q6r57vkj3d7v58rf0mgzpqzvwnw5f" 258 #:librewolf-hash "0iw9v3zc1fxc93yyhldqarxaypgmbndh2ylsy330kcbpb6p1gnmr"
258 #:l10n firefox-l10n)) 259 #:l10n firefox-l10n))
259 (build-system gnu-build-system) 260 (build-system gnu-build-system)
260 (arguments 261 (arguments
@@ -352,18 +353,18 @@
352 (cdr pref))) 353 (cdr pref)))
353 `(("extensions.getAddons.search.browseURL" 354 `(("extensions.getAddons.search.browseURL"
354 ,(string-append 355 ,(string-append
355 "https://gnuzilla.gnu.org/mozzarella/" 356 "https://gnuzilla.gnu.org/"
356 "search.php?q=%TERMS%")) 357 "search.php?q=%TERMS%"))
357 ("extensions.getAddons.get.url" . 358 ("extensions.getAddons.get.url" .
358 "https://gnuzilla.gnu.org/mozzarella") 359 "https://gnuzilla.gnu.org")
359 ("extensions.getAddons.link.url" . 360 ("extensions.getAddons.link.url" .
360 "https://gnuzilla.gnu.org/mozzarella") 361 "https://gnuzilla.gnu.org")
361 ("extensions.getAddons.discovery.api_url" . 362 ("extensions.getAddons.discovery.api_url" .
362 "https://gnuzilla.gnu.org/mozzarella") 363 "https://gnuzilla.gnu.org")
363 ("extensions.getAddons.langpacks.url" . 364 ("extensions.getAddons.langpacks.url" .
364 "https://gnuzilla.gnu.org/mozzarella") 365 "https://gnuzilla.gnu.org")
365 ("lightweightThemes.getMoreURL" . 366 ("lightweightThemes.getMoreURL" .
366 "https://gnuzilla.gnu.org/mozzarella"))))))) 367 "https://gnuzilla.gnu.org")))))))
367 (add-after 'patch-source-shebangs 'patch-cargo-checksums 368 (add-after 'patch-source-shebangs 'patch-cargo-checksums
368 (lambda _ 369 (lambda _
369 (use-modules (guix build cargo-utils)) 370 (use-modules (guix build cargo-utils))
diff --git a/gnu/packages/patches/librewolf-150.0-encoding_rs-rust-fix.patch b/gnu/packages/patches/librewolf-150.0-encoding_rs-rust-fix.patch
new file mode 100644
index 00000000000..51ec6b07409
--- /dev/null
+++ b/gnu/packages/patches/librewolf-150.0-encoding_rs-rust-fix.patch
@@ -0,0 +1,260 @@
1From d8702527f4f1f67f765330f5018bfcb182946c45 Mon Sep 17 00:00:00 2001
2From: Henri Sivonen <hsivonen@hsivonen.fi>
3Date: Tue, 21 Apr 2026 07:09:20 +0000
4Subject: [PATCH] Bug 2033279 - Make --enable-rust-simd work with Rust 1.95.
5 r=firefox-build-system-reviewers,supply-chain-reviewers,ahochheiden
6
7Differential Revision: https://phabricator.services.mozilla.com/D295287
8---
9 .cargo/config.toml.in | 5 ++
10 Cargo.lock | 4 +-
11 Cargo.toml | 2 +
12 supply-chain/audits.toml | 6 ++
13 supply-chain/config.toml | 4 ++
14 .../rust/encoding_rs/.cargo-checksum.json | 2 +-
15 .../rust/encoding_rs/.cargo_vcs_info.json | 6 --
16 third_party/rust/encoding_rs/Cargo.toml | 60 ++++++++++---------
17 third_party/rust/encoding_rs/Cargo.toml.orig | 45 --------------
18 .../rust/encoding_rs/src/x_user_defined.rs | 2 +
19 10 files changed, 54 insertions(+), 82 deletions(-)
20 delete mode 100644 third_party/rust/encoding_rs/.cargo_vcs_info.json
21 delete mode 100644 third_party/rust/encoding_rs/Cargo.toml.orig
22
23diff --git a/.cargo/config.toml.in b/.cargo/config.toml.in
24index 8013ae5435dab..cabdee463415f 100644
25--- a/.cargo/config.toml.in
26+++ b/.cargo/config.toml.in
27@@ -55,6 +55,11 @@ git = "https://github.com/hsivonen/any_all_workaround"
28 rev = "7fb1b7034c9f172aade21ee1c8554e8d8a48af80"
29 replace-with = "vendored-sources"
30
31+[source."git+https://github.com/hsivonen/encoding_rs?rev=1236d1bc423e6ba35a06485f74a6304db2d703b5"]
32+git = "https://github.com/hsivonen/encoding_rs"
33+rev = "1236d1bc423e6ba35a06485f74a6304db2d703b5"
34+replace-with = "vendored-sources"
35+
36 [source."git+https://github.com/hsivonen/rust-harfbuzz?rev=9d58a23a98772a197291d04af93f7041b7093d95"]
37 git = "https://github.com/hsivonen/rust-harfbuzz"
38 rev = "9d58a23a98772a197291d04af93f7041b7093d95"
39diff --git a/Cargo.lock b/Cargo.lock
40index fea2f95fbb438..63b1f818d7971 100644
41--- a/Cargo.lock
42+++ b/Cargo.lock
43@@ -1914,11 +1914,11 @@ dependencies = [
44 [[package]]
45 name = "encoding_rs"
46 version = "0.8.35"
47-source = "registry+https://github.com/rust-lang/crates.io-index"
48-checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3"
49+source = "git+https://github.com/hsivonen/encoding_rs?rev=1236d1bc423e6ba35a06485f74a6304db2d703b5#1236d1bc423e6ba35a06485f74a6304db2d703b5"
50 dependencies = [
51 "any_all_workaround",
52 "cfg-if",
53+ "rustversion",
54 ]
55
56 [[package]]
57diff --git a/Cargo.toml b/Cargo.toml
58index 49c695809f302..2648c32ae57e8 100644
59--- a/Cargo.toml
60+++ b/Cargo.toml
61@@ -287,6 +287,8 @@ harfbuzz-sys = { git = "https://github.com/hsivonen/rust-harfbuzz", rev = "9d58a
62 harfbuzz = { git = "https://github.com/hsivonen/rust-harfbuzz", rev = "9d58a23a98772a197291d04af93f7041b7093d95" }
63 # Also vendor `harfbuzz-traits` to keep cargo-vendor happy.
64 harfbuzz-traits = { git = "https://github.com/hsivonen/rust-harfbuzz", rev = "9d58a23a98772a197291d04af93f7041b7093d95" }
65+# Make --enable-rust-simd compatible with Rust 1.95
66+encoding_rs = { git = "https://github.com/hsivonen/encoding_rs", rev = "1236d1bc423e6ba35a06485f74a6304db2d703b5" }
67
68 # objc 0.2.7 + fa7ca43b862861dd1cd000d7ad01e6e0266cda13
69 objc = { git = "https://github.com/glandium/rust-objc", rev = "4de89f5aa9851ceca4d40e7ac1e2759410c04324" }
70diff --git a/supply-chain/audits.toml b/supply-chain/audits.toml
71index 85b4037e03bdb..f4567ea6b6f94 100644
72--- a/supply-chain/audits.toml
73+++ b/supply-chain/audits.toml
74@@ -2385,6 +2385,12 @@ who = "Mike Hommey <mh+mozilla@glandium.org>"
75 criteria = "safe-to-deploy"
76 delta = "0.8.31 -> 0.8.32"
77
78+[[audits.encoding_rs]]
79+who = "Henri Sivonen <hsivonen@hsivonen.fi>"
80+criteria = "safe-to-deploy"
81+delta = "0.8.35 -> 0.8.35@git:1236d1bc423e6ba35a06485f74a6304db2d703b5"
82+importable = false
83+
84 [[audits.enum-map]]
85 who = "Kershaw Chang <kershaw@mozilla.com>"
86 criteria = "safe-to-deploy"
87diff --git a/supply-chain/config.toml b/supply-chain/config.toml
88index 4cfd83dc2d608..15deefbec0574 100644
89--- a/supply-chain/config.toml
90+++ b/supply-chain/config.toml
91@@ -39,6 +39,10 @@ notes = "This is the upstream code not yet released"
92 audit-as-crates-io = true
93 notes = "This is upstream plus a warning fix from bug 1823866."
94
95+[policy.encoding_rs]
96+audit-as-crates-io = true
97+notes = "This is upstream plus a build fix for bug 2033279."
98+
99 [policy.firefox-on-glean]
100 audit-as-crates-io = false
101 notes = "The crates.io version of this is just a placeholder to allow public crates to depend on firefox-on-glean."
102diff --git a/third_party/rust/encoding_rs/.cargo_vcs_info.json b/third_party/rust/encoding_rs/.cargo_vcs_info.json
103deleted file mode 100644
104index 6e5d699759e43..0000000000000
105--- a/third_party/rust/encoding_rs/.cargo_vcs_info.json
106+++ /dev/null
107@@ -1,6 +0,0 @@
108-{
109- "git": {
110- "sha1": "2fa58aecf537cc76ff52c0eb3d5e9f8fda466844"
111- },
112- "path_in_vcs": ""
113-}
114\ No newline at end of file
115diff --git a/third_party/rust/encoding_rs/Cargo.toml b/third_party/rust/encoding_rs/Cargo.toml
116index 2adac351c2edf..0239315bab180 100644
117--- a/third_party/rust/encoding_rs/Cargo.toml
118+++ b/third_party/rust/encoding_rs/Cargo.toml
119@@ -16,6 +16,7 @@ name = "encoding_rs"
120 version = "0.8.35"
121 authors = ["Henri Sivonen <hsivonen@hsivonen.fi>"]
122 build = false
123+autolib = false
124 autobins = false
125 autoexamples = false
126 autotests = false
127@@ -39,33 +40,6 @@ categories = [
128 license = "(Apache-2.0 OR MIT) AND BSD-3-Clause"
129 repository = "https://github.com/hsivonen/encoding_rs"
130
131-[profile.release]
132-lto = true
133-
134-[lib]
135-name = "encoding_rs"
136-path = "src/lib.rs"
137-
138-[dependencies.any_all_workaround]
139-version = "0.1.0"
140-optional = true
141-
142-[dependencies.cfg-if]
143-version = "1.0"
144-
145-[dependencies.serde]
146-version = "1.0"
147-optional = true
148-
149-[dev-dependencies.bincode]
150-version = "1.0"
151-
152-[dev-dependencies.serde_derive]
153-version = "1.0"
154-
155-[dev-dependencies.serde_json]
156-version = "1.0"
157-
158 [features]
159 alloc = []
160 default = ["alloc"]
161@@ -84,4 +58,34 @@ fast-legacy-encode = [
162 less-slow-big5-hanzi-encode = []
163 less-slow-gb-hanzi-encode = []
164 less-slow-kanji-encode = []
165-simd-accel = ["any_all_workaround"]
166+simd-accel = [
167+ "any_all_workaround",
168+ "rustversion",
169+]
170+
171+[lib]
172+name = "encoding_rs"
173+path = "src/lib.rs"
174+
175+[dependencies]
176+cfg-if = "1.0"
177+
178+[dependencies.any_all_workaround]
179+version = "0.1.0"
180+optional = true
181+
182+[dependencies.rustversion]
183+version = "1.0.19"
184+optional = true
185+
186+[dependencies.serde]
187+version = "1.0"
188+optional = true
189+
190+[dev-dependencies]
191+bincode = "1.0"
192+serde_derive = "1.0"
193+serde_json = "1.0"
194+
195+[profile.release]
196+lto = true
197diff --git a/third_party/rust/encoding_rs/Cargo.toml.orig b/third_party/rust/encoding_rs/Cargo.toml.orig
198deleted file mode 100644
199index 0f7639d5f879b..0000000000000
200--- a/third_party/rust/encoding_rs/Cargo.toml.orig
201+++ /dev/null
202@@ -1,45 +0,0 @@
203-[package]
204-name = "encoding_rs"
205-description = "A Gecko-oriented implementation of the Encoding Standard"
206-version = "0.8.35"
207-edition = '2018'
208-authors = ["Henri Sivonen <hsivonen@hsivonen.fi>"]
209-license = "(Apache-2.0 OR MIT) AND BSD-3-Clause"
210-readme = "README.md"
211-documentation = "https://docs.rs/encoding_rs/"
212-homepage = "https://docs.rs/encoding_rs/"
213-repository = "https://github.com/hsivonen/encoding_rs"
214-keywords = ["encoding", "web", "unicode", "charset"]
215-categories = ["text-processing", "encoding", "web-programming", "internationalization"]
216-rust-version = "1.36"
217-
218-[features]
219-default = ["alloc"]
220-alloc = []
221-simd-accel = ["any_all_workaround"]
222-less-slow-kanji-encode = []
223-less-slow-big5-hanzi-encode = []
224-less-slow-gb-hanzi-encode = []
225-fast-hangul-encode = []
226-fast-hanja-encode = []
227-fast-kanji-encode = []
228-fast-gb-hanzi-encode = []
229-fast-big5-hanzi-encode = []
230-fast-legacy-encode = ["fast-hangul-encode",
231- "fast-hanja-encode",
232- "fast-kanji-encode",
233- "fast-gb-hanzi-encode",
234- "fast-big5-hanzi-encode"]
235-
236-[dependencies]
237-cfg-if = "1.0"
238-serde = { version = "1.0", optional = true }
239-any_all_workaround = { version = "0.1.0" , optional = true }
240-
241-[dev-dependencies]
242-serde_derive = "1.0"
243-bincode = "1.0"
244-serde_json = "1.0"
245-
246-[profile.release]
247-lto = true
248diff --git a/third_party/rust/encoding_rs/src/x_user_defined.rs b/third_party/rust/encoding_rs/src/x_user_defined.rs
249index 7af7d5e3d69da..16f1a18d7f6ce 100644
250--- a/third_party/rust/encoding_rs/src/x_user_defined.rs
251+++ b/third_party/rust/encoding_rs/src/x_user_defined.rs
252@@ -16,7 +16,8 @@ cfg_if! {
253 use simd_funcs::*;
254 use core::simd::u16x8;
255 use core::simd::cmp::SimdPartialOrd;
256+ #[rustversion::since(1.95)]
257 use core::simd::Select;
258
259 #[inline(always)]
260 fn shift_upper(unpacked: u16x8) -> u16x8 {