public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Georgy Yakovlev" <gyakovlev@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-lang/rust/files/, dev-lang/rust/
Date: Sun, 14 Apr 2019 08:03:53 +0000 (UTC)	[thread overview]
Message-ID: <1555229024.5ff8fc319f6208520bc633dcfcb09e8ff6b08667.gyakovlev@gentoo> (raw)

commit:     5ff8fc319f6208520bc633dcfcb09e8ff6b08667
Author:     Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
AuthorDate: Sun Apr 14 08:02:11 2019 +0000
Commit:     Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
CommitDate: Sun Apr 14 08:03:44 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5ff8fc31

dev-lang/rust: fix 1.34.0 build failure with USE=doc

also speed up bootstrap a bit with upstream commit

Upstream patch url: https://github.com/rust-lang/rust/pull/58897

Bug: https://bugs.gentoo.org/683246
Package-Manager: Portage-2.3.62, Repoman-2.3.12
Signed-off-by: Georgy Yakovlev <gyakovlev <AT> gentoo.org>

 dev-lang/rust/files/1.34.0-doc-build-fix.patch | 442 +++++++++++++++++++++++++
 dev-lang/rust/rust-1.34.0-r1.ebuild            |   5 +-
 2 files changed, 446 insertions(+), 1 deletion(-)

diff --git a/dev-lang/rust/files/1.34.0-doc-build-fix.patch b/dev-lang/rust/files/1.34.0-doc-build-fix.patch
new file mode 100644
index 00000000000..52b8d6ea7f7
--- /dev/null
+++ b/dev-lang/rust/files/1.34.0-doc-build-fix.patch
@@ -0,0 +1,442 @@
+From 9efc93c96dd6746460cef916d307b72ba21a7fd0 Mon Sep 17 00:00:00 2001
+From: Mark Rousskov <mark.simulacrum@gmail.com>
+Date: Sun, 3 Mar 2019 09:29:59 -0700
+Subject: [PATCH 1/2] Tools built by the bootstrap compiler must be built by it
+
+This avoids building compilers that we don't need -- most tools will work
+just fine with the downloaded compiler.
+---
+ src/bootstrap/doc.rs  |   6 ++-
+ src/bootstrap/test.rs |  10 ++--
+ src/bootstrap/tool.rs | 104 +++++++++++++++++++++++++++---------------
+ 3 files changed, 78 insertions(+), 42 deletions(-)
+
+diff --git a/src/bootstrap/doc.rs b/src/bootstrap/doc.rs
+index e0ad0422a6ce..621e3a95473e 100644
+--- a/src/bootstrap/doc.rs
++++ b/src/bootstrap/doc.rs
+@@ -883,7 +883,11 @@ impl Step for ErrorIndex {
+         builder.info(&format!("Documenting error index ({})", target));
+         let out = builder.doc_out(target);
+         t!(fs::create_dir_all(&out));
+-        let mut index = builder.tool_cmd(Tool::ErrorIndex);
++        let compiler = builder.compiler(2, builder.config.build);
++        let mut index = tool::ErrorIndex::command(
++            builder,
++            compiler,
++        );
+         index.arg("html");
+         index.arg(out.join("error-index.html"));
+ 
+diff --git a/src/bootstrap/test.rs b/src/bootstrap/test.rs
+index 51412f79c3d0..5abf9d699784 100644
+--- a/src/bootstrap/test.rs
++++ b/src/bootstrap/test.rs
+@@ -414,7 +414,6 @@ impl Step for Miri {
+ 
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+ pub struct CompiletestTest {
+-    stage: u32,
+     host: Interned<String>,
+ }
+ 
+@@ -427,16 +426,14 @@ impl Step for CompiletestTest {
+ 
+     fn make_run(run: RunConfig<'_>) {
+         run.builder.ensure(CompiletestTest {
+-            stage: run.builder.top_stage,
+             host: run.target,
+         });
+     }
+ 
+     /// Runs `cargo test` for compiletest.
+     fn run(self, builder: &Builder<'_>) {
+-        let stage = self.stage;
+         let host = self.host;
+-        let compiler = builder.compiler(stage, host);
++        let compiler = builder.compiler(0, host);
+ 
+         let mut cargo = tool::prepare_tool_cargo(builder,
+                                                  compiler,
+@@ -1426,7 +1423,10 @@ impl Step for ErrorIndex {
+         t!(fs::create_dir_all(&dir));
+         let output = dir.join("error-index.md");
+ 
+-        let mut tool = builder.tool_cmd(Tool::ErrorIndex);
++        let mut tool = tool::ErrorIndex::command(
++            builder,
++            builder.compiler(compiler.stage, builder.config.build),
++        );
+         tool.arg("markdown")
+             .arg(&output)
+             .env("CFG_BUILD", &builder.config.build)
+diff --git a/src/bootstrap/tool.rs b/src/bootstrap/tool.rs
+index fc1a17d54667..4f2aa0b795dc 100644
+--- a/src/bootstrap/tool.rs
++++ b/src/bootstrap/tool.rs
+@@ -250,9 +250,9 @@ pub fn prepare_tool_cargo(
+     cargo
+ }
+ 
+-macro_rules! tool {
++macro_rules! bootstrap_tool {
+     ($(
+-        $name:ident, $path:expr, $tool_name:expr, $mode:expr
++        $name:ident, $path:expr, $tool_name:expr
+         $(,llvm_tools = $llvm:expr)*
+         $(,is_external_tool = $external:expr)*
+         ;
+@@ -266,10 +266,7 @@ macro_rules! tool {
+ 
+         impl Tool {
+             pub fn get_mode(&self) -> Mode {
+-                let mode = match self {
+-                    $(Tool::$name => $mode,)+
+-                };
+-                mode
++                Mode::ToolBootstrap
+             }
+ 
+             /// Whether this tool requires LLVM to run
+@@ -282,27 +279,15 @@ macro_rules! tool {
+ 
+         impl<'a> Builder<'a> {
+             pub fn tool_exe(&self, tool: Tool) -> PathBuf {
+-                let stage = self.tool_default_stage(tool);
+                 match tool {
+                     $(Tool::$name =>
+                         self.ensure($name {
+-                            compiler: self.compiler(stage, self.config.build),
++                            compiler: self.compiler(0, self.config.build),
+                             target: self.config.build,
+                         }),
+                     )+
+                 }
+             }
+-
+-            pub fn tool_default_stage(&self, tool: Tool) -> u32 {
+-                // Compile the error-index in the same stage as rustdoc to avoid
+-                // recompiling rustdoc twice if we can. Otherwise compile
+-                // everything else in stage0 as there's no need to rebootstrap
+-                // everything.
+-                match tool {
+-                    Tool::ErrorIndex if self.top_stage >= 2 => self.top_stage,
+-                    _ => 0,
+-                }
+-            }
+         }
+ 
+         $(
+@@ -321,7 +306,8 @@ macro_rules! tool {
+ 
+             fn make_run(run: RunConfig<'_>) {
+                 run.builder.ensure($name {
+-                    compiler: run.builder.compiler(run.builder.top_stage, run.builder.config.build),
++                    // snapshot compiler
++                    compiler: run.builder.compiler(0, run.builder.config.build),
+                     target: run.target,
+                 });
+             }
+@@ -331,7 +317,7 @@ macro_rules! tool {
+                     compiler: self.compiler,
+                     target: self.target,
+                     tool: $tool_name,
+-                    mode: $mode,
++                    mode: Mode::ToolBootstrap,
+                     path: $path,
+                     is_optional_tool: false,
+                     source_type: if false $(|| $external)* {
+@@ -347,21 +333,67 @@ macro_rules! tool {
+     }
+ }
+ 
+-tool!(
+-    Rustbook, "src/tools/rustbook", "rustbook", Mode::ToolBootstrap;
+-    ErrorIndex, "src/tools/error_index_generator", "error_index_generator", Mode::ToolRustc;
+-    UnstableBookGen, "src/tools/unstable-book-gen", "unstable-book-gen", Mode::ToolBootstrap;
+-    Tidy, "src/tools/tidy", "tidy", Mode::ToolBootstrap;
+-    Linkchecker, "src/tools/linkchecker", "linkchecker", Mode::ToolBootstrap;
+-    CargoTest, "src/tools/cargotest", "cargotest", Mode::ToolBootstrap;
+-    Compiletest, "src/tools/compiletest", "compiletest", Mode::ToolBootstrap, llvm_tools = true;
+-    BuildManifest, "src/tools/build-manifest", "build-manifest", Mode::ToolBootstrap;
+-    RemoteTestClient, "src/tools/remote-test-client", "remote-test-client", Mode::ToolBootstrap;
+-    RustInstaller, "src/tools/rust-installer", "fabricate", Mode::ToolBootstrap,
+-        is_external_tool = true;
+-    RustdocTheme, "src/tools/rustdoc-themes", "rustdoc-themes", Mode::ToolBootstrap;
++bootstrap_tool!(
++    Rustbook, "src/tools/rustbook", "rustbook";
++    UnstableBookGen, "src/tools/unstable-book-gen", "unstable-book-gen";
++    Tidy, "src/tools/tidy", "tidy";
++    Linkchecker, "src/tools/linkchecker", "linkchecker";
++    CargoTest, "src/tools/cargotest", "cargotest";
++    Compiletest, "src/tools/compiletest", "compiletest", llvm_tools = true;
++    BuildManifest, "src/tools/build-manifest", "build-manifest";
++    RemoteTestClient, "src/tools/remote-test-client", "remote-test-client";
++    RustInstaller, "src/tools/rust-installer", "fabricate", is_external_tool = true;
++    RustdocTheme, "src/tools/rustdoc-themes", "rustdoc-themes";
+ );
+ 
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub struct ErrorIndex {
++    pub compiler: Compiler,
++}
++
++impl ErrorIndex {
++    pub fn command(builder: &Builder<'_>, compiler: Compiler) -> Command {
++        let mut cmd = Command::new(builder.ensure(ErrorIndex {
++            compiler
++        }));
++        add_lib_path(
++            vec![PathBuf::from(&builder.sysroot_libdir(compiler, compiler.host))],
++            &mut cmd,
++        );
++        cmd
++    }
++}
++
++impl Step for ErrorIndex {
++    type Output = PathBuf;
++
++    fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
++        run.path("src/tools/error_index_generator")
++    }
++
++    fn make_run(run: RunConfig<'_>) {
++        // Compile the error-index in the same stage as rustdoc to avoid
++        // recompiling rustdoc twice if we can.
++        let stage = if run.builder.top_stage >= 2 { run.builder.top_stage } else { 0 };
++        run.builder.ensure(ErrorIndex {
++            compiler: run.builder.compiler(stage, run.builder.config.build),
++        });
++    }
++
++    fn run(self, builder: &Builder<'_>) -> PathBuf {
++        builder.ensure(ToolBuild {
++            compiler: self.compiler,
++            target: self.compiler.host,
++            tool: "error_index_generator",
++            mode: Mode::ToolRustc,
++            path: "src/tools/error_index_generator",
++            is_optional_tool: false,
++            source_type: SourceType::InTree,
++            extra_features: Vec::new(),
++        }).expect("expected to build -- essential tool")
++    }
++}
++
+ #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+ pub struct RemoteTestServer {
+     pub compiler: Compiler,
+@@ -625,7 +657,7 @@ impl<'a> Builder<'a> {
+     /// `host`.
+     pub fn tool_cmd(&self, tool: Tool) -> Command {
+         let mut cmd = Command::new(self.tool_exe(tool));
+-        let compiler = self.compiler(self.tool_default_stage(tool), self.config.build);
++        let compiler = self.compiler(0, self.config.build);
+         self.prepare_tool_cmd(compiler, tool, &mut cmd);
+         cmd
+     }
+@@ -637,7 +669,7 @@ impl<'a> Builder<'a> {
+     fn prepare_tool_cmd(&self, compiler: Compiler, tool: Tool, cmd: &mut Command) {
+         let host = &compiler.host;
+         let mut lib_paths: Vec<PathBuf> = vec![
+-            if compiler.stage == 0 && tool != Tool::ErrorIndex {
++            if compiler.stage == 0 {
+                 self.build.rustc_snapshot_libdir()
+             } else {
+                 PathBuf::from(&self.sysroot_libdir(compiler, compiler.host))
+
+From 03718ed67a7b8fd57fc27316ec57ac3bc0f13d06 Mon Sep 17 00:00:00 2001
+From: Mark Rousskov <mark.simulacrum@gmail.com>
+Date: Sun, 3 Mar 2019 09:50:56 -0700
+Subject: [PATCH 2/2] Permit getting stage 0 rustdoc
+
+This allows us to e.g. test compiletest, including doctests, in stage 0
+without building a fresh compiler and rustdoc.
+---
+ src/bootstrap/builder.rs | 15 +++++++--------
+ src/bootstrap/dist.rs    |  2 +-
+ src/bootstrap/doc.rs     |  8 ++++----
+ src/bootstrap/test.rs    |  8 ++++----
+ src/bootstrap/tool.rs    |  8 +++++---
+ 5 files changed, 21 insertions(+), 20 deletions(-)
+
+diff --git a/src/bootstrap/builder.rs b/src/bootstrap/builder.rs
+index 7e6c0a9f52aa..f8b7f25a7543 100644
+--- a/src/bootstrap/builder.rs
++++ b/src/bootstrap/builder.rs
+@@ -668,20 +668,19 @@ impl<'a> Builder<'a> {
+             .map(|entry| entry.path())
+     }
+ 
+-    pub fn rustdoc(&self, host: Interned<String>) -> PathBuf {
+-        self.ensure(tool::Rustdoc { host })
++    pub fn rustdoc(&self, compiler: Compiler) -> PathBuf {
++        self.ensure(tool::Rustdoc { compiler })
+     }
+ 
+-    pub fn rustdoc_cmd(&self, host: Interned<String>) -> Command {
++    pub fn rustdoc_cmd(&self, compiler: Compiler) -> Command {
+         let mut cmd = Command::new(&self.out.join("bootstrap/debug/rustdoc"));
+-        let compiler = self.compiler(self.top_stage, host);
+         cmd.env("RUSTC_STAGE", compiler.stage.to_string())
+             .env("RUSTC_SYSROOT", self.sysroot(compiler))
+             // Note that this is *not* the sysroot_libdir because rustdoc must be linked
+             // equivalently to rustc.
+             .env("RUSTDOC_LIBDIR", self.rustc_libdir(compiler))
+             .env("CFG_RELEASE_CHANNEL", &self.config.channel)
+-            .env("RUSTDOC_REAL", self.rustdoc(host))
++            .env("RUSTDOC_REAL", self.rustdoc(compiler))
+             .env("RUSTDOC_CRATE_VERSION", self.rust_version())
+             .env("RUSTC_BOOTSTRAP", "1");
+ 
+@@ -689,7 +688,7 @@ impl<'a> Builder<'a> {
+         cmd.env_remove("MAKEFLAGS");
+         cmd.env_remove("MFLAGS");
+ 
+-        if let Some(linker) = self.linker(host) {
++        if let Some(linker) = self.linker(compiler.host) {
+             cmd.env("RUSTC_TARGET_LINKER", linker);
+         }
+         cmd
+@@ -751,7 +750,7 @@ impl<'a> Builder<'a> {
+                 // This is the intended out directory for compiler documentation.
+                 my_out = self.compiler_doc_out(target);
+             }
+-            let rustdoc = self.rustdoc(compiler.host);
++            let rustdoc = self.rustdoc(compiler);
+             self.clear_if_dirty(&my_out, &rustdoc);
+         } else if cmd != "test" {
+             match mode {
+@@ -897,7 +896,7 @@ impl<'a> Builder<'a> {
+             .env(
+                 "RUSTDOC_REAL",
+                 if cmd == "doc" || cmd == "rustdoc" || (cmd == "test" && want_rustdoc) {
+-                    self.rustdoc(compiler.host)
++                    self.rustdoc(compiler)
+                 } else {
+                     PathBuf::from("/path/to/nowhere/rustdoc/not/required")
+                 },
+diff --git a/src/bootstrap/dist.rs b/src/bootstrap/dist.rs
+index 2dae3f9135d8..3045cda125ee 100644
+--- a/src/bootstrap/dist.rs
++++ b/src/bootstrap/dist.rs
+@@ -479,7 +479,7 @@ impl Step for Rustc {
+             t!(fs::create_dir_all(image.join("bin")));
+             builder.cp_r(&src.join("bin"), &image.join("bin"));
+ 
+-            builder.install(&builder.rustdoc(compiler.host), &image.join("bin"), 0o755);
++            builder.install(&builder.rustdoc(compiler), &image.join("bin"), 0o755);
+ 
+             // Copy runtime DLLs needed by the compiler
+             if libdir != "bin" {
+diff --git a/src/bootstrap/doc.rs b/src/bootstrap/doc.rs
+index 621e3a95473e..ae329286486d 100644
+--- a/src/bootstrap/doc.rs
++++ b/src/bootstrap/doc.rs
+@@ -335,7 +335,7 @@ fn invoke_rustdoc(
+     let footer = builder.src.join("src/doc/footer.inc");
+     let version_info = out.join("version_info.html");
+ 
+-    let mut cmd = builder.rustdoc_cmd(compiler.host);
++    let mut cmd = builder.rustdoc_cmd(compiler);
+ 
+     let out = out.join("book");
+ 
+@@ -415,7 +415,7 @@ impl Step for Standalone {
+             }
+ 
+             let html = out.join(filename).with_extension("html");
+-            let rustdoc = builder.rustdoc(compiler.host);
++            let rustdoc = builder.rustdoc(compiler);
+             if up_to_date(&path, &html) &&
+                up_to_date(&footer, &html) &&
+                up_to_date(&favicon, &html) &&
+@@ -425,7 +425,7 @@ impl Step for Standalone {
+                 continue
+             }
+ 
+-            let mut cmd = builder.rustdoc_cmd(compiler.host);
++            let mut cmd = builder.rustdoc_cmd(compiler);
+             cmd.arg("--html-after-content").arg(&footer)
+                .arg("--html-before-content").arg(&version_info)
+                .arg("--html-in-header").arg(&favicon)
+@@ -824,7 +824,7 @@ impl Step for Rustdoc {
+         builder.ensure(Rustc { stage, target });
+ 
+         // Build rustdoc.
+-        builder.ensure(tool::Rustdoc { host: compiler.host });
++        builder.ensure(tool::Rustdoc { compiler: compiler });
+ 
+         // Symlink compiler docs to the output directory of rustdoc documentation.
+         let out_dir = builder.stage_out(compiler, Mode::ToolRustc)
+diff --git a/src/bootstrap/test.rs b/src/bootstrap/test.rs
+index 5abf9d699784..6b9960c355c5 100644
+--- a/src/bootstrap/test.rs
++++ b/src/bootstrap/test.rs
+@@ -177,7 +177,7 @@ impl Step for Cargotest {
+             cmd.arg(&builder.initial_cargo)
+                 .arg(&out_dir)
+                 .env("RUSTC", builder.rustc(compiler))
+-                .env("RUSTDOC", builder.rustdoc(compiler.host)),
++                .env("RUSTDOC", builder.rustdoc(compiler)),
+         );
+     }
+ }
+@@ -560,7 +560,7 @@ impl Step for RustdocTheme {
+                 builder.sysroot_libdir(self.compiler, self.compiler.host),
+             )
+             .env("CFG_RELEASE_CHANNEL", &builder.config.channel)
+-            .env("RUSTDOC_REAL", builder.rustdoc(self.compiler.host))
++            .env("RUSTDOC_REAL", builder.rustdoc(self.compiler))
+             .env("RUSTDOC_CRATE_VERSION", builder.rust_version())
+             .env("RUSTC_BOOTSTRAP", "1");
+         if let Some(linker) = builder.linker(self.compiler.host) {
+@@ -995,7 +995,7 @@ impl Step for Compiletest {
+             || (mode == "ui" && is_rustdoc_ui)
+         {
+             cmd.arg("--rustdoc-path")
+-                .arg(builder.rustdoc(compiler.host));
++                .arg(builder.rustdoc(compiler));
+         }
+ 
+         cmd.arg("--src-base")
+@@ -1451,7 +1451,7 @@ fn markdown_test(builder: &Builder<'_>, compiler: Compiler, markdown: &Path) ->
+     }
+ 
+     builder.info(&format!("doc tests for: {}", markdown.display()));
+-    let mut cmd = builder.rustdoc_cmd(compiler.host);
++    let mut cmd = builder.rustdoc_cmd(compiler);
+     builder.add_rust_test_threads(&mut cmd);
+     cmd.arg("--test");
+     cmd.arg(markdown);
+diff --git a/src/bootstrap/tool.rs b/src/bootstrap/tool.rs
+index 4f2aa0b795dc..5fb83caac06c 100644
+--- a/src/bootstrap/tool.rs
++++ b/src/bootstrap/tool.rs
+@@ -430,7 +430,9 @@ impl Step for RemoteTestServer {
+ 
+ #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+ pub struct Rustdoc {
+-    pub host: Interned<String>,
++    /// This should only ever be 0 or 2.
++    /// We sometimes want to reference the "bootstrap" rustdoc, which is why this option is here.
++    pub compiler: Compiler,
+ }
+ 
+ impl Step for Rustdoc {
+@@ -444,12 +446,12 @@ impl Step for Rustdoc {
+ 
+     fn make_run(run: RunConfig<'_>) {
+         run.builder.ensure(Rustdoc {
+-            host: run.host,
++            compiler: run.builder.compiler(run.builder.top_stage, run.host),
+         });
+     }
+ 
+     fn run(self, builder: &Builder<'_>) -> PathBuf {
+-        let target_compiler = builder.compiler(builder.top_stage, self.host);
++        let target_compiler = self.compiler;
+         if target_compiler.stage == 0 {
+             if !target_compiler.is_snapshot(builder) {
+                 panic!("rustdoc in stage 0 must be snapshot rustdoc");

diff --git a/dev-lang/rust/rust-1.34.0-r1.ebuild b/dev-lang/rust/rust-1.34.0-r1.ebuild
index 7a082deb150..4c34807181a 100644
--- a/dev-lang/rust/rust-1.34.0-r1.ebuild
+++ b/dev-lang/rust/rust-1.34.0-r1.ebuild
@@ -82,7 +82,10 @@ REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
 	x86? ( cpu_flags_x86_sse2 )
 "
 
-PATCHES=( "${FILESDIR}"/0001-llvm-cmake-Add-additional-headers-only-if-they-exist.patch )
+PATCHES=(
+	"${FILESDIR}"/0001-llvm-cmake-Add-additional-headers-only-if-they-exist.patch
+	"${FILESDIR}"/1.34.0-doc-build-fix.patch
+)
 
 S="${WORKDIR}/${MY_P}-src"
 


             reply	other threads:[~2019-04-14  8:03 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-14  8:03 Georgy Yakovlev [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-02-25 19:29 [gentoo-commits] repo/gentoo:master commit in: dev-lang/rust/files/, dev-lang/rust/ Sam James
2025-02-05 18:33 Arthur Zamarin
2024-12-10  7:22 Joonas Niilola
2024-12-01  8:23 Arthur Zamarin
2024-10-12  4:04 Sam James
2024-02-11  6:01 Sam James
2023-10-02  8:13 WANG Xuerui
2023-08-04 12:30 WANG Xuerui
2023-07-20 18:48 Ionen Wolkens
2023-02-09 20:36 Georgy Yakovlev
2022-11-13 19:14 Georgy Yakovlev
2022-10-20 18:19 Georgy Yakovlev
2022-10-13 17:41 Georgy Yakovlev
2022-09-23 20:06 Georgy Yakovlev
2022-09-16  1:46 Georgy Yakovlev
2022-09-15  3:15 Georgy Yakovlev
2021-12-06 22:42 Georgy Yakovlev
2021-08-09 19:03 Georgy Yakovlev
2021-06-18  9:16 Georgy Yakovlev
2021-06-18  7:46 Georgy Yakovlev
2021-05-02 16:45 Georgy Yakovlev
2021-04-18  1:24 Georgy Yakovlev
2021-04-05  4:27 Georgy Yakovlev
2020-11-24  0:41 Georgy Yakovlev
2020-10-28  1:42 Georgy Yakovlev
2020-06-05  8:53 Stefan Strogin
2020-04-10 11:28 Stefan Strogin
2020-03-28 19:08 Georgy Yakovlev
2019-09-26 22:06 Georgy Yakovlev
2019-06-19  0:35 Georgy Yakovlev
2019-05-26  6:27 Georgy Yakovlev
2019-04-24 16:31 Georgy Yakovlev
2019-03-07  4:40 Georgy Yakovlev
2019-01-26  3:50 Georgy Yakovlev
2018-10-18  9:05 Dirkjan Ochtman
2016-10-24  5:27 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=1555229024.5ff8fc319f6208520bc633dcfcb09e8ff6b08667.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