fix rust-docs install very slow

This commit is contained in:
ltdong 2021-09-17 15:28:19 +08:00
parent b04195447d
commit 918b018912
2 changed files with 91 additions and 1 deletions

View File

@ -0,0 +1,85 @@
From 33ccf6af163e2d04a592cca506f334d905cb94aa Mon Sep 17 00:00:00 2001
From: Anders Kaseorg <andersk@mit.edu>
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<PathBuf>,
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<Path>, dest: impl AsRef<Path>) {
+ 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

View File

@ -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 <donglongtao@huawei.com> - 1.51.0-10
- Fix rustdoc install very slow
* Tue Aug 24 2021 caodongxia <caodongxia@huawei.com> - 1.51.0-9
- Fix rustdoc error info