Skip to content

Shellcheck fails on M2 (without Rosetta installed) #18589

@sureshjoshi

Description

@sureshjoshi

After running pants peek :: in the Pants main repo, I get the following error:

Error launching process: Os { code: 86, kind: Uncategorized, message: "Bad CPU type in executable" }

From the ShellCheck subsystem, I see that the Mac ARM version points to the x86 binaries (there are no Mac ARM binaries in the GH releases):

class Shellcheck(TemplatedExternalTool):
    options_scope = "shellcheck"
    name = "Shellcheck"
    help = "A linter for shell scripts."

    default_version = "v0.8.0"
    default_known_versions = [
        "v0.8.0|macos_arm64 |e065d4afb2620cc8c1d420a9b3e6243c84ff1a693c1ff0e38f279c8f31e86634|4049756",
        "v0.8.0|macos_x86_64|e065d4afb2620cc8c1d420a9b3e6243c84ff1a693c1ff0e38f279c8f31e86634|4049756",
        "v0.8.0|linux_arm64 |9f47bbff5624babfa712eb9d64ece14c6c46327122d0c54983f627ae3a30a4ac|2996468",
        "v0.8.0|linux_x86_64|ab6ee1b178f014d1b86d1e24da20d1139656c8b0ed34d2867fbb834dad02bf0a|1403852",
    ]

    default_url_template = (
        "https://github.com/koalaman/shellcheck/releases/download/{version}/shellcheck-"
        "{version}.{platform}.tar.xz"
    )
    default_url_platform_mapping = {
        "macos_arm64": "darwin.x86_64",
        "macos_x86_64": "darwin.x86_64",
        "linux_arm64": "linux.aarch64",
        "linux_x86_64": "linux.x86_64",
    }

Mitigation

I think that installing Rosetta might fix this...

Context

Detailed Error

native_engine.IntrinsicError: Failed to execute: Process {
    argv: [
        "./shellcheck-v0.8.0/shellcheck",
        "--format=json",
        "cargo",
    ],
    env: {},
    working_directory: None,
    input_digests: InputDigests {
        complete: DirectoryDigest {
            digest: Digest {
                hash: Fingerprint<74712eda6b804fa6f81dea6d4b7008be9e369f40d2c7c2fce92bb59ca25a9ba3>,
                size_bytes: 174,
            },
            tree: "Some(..)",
        },
        nailgun: DirectoryDigest {
            digest: Digest {
                hash: Fingerprint<e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855>,
                size_bytes: 0,
            },
            tree: "Some(..)",
        },
        inputs: DirectoryDigest {
            digest: Digest {
                hash: Fingerprint<74712eda6b804fa6f81dea6d4b7008be9e369f40d2c7c2fce92bb59ca25a9ba3>,
                size_bytes: 174,
            },
            tree: "Some(..)",
        },
        immutable_inputs: {},
        use_nailgun: {},
    },
    output_files: {},
    output_directories: {},
    timeout: None,
    execution_slot_variable: None,
    concurrency_available: 0,
    description: "Detect Shell imports for cargo",
    level: Debug,
    append_only_caches: {},
    jdk_home: None,
    cache_scope: Always,
    execution_environment: ProcessExecutionEnvironment {
        name: None,
        platform: Macos_arm64,
        strategy: Local,
    },
    remote_cache_speculation_delay: 0ns,
}

Error launching process: Os { code: 86, kind: Uncategorized, message: "Bad CPU type in executable" }

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions