From f10ee11f7043cb38fff02d9085b26009f2fc66aa Mon Sep 17 00:00:00 2001 From: Aaron Hill <aa1ronham@gmail.com> Date: Wed, 20 Nov 2019 13:08:27 -0500 Subject: [PATCH] Fix build.rs failing with a rustc built from a tarball Fixes #1601 --- build.rs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/build.rs b/build.rs index 420e1596..f447c0ef 100644 --- a/build.rs +++ b/build.rs @@ -103,9 +103,16 @@ fn rustc_minor_nightly() -> Option<(u32, bool)> { } let minor = pieces.next(); - let nightly_raw = otry!(otry!(pieces.next()).split('-').nth(1)); - let nightly = - nightly_raw.starts_with("dev") || nightly_raw.starts_with("nightly"); + + // If `rustc` was built from a tarball, its version string + // will have neither a git hash nor a commit date + // (e.g. "rustc 1.39.0"). Treat this case as non-nightly, + // since a nightly build should either come from CI + // or a git checkout + let nightly_raw = otry!(pieces.next()).split('-').nth(1); + let nightly = nightly_raw + .map(|raw| raw.starts_with("dev") || raw.starts_with("nightly")) + .unwrap_or(false); let minor = otry!(otry!(minor).parse().ok()); Some((minor, nightly)) -- GitLab