From: "Georgy Yakovlev" <gyakovlev@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-lang/rust/, dev-lang/rust/files/
Date: Wed, 5 May 2021 20:16:16 +0000 (UTC) [thread overview]
Message-ID: <1620245744.f5f3024c3ef7506c3b3a496dc725f5e38ce5d626.gyakovlev@gentoo> (raw)
commit: f5f3024c3ef7506c3b3a496dc725f5e38ce5d626
Author: Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
AuthorDate: Wed May 5 15:19:21 2021 +0000
Commit: Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
CommitDate: Wed May 5 20:15:44 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f5f3024c
dev-lang/rust: greatly reduce documentation installation time
Bug: https://bugs.gentoo.org/783468
X-Upstream-Issue: https://github.com/rust-lang/rust/issues/80684
X-Upstream-Fix: https://github.com/rust-lang/rust/pull/84289
Package-Manager: Portage-3.0.18, Repoman-3.0.3
Signed-off-by: Georgy Yakovlev <gyakovlev <AT> gentoo.org>
dev-lang/rust/files/1.51.0-slow-doc-install.patch | 92 +++++++++++++++++++++++
dev-lang/rust/rust-1.51.0-r2.ebuild | 1 +
2 files changed, 93 insertions(+)
diff --git a/dev-lang/rust/files/1.51.0-slow-doc-install.patch b/dev-lang/rust/files/1.51.0-slow-doc-install.patch
new file mode 100644
index 00000000000..4aa7a714795
--- /dev/null
+++ b/dev-lang/rust/files/1.51.0-slow-doc-install.patch
@@ -0,0 +1,92 @@
+From 6dfd700c595a8853fd58349c38c4768b922a2e85 Mon Sep 17 00:00:00 2001
+From: Anders Kaseorg <andersk@mit.edu>
+Date: Sat, 17 Apr 2021 22:20:36 -0700
+Subject: [PATCH] bootstrap: Restore missing --bulk-dirs for rust-docs,
+ rustc-docs
+
+The --bulk-dirs argument was removed for rust-docs in commit
+c768ce138427b1844c1f6594daba9c0e33928032 and rustc-docs in commit
+8ca46fc7a83734c9622f11f25d16b82316f44bcc (#79788), presumably by
+mistake; that slowed down installation of rust-docs from under a
+second to some twenty *minutes*. Restoring --bulk-dirs reverses this
+slowdown.
+
+Fixes #80684.
+
+Signed-off-by: Anders Kaseorg <andersk@mit.edu>
+---
+ 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 38ebe0e52083d..aee3c8324bc11 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 b02d7e062a524..9ff5c2327e0f7 100644
+--- a/src/bootstrap/tarball.rs
++++ b/src/bootstrap/tarball.rs
+@@ -99,6 +99,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,
+@@ -137,6 +138,7 @@ impl<'a> Tarball<'a> {
+ temp_dir,
+ image_dir,
+ overlay_dir,
++ bulk_dirs: Vec::new(),
+
+ include_target_in_component_name: false,
+ is_preview: false,
+@@ -201,6 +203,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 {
+@@ -221,6 +228,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);
+ })
+ }
diff --git a/dev-lang/rust/rust-1.51.0-r2.ebuild b/dev-lang/rust/rust-1.51.0-r2.ebuild
index 28b670418ed..17e948f5841 100644
--- a/dev-lang/rust/rust-1.51.0-r2.ebuild
+++ b/dev-lang/rust/rust-1.51.0-r2.ebuild
@@ -147,6 +147,7 @@ PATCHES=(
"${FILESDIR}"/1.47.0-ignore-broken-and-non-applicable-tests.patch
"${FILESDIR}"/1.49.0-gentoo-musl-target-specs.patch
"${FILESDIR}"/1.51.0-bootstrap-panic.patch
+ "${FILESDIR}"/1.51.0-slow-doc-install.patch
"${FILESDIR}"/rustc-1.51.0-backport-pr81728.patch
"${FILESDIR}"/rustc-1.51.0-backport-pr81741.patch
"${FILESDIR}"/rustc-1.51.0-backport-pr82289.patch
next reply other threads:[~2021-05-05 20:16 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-05 20:16 Georgy Yakovlev [this message]
-- strict thread matches above, loose matches on Subject: below --
2025-04-23 11:37 [gentoo-commits] repo/gentoo:master commit in: dev-lang/rust/, dev-lang/rust/files/ Matt Jolly
2024-12-08 7:04 Sam James
2024-11-03 6:06 Matt Jolly
2024-07-04 1:15 Sam James
2024-05-31 21:03 Sam James
2024-03-09 2:56 WANG Xuerui
2024-02-10 7:49 Sam James
2024-02-10 4:49 Sam James
2024-01-31 13:56 Matt Turner
2023-07-20 9:49 WANG Xuerui
2023-06-20 19:51 Georgy Yakovlev
2023-06-02 3:06 Georgy Yakovlev
2023-03-21 0:10 Georgy Yakovlev
2023-02-08 22:36 Georgy Yakovlev
2023-01-28 19:34 Georgy Yakovlev
2022-12-20 7:12 Georgy Yakovlev
2022-11-05 5:57 Georgy Yakovlev
2022-09-25 6:37 Georgy Yakovlev
2022-09-13 22:59 Georgy Yakovlev
2022-05-26 16:36 Georgy Yakovlev
2022-05-25 21:09 Georgy Yakovlev
2022-05-24 19:44 Georgy Yakovlev
2022-01-29 17:07 Georgy Yakovlev
2021-12-26 8:58 Georgy Yakovlev
2021-09-13 15:07 Georgy Yakovlev
2021-07-03 7:03 Georgy Yakovlev
2021-06-18 5:26 Georgy Yakovlev
2021-04-27 11:55 Georgy Yakovlev
2021-04-18 10:30 Georgy Yakovlev
2021-02-05 19:31 Georgy Yakovlev
2021-02-02 23:52 Georgy Yakovlev
2020-10-12 5:14 Georgy Yakovlev
2020-10-09 6:24 Georgy Yakovlev
2020-07-31 9:34 Georgy Yakovlev
2020-04-25 6:13 Georgy Yakovlev
2020-03-30 22:23 Georgy Yakovlev
2020-02-05 9:01 Georgy Yakovlev
2019-12-30 9:59 Georgy Yakovlev
2019-12-20 0:53 Georgy Yakovlev
2019-12-20 0:53 Georgy Yakovlev
2019-10-02 18:42 Georgy Yakovlev
2019-08-16 5:45 Georgy Yakovlev
2019-07-09 16:49 Georgy Yakovlev
2019-07-08 23:01 Georgy Yakovlev
2019-04-12 5:08 Georgy Yakovlev
2019-02-19 1:24 Thomas Deutschmann
2019-02-01 4:36 Georgy Yakovlev
2019-01-26 3:50 Georgy Yakovlev
2019-01-19 20:28 Thomas Deutschmann
2018-11-14 16:16 Dirkjan Ochtman
2018-05-14 14:41 Dirkjan Ochtman
2018-01-27 13:24 Dirkjan Ochtman
2016-11-08 18:44 Doug Goldstein
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1620245744.f5f3024c3ef7506c3b3a496dc725f5e38ce5d626.gyakovlev@gentoo \
--to=gyakovlev@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox