Index: general/prog/rust.xml
===================================================================
--- general/prog/rust.xml	(revision 73db5703f3d2d2cf4f4341c7f88f2e909674ba6e)
+++ general/prog/rust.xml	(revision 69d1a8eb7c992c681c29c0739196f00dfa04f2b4)
@@ -7,6 +7,6 @@
   <!ENTITY rust-download-http "https://static.rust-lang.org/dist/rustc-&rust-version;-src.tar.gz">
   <!ENTITY rust-download-ftp  " ">
-  <!ENTITY rust-md5sum        "b348233fdbbf7858763bab7cb9c314ae">
-  <!ENTITY rust-size          "146 MB">
+  <!ENTITY rust-md5sum        "ff5731326898a7010403e1b148375de4">
+  <!ENTITY rust-size          "130 MB">
   <!-- Gentle Reminder: buildsize is how much the user requires for the real
        install, i.e. the source with its DESTDIR *plus* the DESTDIR.  You
@@ -15,6 +15,6 @@
        after the tests. -->
 
-  <!ENTITY rust-buildsize     "9.0 GB (747 MB installed) including 344 MB of ~/.cargo files for the user building this. Add 2.3 GB if running the tests">
-  <!ENTITY rust-time          "52 SBU (add 15 SBU for tests, both on a 4-core machine)">
+  <!ENTITY rust-buildsize     "5.7 GB (250 MB installed) including 344 MB of ~/.cargo files for the user building this. Add 2.5 GB if running the tests">
+  <!ENTITY rust-time          "33 SBU (add 17 SBU for tests, both on a 4-core machine)">
 ]>
 
@@ -188,10 +188,12 @@
     </para>
 
-<!--<bridgehead renderas="sect4">Recommended</bridgehead>
+    <bridgehead renderas="sect4">Recommended</bridgehead>
     <para role="recommended">
       <package>clang</package> from <xref linkend="llvm"/>
       (built with -DLLVM_LINK_LLVM_DYLIB=ON so that rust can link to
       system LLVM instead of building its shipped version)
-    </para> FIXME reinstate when next using system llvm -->
+      If using an older version, see the config.toml file below re
+      using the shipped llvm, because of rust issue 69225.
+    </para>
 
     <bridgehead renderas="sect4">Optional</bridgehead>
@@ -237,6 +239,6 @@
 <screen><userinput>cat &lt;&lt; EOF &gt; config.toml
 <literal># see config.toml.example for more possible options
-# See the 9.1 book for an example using system LLVM
-# e.g. if you are still using llvm-9.0.1
+# See the 8.4 book for an example using shipped LLVM
+# e.g. if not installing clang, or using a version before 10.0
 [llvm]
 # by default, rust will build for a myriad of architectures
@@ -305,6 +307,4 @@
       <filename>run-make-fulldeps/sysroot-crates-are-unstable</filename>
       fails, presumably because we are using only stable features.
-      <!-- https://github.com/rust-lang/rust/issues/63520 -->
-      A fifth test, run-make-fulldeps/linker-output-non-utf8, is broken.
       <!-- gdb appears to be fixed now
       If gdb has been installed, in some circumstances tests in
@@ -318,13 +318,24 @@
 
     <para>
-      Therefore, you should determine the number of tests, failures, etc. The
-      total number of tests which were considered is found by running:
-    </para>
-
-<screen remap="test"><userinput>grep 'running .* tests' rustc-testlog | awk '{ sum += $2 } END { print sum }'</userinput></screen>
-
-    <para>
-      That should report 17349 tests. Similarly, the total tests which failed can
-      be found by running:
+      If you get any <emphasis>other</emphasis> failing test which reports an
+      issue number then you should search for that issue.  For example, when
+      rustc &gt;= 1.41.1 is built with a version of sysllvm before 10.0 the test
+      for issue 69225 fails <ulink
+      url="https://github.com/rust-lang/rust/issues/69225"/> and that should be
+      regarded as a critical failurei (they released 1.41.1 because of it).
+      Most other failures will not be critical.
+    </para>
+
+    <para>
+      Therefore, you should determine the number of failures. The total number
+      of tests varies depending on which dependencies are present, e.g. more
+      will be run if <command>gdb</command> is available. If you wish, the
+      total number which were considered can be found if you run:
+    </para>
+
+<screen remap="test"><userinput>egrep 'running [[:digit:]]+ test' rustc-testlog | awk '{ sum += $2 } END { print sum }'</userinput></screen>
+
+    <para>
+      More importantly, the total of tests which failed can be found by running:
     </para>
 
@@ -332,7 +343,7 @@
 
     <para>
-      And similarly for the tests which passed use $4, for those which were ignored
-      (i.e. skipped) use $8 (and $10 for 'measured', $12 for 'filtered out' but both
-      are probably zero). The breakdown does not quite match the overall total.
+      And similarly if you care about how many tests passed use $4, for those
+      which were ignored (i.e. skipped) use $8 (and $10 for 'measured', $12 for
+      'filtered out' but both are probably zero).
     </para>
 
Index: introduction/welcome/changelog.xml
===================================================================
--- introduction/welcome/changelog.xml	(revision 73db5703f3d2d2cf4f4341c7f88f2e909674ba6e)
+++ introduction/welcome/changelog.xml	(revision 69d1a8eb7c992c681c29c0739196f00dfa04f2b4)
@@ -46,4 +46,9 @@
       <itemizedlist>
         <listitem>
+          <para>[ken] - Update to rustc-1.42.0 and patch seamonkey for this.
+          Thanks to Bruce, Pierre and Uwe for their help. Fixes
+          <ulink url="&blfs-ticket-root;13321">#13321</ulink>.</para>
+        </listitem>
+        <listitem>
           <para>[bdubbs] - Update to xorg-server-1.20.8. Fixes
           <ulink url="&blfs-ticket-root;13329">#13329</ulink>.</para>
Index: packages.ent
===================================================================
--- packages.ent	(revision 73db5703f3d2d2cf4f4341c7f88f2e909674ba6e)
+++ packages.ent	(revision 69d1a8eb7c992c681c29c0739196f00dfa04f2b4)
@@ -354,5 +354,5 @@
 <!ENTITY ruby-patch-version           "0">
 <!ENTITY ruby-version                 "&ruby-minor-version;.&ruby-patch-version;">
-<!ENTITY rust-version                 "1.39.0">
+<!ENTITY rust-version                 "1.42.0">
 <!ENTITY scons-version                "3.1.2">
 <!ENTITY slang-version                "2.3.2">
Index: xsoft/graphweb/seamonkey.xml
===================================================================
--- xsoft/graphweb/seamonkey.xml	(revision 73db5703f3d2d2cf4f4341c7f88f2e909674ba6e)
+++ xsoft/graphweb/seamonkey.xml	(revision 69d1a8eb7c992c681c29c0739196f00dfa04f2b4)
@@ -10,5 +10,5 @@
   <!ENTITY seamonkey-size          "277 MB">
   <!ENTITY seamonkey-buildsize     "6.9 GB (154 MB installed)">
-  <!ENTITY seamonkey-time          "19 SBU (on a 4-core machine)">
+  <!ENTITY seamonkey-time          "29 SBU (on a 4-core machine)">
 ]>
 
@@ -80,15 +80,15 @@
       </listitem>
     </itemizedlist>
-<!--
+
     <bridgehead renderas="sect3">Additional Downloads</bridgehead>
     <itemizedlist spacing="compact">
       <listitem>
         <para>
-          Required patch if using gcc-6 or later
-          <ulink url="&patch-root;/seamonkey-&seamonkey-version;-gcc6-1.patch"/>
+          Required patch for building with rustc &gt;= 1.41
+          <ulink url="&patch-root;/seamonkey-&seamonkey-version;-rust_fixes-1.patch"/>
         </para>
       </listitem>
     </itemizedlist>
--->
+
     <note>
       <para>
@@ -262,4 +262,11 @@
     </para></note>
 
+    <para>
+      Apply the patch to allow seamonkey to build with the current version of
+      <command>rustc</command>:
+    </para>
+
+<screen><userinput>patch -Np1 -i ../seamonkey-&seamonkey-version;-rust_fixes-1.patch</userinput></screen>
+
     <!--
     <para>
@@ -279,10 +286,4 @@
 
 <screen><userinput>sed -i -e '/pid_t gettid/,+3 s@^@//@' mozilla/tools/profiler/core/platform.h</userinput></screen>
-
-    <para>
-      Now adapt the code for a change introduced in rustc-1.39.0:
-    </para>
-
-<screen><userinput>sed -i '/deny(warnings)/d' mozilla/xpcom/rust/nsstring/src/lib.rs</userinput></screen>
 
     <!-- Doesn't seem to be needed anymore with 2.53.1
@@ -368,10 +369,4 @@
     </para>
 -->
-    <para>
-      <command>sed -i '/deny(warnings)/d' ...</command> : rust-1.39 deprecated
-      the "try!" call in favour of "?" which causes warnings, nsstring was
-      treating warnings as errors.
-    </para>
-
     <para>
       <command>make -f client.mk</command>: Mozilla products are packaged to
