Update rust triplet hack patch from firefox-esr packaging.
@depends(rustc, when=rust_compiler)
+@imports('sys')
+@imports(_from='__builtin__', _import='repr')
+ @imports(_from='__builtin__', _import='ValueError')
def rust_supported_targets(rustc):
out = check_cmd_output(rustc, '--print', 'target-list').splitlines()
- # The os in the triplets used by rust may match the same OSes, in which
- # case we need to check the raw_os instead.
- per_os = {}
- ambiguous = set()
- per_raw_os = {}
+ #HACK: if there are multiple matches the algorithm uses the last one
+ #put arm-unknown-linux-gnuebihf on the end of the list so it gets preffered
+ out.append('arm-unknown-linux-gnueabihf')
+ data = {}
for t in out:
- traw = t
- t = split_triplet(t, allow_unknown=True)
- endianness = t.endianness
- if t.cpu.startswith('thumb') and endianness not in ('big', 'little'):
- endianness = 'little'
- key = (t.cpu, endianness, t.os)
- if key in per_os:
- previous = per_os[key]
- per_raw_os[(previous.cpu, previous.endianness,
- previous.raw_os)] = previous
- del per_os[key]
- ambiguous.add(key)
- if key in ambiguous:
- raw_os = t.raw_os
- # split_triplet will return a raw_os of 'androideabi' for
- # rust targets in the form cpu-linux-androideabi, but what
- # we get from the build system is linux-androideabi, so
- # normalize.
- if raw_os == 'androideabi':
- raw_os = 'linux-androideabi'
- per_raw_os[(t.cpu, endianness, raw_os)] = t
- else:
- per_os[key] = t
- return namespace(per_os=per_os, per_raw_os=per_raw_os)
+ try:
+ info = split_triplet(t)
+ except ValueError:
+ if t.startswith('thumb'):
+ cpu, rest = t.split('-', 1)
+ retry = '-'.join(('arm', rest))
+ elif t.endswith('-windows-msvc'):
+ retry = t[:-len('windows-msvc')] + 'mingw32'
+ elif t.endswith('-windows-gnu'):
+ retry = t[:-len('windows-gnu')] + 'mingw32'
+ else:
+ continue
+ try:
+ info = split_triplet(retry)
+ except ValueError:
+ continue
+ key = (info.cpu, info.endianness, info.os)
+ data.setdefault(key, []).append(namespace(rust_target=t, target=info))
+ return data
@template
- thunderbird (1:68.8.1-1+rpi1) bullseye-staging; urgency=medium
++thunderbird (1:68.9.0-1+rpi1) bullseye-staging; urgency=medium
+
+ [changes brought over from firefox-esr 60.3.0esr-1+rpi1 by Peter Michael Green <plugwash@raspbian.org> at Wed, 05 Dec 2018 06:56:52 +0000]
+ * Hack broken rust target selection so it produces the right target
+ on raspbian.
+ * Fix clean target.
+
+ [changes introduced in 60.4.0-1+rpi1 by Peter Michael Green]
+ * Further fixes to clean target (still not completely fixed :( ).
+
+ [changes introduced in 1:68.5.0-1~deb10u1+rpi1 by Peter Michael Green]
+ * Disable neon (patches taken from firefox-esr package)
+ * Build in a chroot with arm64 binutils-arm-linux-gnueabihf
+
+ [changes brought forward from 1:68.5.0-1~deb10u1+rpi2 by Peter Michael Green <plugwash@raspbian.org> at Sun, 15 Mar 2020 16:27:21 +0000]
+ * Actually build the binary packages on armhf.
+ * Yet more clean target fixing.
+
- -- Raspbian forward porter <root@raspbian.org> Fri, 29 May 2020 10:20:49 +0000
++ -- Peter Michael Green <plugwash@raspbian.org> Thu, 11 Jun 2020 05:07:05 +0000
++
+ thunderbird (1:68.9.0-1) unstable; urgency=medium
+
+ [ intrigeri ]
+ * [fd13825] AppArmor: update profile from upstream at commit 860d2d9
+ (Closes: #960465)
+
+ [ Carsten Schoenert ]
+ * [c310c40] New upstream version 68.9.0
+ Fixed CVE issues in upstream version 68.9.0 (MFSA 2020-22):
+ CVE-2020-12399: Timing attack on DSA signatures in NSS library
+ CVE-2020-12405: Use-after-free in SharedWorkerService
+ CVE-2020-12406: JavaScript Type confusion with NativeTypes
+ CVE-2020-12410: Memory safety bugs fixed in Thunderbird 68.9.0
+ CVE-2020-12398: Security downgrade with IMAP STARTTLS leads to
+ information leakage
+
+ -- Carsten Schoenert <c.schoenert@t-online.de> Fri, 05 Jun 2020 20:29:35 +0200
thunderbird (1:68.8.1-1) unstable; urgency=medium
--- /dev/null
-
- --- thunderbird-68.3.0.orig/build/moz.configure/rust.configure
- +++ thunderbird-68.3.0/build/moz.configure/rust.configure
- @@ -185,6 +185,8 @@ def rust_compiler(rustc_info, cargo_info
+Description: Hack broken rust target selection so it produces the right target on raspbian.
+Author: Peter Michael Green <plugwash@raspbian.org>
- # The os in the triplets used by rust may match the same OSes, in which
- @@ -192,7 +194,11 @@ def rust_supported_targets(rustc):
- per_os = {}
- ambiguous = set()
- per_raw_os = {}
++--- firefox-esr-68.9.0esr.orig/build/moz.configure/rust.configure
+++++ firefox-esr-68.9.0esr/build/moz.configure/rust.configure
++@@ -185,9 +185,14 @@ def rust_compiler(rustc_info, cargo_info
+
+
+ @depends(rustc, when=rust_compiler)
++@imports('sys')
++@imports(_from='__builtin__', _import='repr')
++ @imports(_from='__builtin__', _import='ValueError')
+ def rust_supported_targets(rustc):
+ out = check_cmd_output(rustc, '--print', 'target-list').splitlines()
- + traw = t
- t = split_triplet(t, allow_unknown=True)
- endianness = t.endianness
- if t.cpu.startswith('thumb') and endianness not in ('big', 'little'):
- @@ -232,11 +238,13 @@ def rust_triple_alias(host_or_target):
++ #HACK: if there are multiple matches the algorithm uses the last one
++ #put arm-unknown-linux-gnuebihf on the end of the list so it gets preffered
++ out.append('arm-unknown-linux-gnueabihf')
++ data = {}
+ for t in out:
++ try:
++@@ -225,11 +230,13 @@ def rust_triple_alias(host_or_target):
+ arm_target, when=rust_compiler)
+ @checking('for rust %s triplet' % host_or_target_str)
+ @imports('os')
++ @imports('sys')
+ @imports('subprocess')
+ @imports(_from='mozbuild.configure.util', _import='LineIO')
+ @imports(_from='mozbuild.shellutil', _import='quote')
+ @imports(_from='tempfile', _import='mkstemp')
+ @imports(_from='textwrap', _import='dedent')
++ @imports(_from='__builtin__', _import='repr')
+ def rust_target(rustc, host_or_target, compiler_info,
+ rust_supported_targets, arm_target):
+ # Rust's --target options are similar to, but not exactly the same