From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 521D81382C5 for ; Wed, 5 May 2021 20:16:21 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 9F80CE083B; Wed, 5 May 2021 20:16:20 +0000 (UTC) Received: from smtp.gentoo.org (mail.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 4D35DE083B for ; Wed, 5 May 2021 20:16:20 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 89354340E9C for ; Wed, 5 May 2021 20:16:18 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id D86724C3 for ; Wed, 5 May 2021 20:16:16 +0000 (UTC) From: "Georgy Yakovlev" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Georgy Yakovlev" Message-ID: <1620245744.f5f3024c3ef7506c3b3a496dc725f5e38ce5d626.gyakovlev@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: dev-lang/rust/, dev-lang/rust/files/ X-VCS-Repository: repo/gentoo X-VCS-Files: dev-lang/rust/files/1.51.0-slow-doc-install.patch dev-lang/rust/rust-1.51.0-r2.ebuild X-VCS-Directories: dev-lang/rust/ dev-lang/rust/files/ X-VCS-Committer: gyakovlev X-VCS-Committer-Name: Georgy Yakovlev X-VCS-Revision: f5f3024c3ef7506c3b3a496dc725f5e38ce5d626 X-VCS-Branch: master Date: Wed, 5 May 2021 20:16:16 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 63aa670b-57a2-47bd-8cfc-a39988be40c1 X-Archives-Hash: 3de469cd9ba103f8e9536eb816c8db68 commit: f5f3024c3ef7506c3b3a496dc725f5e38ce5d626 Author: Georgy Yakovlev gentoo org> AuthorDate: Wed May 5 15:19:21 2021 +0000 Commit: Georgy Yakovlev gentoo 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 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 +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 +--- + 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, + + 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, 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 { +@@ -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