diff --git a/fix-rustdoc-install-slow.patch b/fix-rustdoc-install-slow.patch new file mode 100644 index 0000000000000000000000000000000000000000..92c750095bcc711f5654af39cb5cb0b9be05530e --- /dev/null +++ b/fix-rustdoc-install-slow.patch @@ -0,0 +1,85 @@ +From 33ccf6af163e2d04a592cca506f334d905cb94aa Mon Sep 17 00:00:00 2001 +From: Anders Kaseorg +Date: Fri, 17 Sep 2021 00:19:22 -0400 +Subject: [PATCH] bootstrap: Restore missing --bulk-dirs for rust-docs, + rustc-docs + +--- + src/bootstrap/dist.rs | 4 ++-- + src/bootstrap/tarball.rs | 17 +++++++++++++++++ + 2 files changed, 19 insertions(+), 2 deletions(-) + +diff --git a/src/bootstrap/dist.rs b/src/bootstrap/dist.rs +index 86c84a2..aadbb98 100644 +--- a/src/bootstrap/dist.rs ++++ b/src/bootstrap/dist.rs +@@ -74,7 +74,7 @@ impl Step for Docs { + + let mut tarball = Tarball::new(builder, "rust-docs", &host.triple); + tarball.set_product_name("Rust Documentation"); +- tarball.add_dir(&builder.doc_out(host), dest); ++ tarball.add_bulk_dir(&builder.doc_out(host), dest); + tarball.add_file(&builder.src.join("src/doc/robots.txt"), dest, 0o644); + Some(tarball.generate()) + } +@@ -107,7 +107,7 @@ impl Step for RustcDocs { + + let mut tarball = Tarball::new(builder, "rustc-docs", &host.triple); + tarball.set_product_name("Rustc Documentation"); +- tarball.add_dir(&builder.compiler_doc_out(host), "share/doc/rust/html/rustc"); ++ tarball.add_bulk_dir(&builder.compiler_doc_out(host), "share/doc/rust/html/rustc"); + Some(tarball.generate()) + } + } +diff --git a/src/bootstrap/tarball.rs b/src/bootstrap/tarball.rs +index 7fb0305..50f8605 100644 +--- a/src/bootstrap/tarball.rs ++++ b/src/bootstrap/tarball.rs +@@ -94,6 +94,7 @@ pub(crate) struct Tarball<'a> { + temp_dir: PathBuf, + image_dir: PathBuf, + overlay_dir: PathBuf, ++ bulk_dirs: Vec, + + include_target_in_component_name: bool, + is_preview: bool, +@@ -132,6 +133,7 @@ impl<'a> Tarball<'a> { + temp_dir, + image_dir, + overlay_dir, ++ bulk_dirs: Vec::new(), + + include_target_in_component_name: false, + is_preview: false, +@@ -196,6 +198,11 @@ impl<'a> Tarball<'a> { + self.builder.cp_r(src.as_ref(), &dest); + } + ++ pub(crate) fn add_bulk_dir(&mut self, src: impl AsRef, dest: impl AsRef) { ++ self.bulk_dirs.push(dest.as_ref().to_path_buf()); ++ self.add_dir(src, dest); ++ } ++ + pub(crate) fn generate(self) -> GeneratedTarball { + let mut component_name = self.component.clone(); + if self.is_preview { +@@ -216,6 +223,16 @@ impl<'a> Tarball<'a> { + .arg("--image-dir") + .arg(&this.image_dir) + .arg(format!("--component-name={}", &component_name)); ++ ++ if let Some((dir, dirs)) = this.bulk_dirs.split_first() { ++ let mut arg = dir.as_os_str().to_os_string(); ++ for dir in dirs { ++ arg.push(","); ++ arg.push(dir); ++ } ++ cmd.arg("--bulk-dirs").arg(&arg); ++ } ++ + this.non_bare_args(cmd); + }) + } +-- +1.8.3.1 + diff --git a/rust.spec b/rust.spec index 327858195cd779f69fde7793666882fc7ce578df..162258fe7b0f896b5a064bcaaddc14ec885993bf 100644 --- a/rust.spec +++ b/rust.spec @@ -12,7 +12,7 @@ %bcond_without lldb Name: rust Version: 1.51.0 -Release: 9 +Release: 10 Summary: The Rust Programming Language License: (ASL 2.0 or MIT) and (BSD and MIT) URL: https://www.rust-lang.org @@ -40,6 +40,7 @@ Patch0011: cargo-help-clippy-should-have-description-to-user.patch Patch0012: fix-a-println-wrong-format.patch Patch0013: CVE-2021-29922.patch Patch0014: fix-rustdoc-error-info.patch +Patch0015: fix-rustdoc-install-slow.patch %{lua: function rust_triple(arch) local abi = "gnu" if arch == "armv7hl" then @@ -273,6 +274,7 @@ sed -i.try-python -e '/^try python3 /i try "%{python}" "$@"' ./configure %patch0012 -p1 %patch0013 -p1 %patch0014 -p1 +%patch0015 -p1 rm -rf vendor/curl-sys/curl/ rm -rf vendor/jemalloc-sys/jemalloc/ rm -rf vendor/libssh2-sys/libssh2/ @@ -486,6 +488,9 @@ export %{rust_env} %{_mandir}/man1/cargo*.1* %changelog +* Tue Sep 17 2021 donglongtao - 1.51.0-10 +- Fix rustdoc install very slow + * Tue Aug 24 2021 caodongxia - 1.51.0-9 - Fix rustdoc error info