Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package MozillaFirefox for openSUSE:Factory checked in at 2022-03-13 20:24:17 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/MozillaFirefox (Old) and /work/SRC/openSUSE:Factory/.MozillaFirefox.new.25692 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "MozillaFirefox" Sun Mar 13 20:24:17 2022 rev:361 rq:960656 version:98.0 Changes: -------- --- /work/SRC/openSUSE:Factory/MozillaFirefox/MozillaFirefox.changes 2022-02-21 17:46:18.819588912 +0100 +++ /work/SRC/openSUSE:Factory/.MozillaFirefox.new.25692/MozillaFirefox.changes 2022-03-13 20:24:18.559594833 +0100 @@ -1,0 +2,27 @@ +Tue Mar 8 10:27:16 UTC 2022 - Wolfgang Rosenauer <w...@rosenauer.org> + +- Mozilla Firefox 98.0 + * Firefox has a new optimized download flow + * other changes as documented here + https://www.mozilla.org/en-US/firefox/98.0/releasenotes + MFSA 2022-10 (bsc#1196900) + * CVE-2022-26383 (bmo#1742421) + Browser window spoof using fullscreen mode + * CVE-2022-26384 (bmo#1744352) + iframe allow-scripts sandbox bypass + * CVE-2022-26387 (bmo#1752979) + Time-of-check time-of-use bug when verifying add-on signatures + * CVE-2022-26381 (bmo#1736243) + Use-after-free in text reflows + * CVE-2022-26382 (bmo#1741888) + Autofill Text could be exfiltrated via side-channel attacks + * CVE-2022-26385 (bmo#1747526) + Use-after-free in thread shutdown + * CVE-2022-0843 (bmo#1746523, bmo#1749062, bmo#1749164, bmo#1749214, + bmo#1749610, bmo#1750032, bmo#1752100, bmo#1752405, bmo#1753612, + bmo#1754508) + Memory safety bugs fixed in Firefox 98 +- requires NSS 3.75 +- add mozilla-bmo1756347.patch to fix i586 build + +------------------------------------------------------------------- @@ -14,0 +42,11 @@ + +------------------------------------------------------------------- +Mon Feb 14 19:31:29 UTC 2022 - Luciano Santos <luc1...@opensuse.org> + +- Remove bashisms ("source" and "function" keywords) from + mozilla.sh.in to ally with the #!/bin/sh shebang. If the end user + has either dash-sh package or busybox-sh to handle Bourn Shell + scripts rather than having bash-sh package, the script would + fail. Using "." instead of "source" and "create_langpack_link()" + function definition is enough to keep both sides sane, + behavior-wise. Old: ---- firefox-97.0.1.source.tar.xz firefox-97.0.1.source.tar.xz.asc l10n-97.0.1.tar.xz New: ---- firefox-98.0.source.tar.xz firefox-98.0.source.tar.xz.asc l10n-98.0.tar.xz mozilla-bmo1756347.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ MozillaFirefox.spec ++++++ --- /var/tmp/diff_new_pack.laI5DQ/_old 2022-03-13 20:24:30.923609347 +0100 +++ /var/tmp/diff_new_pack.laI5DQ/_new 2022-03-13 20:24:30.939609365 +0100 @@ -28,9 +28,9 @@ # orig_suffix b3 # major 69 # mainver %major.99 -%define major 97 -%define mainver %major.0.1 -%define orig_version 97.0.1 +%define major 98 +%define mainver %major.0 +%define orig_version 98.0 %define orig_suffix %{nil} %define update_channel release %define branding 1 @@ -114,7 +114,7 @@ BuildRequires: libproxy-devel BuildRequires: makeinfo BuildRequires: mozilla-nspr-devel >= 4.33 -BuildRequires: mozilla-nss-devel >= 3.74 +BuildRequires: mozilla-nss-devel >= 3.75 BuildRequires: nasm >= 2.14 BuildRequires: nodejs >= 10.22.1 %if 0%{?sle_version} >= 120000 && 0%{?sle_version} < 150000 @@ -219,6 +219,7 @@ Patch21: mozilla-libavcodec58_91.patch Patch22: mozilla-silence-no-return-type.patch Patch23: mozilla-bmo531915.patch +Patch24: mozilla-bmo1756347.patch # Firefox/browser Patch101: firefox-kde.patch Patch102: firefox-branded-icons.patch @@ -685,12 +686,6 @@ %fdupes %{buildroot}%{progdir} %fdupes %{buildroot}%{_datadir} -%clean -rm -rf %{buildroot} -%if %localize -rm -rf %{_tmppath}/translations.* -%endif - %post # update mime and desktop database %mime_database_post ++++++ firefox-97.0.1.source.tar.xz -> firefox-98.0.source.tar.xz ++++++ /work/SRC/openSUSE:Factory/MozillaFirefox/firefox-97.0.1.source.tar.xz /work/SRC/openSUSE:Factory/.MozillaFirefox.new.25692/firefox-98.0.source.tar.xz differ: char 15, line 1 ++++++ l10n-97.0.1.tar.xz -> l10n-98.0.tar.xz ++++++ /work/SRC/openSUSE:Factory/MozillaFirefox/l10n-97.0.1.tar.xz /work/SRC/openSUSE:Factory/.MozillaFirefox.new.25692/l10n-98.0.tar.xz differ: char 26, line 1 ++++++ mozilla-bmo1756347.patch ++++++ # HG changeset patch # User Wolfgang Rosenauer <w...@rosenauer.org> # Parent f805a250257be9c3ea570b34557150450e16dfec diff --git a/js/src/jit/GenerateAtomicOperations.py b/js/src/jit/GenerateAtomicOperations.py --- a/js/src/jit/GenerateAtomicOperations.py +++ b/js/src/jit/GenerateAtomicOperations.py @@ -5,40 +5,41 @@ # This script generates jit/AtomicOperationsGenerated.h # # See the big comment in jit/AtomicOperations.h for an explanation. import buildconfig is_64bit = "JS_64BIT" in buildconfig.defines cpu_arch = buildconfig.substs["CPU_ARCH"] +is_gcc = buildconfig.substs["CC_TYPE"] == "gcc" def fmt_insn(s): return '"' + s + '\\n\\t"\n' def gen_seqcst(fun_name): if cpu_arch in ("x86", "x86_64"): return r""" - inline void %(fun_name)s() { + INLINE_ATTR void %(fun_name)s() { asm volatile ("mfence\n\t" ::: "memory"); }""" % { "fun_name": fun_name, } if cpu_arch == "aarch64": return r""" - inline void %(fun_name)s() { + INLINE_ATTR void %(fun_name)s() { asm volatile ("dmb ish\n\t" ::: "memory"); }""" % { "fun_name": fun_name, } if cpu_arch == "arm": return r""" - inline void %(fun_name)s() { + INLINE_ATTR void %(fun_name)s() { asm volatile ("dmb sy\n\t" ::: "memory"); }""" % { "fun_name": fun_name, } raise Exception("Unexpected arch") def gen_load(fun_name, cpp_type, size, barrier): @@ -58,17 +59,17 @@ def gen_load(fun_name, cpp_type, size, b elif size == 32: insns += fmt_insn("movl (%[arg]), %[res]") else: assert size == 64 insns += fmt_insn("movq (%[arg]), %[res]") if barrier: insns += fmt_insn("mfence") return """ - inline %(cpp_type)s %(fun_name)s(const %(cpp_type)s* arg) { + INLINE_ATTR %(cpp_type)s %(fun_name)s(const %(cpp_type)s* arg) { %(cpp_type)s res; asm volatile (%(insns)s : [res] "=r" (res) : [arg] "r" (arg) : "memory"); return res; }""" % { "cpp_type": cpp_type, @@ -86,17 +87,17 @@ def gen_load(fun_name, cpp_type, size, b elif size == 32: insns += fmt_insn("ldr %w[res], [%x[arg]]") else: assert size == 64 insns += fmt_insn("ldr %x[res], [%x[arg]]") if barrier: insns += fmt_insn("dmb ish") return """ - inline %(cpp_type)s %(fun_name)s(const %(cpp_type)s* arg) { + INLINE_ATTR %(cpp_type)s %(fun_name)s(const %(cpp_type)s* arg) { %(cpp_type)s res; asm volatile (%(insns)s : [res] "=r" (res) : [arg] "r" (arg) : "memory"); return res; }""" % { "cpp_type": cpp_type, @@ -112,17 +113,17 @@ def gen_load(fun_name, cpp_type, size, b elif size == 16: insns += fmt_insn("ldrh %[res], [%[arg]]") else: assert size == 32 insns += fmt_insn("ldr %[res], [%[arg]]") if barrier: insns += fmt_insn("dmb sy") return """ - inline %(cpp_type)s %(fun_name)s(const %(cpp_type)s* arg) { + INLINE_ATTR %(cpp_type)s %(fun_name)s(const %(cpp_type)s* arg) { %(cpp_type)s res; asm volatile (%(insns)s : [res] "=r" (res) : [arg] "r" (arg) : "memory"); return res; }""" % { "cpp_type": cpp_type, @@ -149,17 +150,17 @@ def gen_store(fun_name, cpp_type, size, elif size == 32: insns += fmt_insn("movl %[val], (%[addr])") else: assert size == 64 insns += fmt_insn("movq %[val], (%[addr])") if barrier: insns += fmt_insn("mfence") return """ - inline void %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { + INLINE_ATTR void %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { asm volatile (%(insns)s : : [addr] "r" (addr), [val] "r"(val) : "memory"); }""" % { "cpp_type": cpp_type, "fun_name": fun_name, "insns": insns, @@ -175,17 +176,17 @@ def gen_store(fun_name, cpp_type, size, elif size == 32: insns += fmt_insn("str %w[val], [%x[addr]]") else: assert size == 64 insns += fmt_insn("str %x[val], [%x[addr]]") if barrier: insns += fmt_insn("dmb ish") return """ - inline void %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { + INLINE_ATTR void %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { asm volatile (%(insns)s : : [addr] "r" (addr), [val] "r"(val) : "memory"); }""" % { "cpp_type": cpp_type, "fun_name": fun_name, "insns": insns, @@ -199,17 +200,17 @@ def gen_store(fun_name, cpp_type, size, elif size == 16: insns += fmt_insn("strh %[val], [%[addr]]") else: assert size == 32 insns += fmt_insn("str %[val], [%[addr]]") if barrier: insns += fmt_insn("dmb sy") return """ - inline void %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { + INLINE_ATTR void %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { asm volatile (%(insns)s : : [addr] "r" (addr), [val] "r"(val) : "memory"); }""" % { "cpp_type": cpp_type, "fun_name": fun_name, "insns": insns, @@ -230,17 +231,17 @@ def gen_exchange(fun_name, cpp_type, siz elif size == 16: insns += fmt_insn("xchgw %[val], (%[addr])") elif size == 32: insns += fmt_insn("xchgl %[val], (%[addr])") else: assert size == 64 insns += fmt_insn("xchgq %[val], (%[addr])") return """ - inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { + INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { asm volatile (%(insns)s : [val] "+r" (val) : [addr] "r" (addr) : "memory"); return val; }""" % { "cpp_type": cpp_type, "fun_name": fun_name, @@ -261,17 +262,17 @@ def gen_exchange(fun_name, cpp_type, siz insns += fmt_insn("stxr %w[scratch], %w[val], [%x[addr]]") else: assert size == 64 insns += fmt_insn("ldxr %x[res], [%x[addr]]") insns += fmt_insn("stxr %w[scratch], %x[val], [%x[addr]]") insns += fmt_insn("cbnz %w[scratch], 0b") insns += fmt_insn("dmb ish") return """ - inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { + INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { %(cpp_type)s res; uint32_t scratch; asm volatile (%(insns)s : [res] "=&r"(res), [scratch] "=&r"(scratch) : [addr] "r" (addr), [val] "r"(val) : "memory", "cc"); return res; }""" % { @@ -292,17 +293,17 @@ def gen_exchange(fun_name, cpp_type, siz else: assert size == 32 insns += fmt_insn("ldrex %[res], [%[addr]]") insns += fmt_insn("strex %[scratch], %[val], [%[addr]]") insns += fmt_insn("cmp %[scratch], #1") insns += fmt_insn("beq 0b") insns += fmt_insn("dmb sy") return """ - inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { + INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { %(cpp_type)s res; uint32_t scratch; asm volatile (%(insns)s : [res] "=&r"(res), [scratch] "=&r"(scratch) : [addr] "r" (addr), [val] "r"(val) : "memory", "cc"); return res; }""" % { @@ -316,33 +317,33 @@ def gen_exchange(fun_name, cpp_type, siz def gen_cmpxchg(fun_name, cpp_type, size): # NOTE: the assembly code must match the generated code in: # - MacroAssembler::compareExchange # - MacroAssembler::compareExchange64 if cpu_arch == "x86" and size == 64: # Use a +A constraint to load `oldval` into EDX:EAX as input/output. # `newval` is loaded into ECX:EBX. return r""" - inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, + INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s oldval, %(cpp_type)s newval) { asm volatile ("lock; cmpxchg8b (%%[addr])\n\t" : "+A" (oldval) : [addr] "r" (addr), "b" (uint32_t(newval & 0xffff'ffff)), "c" (uint32_t(newval >> 32)) : "memory", "cc"); return oldval; }""" % { "cpp_type": cpp_type, "fun_name": fun_name, } if cpu_arch == "arm" and size == 64: return r""" - inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, + INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s oldval, %(cpp_type)s newval) { uint32_t oldval0 = oldval & 0xffff'ffff; uint32_t oldval1 = oldval >> 32; uint32_t newval0 = newval & 0xffff'ffff; uint32_t newval1 = newval >> 32; asm volatile ( "dmb sy\n\t" @@ -375,17 +376,17 @@ def gen_cmpxchg(fun_name, cpp_type, size elif size == 16: insns += fmt_insn("lock; cmpxchgw %[newval], (%[addr])") elif size == 32: insns += fmt_insn("lock; cmpxchgl %[newval], (%[addr])") else: assert size == 64 insns += fmt_insn("lock; cmpxchgq %[newval], (%[addr])") return """ - inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, + INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s oldval, %(cpp_type)s newval) { asm volatile (%(insns)s : [oldval] "+a" (oldval) : [addr] "r" (addr), [newval] "r" (newval) : "memory", "cc"); return oldval; }""" % { @@ -420,17 +421,17 @@ def gen_cmpxchg(fun_name, cpp_type, size insns += fmt_insn("mov %x[scratch], %x[oldval]") insns += fmt_insn("ldxr %x[res], [%x[addr]]") insns += fmt_insn("cmp %x[res], %x[scratch]") insns += fmt_insn("b.ne 1f") insns += fmt_insn("stxr %w[scratch], %x[newval], [%x[addr]]") insns += fmt_insn("cbnz %w[scratch], 0b") insns += fmt_insn("1: dmb ish") return """ - inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, + INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s oldval, %(cpp_type)s newval) { %(cpp_type)s res, scratch; asm volatile (%(insns)s : [res] "=&r" (res), [scratch] "=&r" (scratch) : [addr] "r" (addr), [oldval] "r"(oldval), [newval] "r" (newval) : "memory", "cc"); return res; @@ -461,17 +462,17 @@ def gen_cmpxchg(fun_name, cpp_type, size insns += fmt_insn("ldrex %[res], [%[addr]]") insns += fmt_insn("cmp %[res], %[scratch]") insns += fmt_insn("bne 1f") insns += fmt_insn("strex %[scratch], %[newval], [%[addr]]") insns += fmt_insn("cmp %[scratch], #1") insns += fmt_insn("beq 0b") insns += fmt_insn("1: dmb sy") return """ - inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, + INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s oldval, %(cpp_type)s newval) { %(cpp_type)s res, scratch; asm volatile (%(insns)s : [res] "=&r" (res), [scratch] "=&r" (scratch) : [addr] "r" (addr), [oldval] "r"(oldval), [newval] "r" (newval) : "memory", "cc"); return res; @@ -496,17 +497,17 @@ def gen_fetchop(fun_name, cpp_type, size elif size == 16: insns += fmt_insn("lock; xaddw %[val], (%[addr])") elif size == 32: insns += fmt_insn("lock; xaddl %[val], (%[addr])") else: assert size == 64 insns += fmt_insn("lock; xaddq %[val], (%[addr])") return """ - inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { + INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { asm volatile (%(insns)s : [val] "+&r" (val) : [addr] "r" (addr) : "memory", "cc"); return val; }""" % { "cpp_type": cpp_type, "fun_name": fun_name, @@ -534,17 +535,17 @@ def gen_fetchop(fun_name, cpp_type, size assert size == 64 insns += fmt_insn("movq (%[addr]), %[res]") insns += fmt_insn("0: movq %[res], %[scratch]") insns += fmt_insn("OPq %[val], %[scratch]") insns += fmt_insn("lock; cmpxchgq %[scratch], (%[addr])") insns = insns.replace("OP", op) insns += fmt_insn("jnz 0b") return """ - inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { + INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { %(cpp_type)s res, scratch; asm volatile (%(insns)s : [res] "=&a" (res), [scratch] "=&r" (scratch) : [addr] "r" (addr), [val] "r"(val) : "memory", "cc"); return res; }""" % { "cpp_type": cpp_type, @@ -576,17 +577,17 @@ def gen_fetchop(fun_name, cpp_type, size if cpu_op == "or": cpu_op = "orr" if cpu_op == "xor": cpu_op = "eor" insns = insns.replace("OP", cpu_op) insns += fmt_insn("cbnz %w[scratch2], 0b") insns += fmt_insn("dmb ish") return """ - inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { + INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { %(cpp_type)s res; uintptr_t scratch1, scratch2; asm volatile (%(insns)s : [res] "=&r" (res), [scratch1] "=&r" (scratch1), [scratch2] "=&r"(scratch2) : [addr] "r" (addr), [val] "r"(val) : "memory", "cc"); return res; }""" % { @@ -616,17 +617,17 @@ def gen_fetchop(fun_name, cpp_type, size cpu_op = "orr" if cpu_op == "xor": cpu_op = "eor" insns = insns.replace("OP", cpu_op) insns += fmt_insn("cmp %[scratch2], #1") insns += fmt_insn("beq 0b") insns += fmt_insn("dmb sy") return """ - inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { + INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) { %(cpp_type)s res; uintptr_t scratch1, scratch2; asm volatile (%(insns)s : [res] "=&r" (res), [scratch1] "=&r" (scratch1), [scratch2] "=&r"(scratch2) : [addr] "r" (addr), [val] "r"(val) : "memory", "cc"); return res; }""" % { @@ -660,33 +661,33 @@ def gen_copy(fun_name, cpp_type, size, u insns += fmt_insn("ldrb %w[scratch], [%x[src], OFFSET]") insns += fmt_insn("strb %w[scratch], [%x[dst], OFFSET]") else: assert size == 8 insns += fmt_insn("ldr %x[scratch], [%x[src], OFFSET]") insns += fmt_insn("str %x[scratch], [%x[dst], OFFSET]") elif cpu_arch == "arm": if size == 1: - insns += fmt_insn("ldrb %[scratch], [%[src], OFFSET]") - insns += fmt_insn("strb %[scratch], [%[dst], OFFSET]") + insns += fmt_insn("ldrb %[scratch], [%[src], #OFFSET]") + insns += fmt_insn("strb %[scratch], [%[dst], #OFFSET]") else: assert size == 4 - insns += fmt_insn("ldr %[scratch], [%[src], OFFSET]") - insns += fmt_insn("str %[scratch], [%[dst], OFFSET]") + insns += fmt_insn("ldr %[scratch], [%[src], #OFFSET]") + insns += fmt_insn("str %[scratch], [%[dst], #OFFSET]") else: raise Exception("Unexpected arch") insns = insns.replace("OFFSET", str(offset * size)) if direction == "down": offset += 1 else: offset -= 1 return """ - inline void %(fun_name)s(uint8_t* dst, const uint8_t* src) { + INLINE_ATTR void %(fun_name)s(uint8_t* dst, const uint8_t* src) { %(cpp_type)s* dst_ = reinterpret_cast<%(cpp_type)s*>(dst); const %(cpp_type)s* src_ = reinterpret_cast<const %(cpp_type)s*>(src); %(cpp_type)s scratch; asm volatile (%(insns)s : [scratch] "=&r" (scratch) : [dst] "r" (dst_), [src] "r"(src_) : "memory"); }""" % { @@ -848,14 +849,21 @@ def generate_atomics_header(c_out): "constexpr size_t JS_GENERATED_ATOMICS_BLOCKSIZE = " + str(blocksize) + ";\n" ) contents += ( "constexpr size_t JS_GENERATED_ATOMICS_WORDSIZE = " + str(wordsize) + ";\n" ) + # Work around a GCC issue on 32-bit x86 by adding MOZ_NEVER_INLINE. + # See bug 1756347. + if is_gcc and cpu_arch == "x86": + contents = contents.replace("INLINE_ATTR", "MOZ_NEVER_INLINE inline") + else: + contents = contents.replace("INLINE_ATTR", "inline") + c_out.write( HEADER_TEMPLATE % { "contents": contents, } ) ++++++ mozilla-silence-no-return-type.patch ++++++ --- /var/tmp/diff_new_pack.laI5DQ/_old 2022-03-13 20:24:31.299609790 +0100 +++ /var/tmp/diff_new_pack.laI5DQ/_new 2022-03-13 20:24:31.303609794 +0100 @@ -1,10 +1,10 @@ # HG changeset patch -# Parent 216843712d6d6cd9d5bd519f6ef564d00406b43f +# Parent 1191efd2ea64c4081a1825176a50e872a525d4da diff --git a/Cargo.lock b/Cargo.lock --- a/Cargo.lock +++ b/Cargo.lock -@@ -2165,18 +2165,16 @@ name = "glsl-to-cxx" +@@ -2196,18 +2196,16 @@ name = "glsl-to-cxx" version = "0.1.0" dependencies = [ "glsl", @@ -26,8 +26,8 @@ diff --git a/Cargo.toml b/Cargo.toml --- a/Cargo.toml +++ b/Cargo.toml -@@ -102,13 +102,13 @@ moz_asserts = { path = "mozglue/static/r - # Other overrides +@@ -106,13 +106,13 @@ moz_asserts = { path = "mozglue/static/r + async-task = { git = "https://github.com/smol-rs/async-task", rev="f6488e35beccb26eb6e85847b02aa78a42cd3d0e" } chardetng = { git = "https://github.com/hsivonen/chardetng", rev="3484d3e3ebdc8931493aa5df4d7ee9360a90e76b" } chardetng_c = { git = "https://github.com/hsivonen/chardetng_c", rev="ed8a4c6f900a90d4dbc1d64b856e61490a1c3570" } coremidi = { git = "https://github.com/chris-zen/coremidi.git", rev="fc68464b5445caf111e41f643a2e69ccce0b4f83" } ++++++ mozilla.sh.in ++++++ --- /var/tmp/diff_new_pack.laI5DQ/_old 2022-03-13 20:24:31.339609836 +0100 +++ /var/tmp/diff_new_pack.laI5DQ/_new 2022-03-13 20:24:31.343609841 +0100 @@ -100,7 +100,7 @@ fi # xinput2 (boo#1173320) -source /etc/os-release +. /etc/os-release if [ "$ID" = "opensuse-tumbleweed" ]; then export MOZ_USE_XINPUT2=1 fi @@ -151,7 +151,7 @@ # Try with a local variant first, then without a local variant SHORTMOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*||g" | sed "s|\..*||g"` MOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*|-\1|g" | sed "s|\..*||g"` - function create_langpack_link() { + create_langpack_link() { local language=$* local langpack=langpack-${language}@firefox.mozilla.org.xpi if [ -f $MOZ_LANGPACKS_DIR/$langpack ]; then ++++++ tar_stamps ++++++ --- /var/tmp/diff_new_pack.laI5DQ/_old 2022-03-13 20:24:31.379609883 +0100 +++ /var/tmp/diff_new_pack.laI5DQ/_new 2022-03-13 20:24:31.383609888 +0100 @@ -1,11 +1,11 @@ PRODUCT="firefox" CHANNEL="release" -VERSION="97.0.1" +VERSION="98.0" VERSION_SUFFIX="" -PREV_VERSION="97.0" +PREV_VERSION="97.0.1" PREV_VERSION_SUFFIX="" #SKIP_LOCALES="" # Uncomment to skip l10n and compare-locales-generation RELEASE_REPO="https://hg.mozilla.org/releases/mozilla-release" -RELEASE_TAG="0f0ba6e8029d8148743c4aa50c2be4c4c643f8a4" -RELEASE_TIMESTAMP="20220216172458" +RELEASE_TAG="829802cfd689497a5e8fd978bbb3099245bd131c" +RELEASE_TIMESTAMP="20220304153049"