Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/microsoft/vscode.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorConnor Peet <connor@peet.io>2022-11-12 01:31:18 +0300
committerGitHub <noreply@github.com>2022-11-12 01:31:18 +0300
commitd5a5128919a2cf0a0f4ad232acb42fa2d4592501 (patch)
tree864c48579d72c602ac5a4fa8b1cec5cb73aa60b9
parent24340e259a934a8c877d5bdf6f0be9ab64e850d7 (diff)
parent0cd1422809b52b0a6e1592eb92193c5cf6260a43 (diff)
Merge pull request #166151 from microsoft/connor4312/cli-fix-nixos
cli: skip glibc check for nixos
-rw-r--r--cli/src/util/prereqs.rs14
1 files changed, 12 insertions, 2 deletions
diff --git a/cli/src/util/prereqs.rs b/cli/src/util/prereqs.rs
index dd240b412d8..0070858ddeb 100644
--- a/cli/src/util/prereqs.rs
+++ b/cli/src/util/prereqs.rs
@@ -23,6 +23,8 @@ lazy_static! {
static ref MIN_LDD_VERSION: SimpleSemver = SimpleSemver::new(2, 17, 0);
}
+const NIXOS_TEST_PATH: &str = "/etc/NIXOS";
+
pub struct PreReqChecker {}
impl Default for PreReqChecker {
@@ -45,13 +47,14 @@ impl PreReqChecker {
#[cfg(target_os = "linux")]
pub async fn verify(&self) -> Result<Platform, AnyError> {
- let (gnu_a, gnu_b, or_musl) = tokio::join!(
+ let (is_nixos, gnu_a, gnu_b, or_musl) = tokio::join!(
+ check_is_nixos(),
check_glibc_version(),
check_glibcxx_version(),
check_musl_interpreter()
);
- if gnu_a.is_ok() && gnu_b.is_ok() {
+ if (gnu_a.is_ok() && gnu_b.is_ok()) || is_nixos {
return Ok(if cfg!(target_arch = "x86_64") {
Platform::LinuxX64
} else if cfg!(target_arch = "armhf") {
@@ -132,6 +135,13 @@ async fn check_glibc_version() -> Result<(), String> {
Ok(())
}
+/// Check for nixos to avoid mandating glibc versions. See:
+/// https://github.com/microsoft/vscode-remote-release/issues/7129
+#[allow(dead_code)]
+async fn check_is_nixos() -> bool {
+ fs::metadata(NIXOS_TEST_PATH).await.is_ok()
+}
+
#[allow(dead_code)]
async fn check_glibcxx_version() -> Result<(), String> {
let mut libstdc_path: Option<String> = None;