Skip to content

libc field ignored, musl dependencies installed on glibc host #9654

@jaens

Description

@jaens

Verify latest release

  • I verified that the issue exists in the latest pnpm release

pnpm version

10.12.1

Which area(s) of pnpm are affected? (leave empty if unsure)

No response

Link to the code that reproduces this issue or a replay of the bug

No response

Reproduction steps

Install Biome (in Docker test container - Debian glibc, Node.js 22):

$ docker run --rm -it node:22-bookworm /bin/bash

root:~/test# pnpm init

root:~/test# pnpm add -D @biomejs/biome
Packages: +3
+++
Downloading @biomejs/cli-linux-x64@1.9.4: 10.86 MB/10.86 MB, done
Downloading @biomejs/cli-linux-x64-musl@1.9.4: 10.72 MB/10.72 MB, done
Progress: resolved 9, reused 0, downloaded 3, added 3, done

devDependencies:
+ @biomejs/biome 1.9.4

Done in 1.7s using pnpm v10.12.1

musl dependency has been installed (note that other OSes and architectures have been properly skipped):

root:~/test# ls node_modules/.pnpm
@biomejs+biome@1.9.4  @biomejs+cli-linux-x64-musl@1.9.4  @biomejs+cli-linux-x64@1.9.4  lock.yaml  node_modules

root:~/test# pnpm ls --depth 2 --long
Legend: production dependency, optional only, dev only

test@1.0.0 /root/test

devDependencies:
@biomejs/biome 1.9.4
│ Biome is a toolchain for the web: formatter, linter and more
│ git+https://github.com/biomejs/biome.git
│ https://biomejs.dev
│ /root/test/node_modules/.pnpm/@biomejs+biome@1.9.4/node_modules/@biomejs/biome
├── @biomejs/cli-darwin-arm64 1.9.4
│   [Could not find additional info about this dependency]
│   /root/test/node_modules/.pnpm/@biomejs+cli-darwin-arm64@1.9.4/node_modules/@biomejs/cli-darwin-arm64
├── @biomejs/cli-darwin-x64 1.9.4
│   [Could not find additional info about this dependency]
│   /root/test/node_modules/.pnpm/@biomejs+cli-darwin-x64@1.9.4/node_modules/@biomejs/cli-darwin-x64
├── @biomejs/cli-linux-arm64 1.9.4
│   [Could not find additional info about this dependency]
│   /root/test/node_modules/.pnpm/@biomejs+cli-linux-arm64@1.9.4/node_modules/@biomejs/cli-linux-arm64
├── @biomejs/cli-linux-arm64-musl 1.9.4
│   [Could not find additional info about this dependency]
│   /root/test/node_modules/.pnpm/@biomejs+cli-linux-arm64-musl@1.9.4/node_modules/@biomejs/cli-linux-arm64-musl
├── @biomejs/cli-linux-x64 1.9.4

│   git+https://github.com/biomejs/biome.git
│   https://biomejs.dev
│   /root/test/node_modules/.pnpm/@biomejs+cli-linux-x64@1.9.4/node_modules/@biomejs/cli-linux-x64
├── @biomejs/cli-linux-x64-musl 1.9.4

│   git+https://github.com/biomejs/biome.git
│   https://biomejs.dev
│   /root/test/node_modules/.pnpm/@biomejs+cli-linux-x64-musl@1.9.4/node_modules/@biomejs/cli-linux-x64-musl
├── @biomejs/cli-win32-arm64 1.9.4
│   [Could not find additional info about this dependency]
│   /root/test/node_modules/.pnpm/@biomejs+cli-win32-arm64@1.9.4/node_modules/@biomejs/cli-win32-arm64
└── @biomejs/cli-win32-x64 1.9.4
    [Could not find additional info about this dependency]
    /root/test/node_modules/.pnpm/@biomejs+cli-win32-x64@1.9.4/node_modules/@biomejs/cli-win32-x64

package.json correctly specifies libc: ["musl"]:

root:~/test# cat node_modules/.pnpm/\@biomejs+cli-linux-x64-musl\@1.9.4/node_modules/\@biomejs/cli-linux-x64-musl/package.json
{
  "name": "@biomejs/cli-linux-x64-musl",
  "version": "1.9.4",
  "license": "MIT OR Apache-2.0",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/biomejs/biome.git",
    "directory": "packages/@biomejs/biome"
  },
  "engines": {
    "node": ">=14.21.3"
  },
  "homepage": "https://biomejs.dev",
  "os": [
    "linux"
  ],
  "cpu": [
    "x64"
  ],
  "libc": [
    "musl"
  ]
}

Describe the Bug

libc: ["musl"] packages are being installed on glibc hosts.

This roughly doubles the size of installed binary dependencies, which can be an issue in various situations.

Expected Behavior

musl dependencies not installed

Which Node.js version are you using?

v22.16.0

Which operating systems have you used?

  • macOS
  • Windows
  • Linux

If your OS is a Linux based, which one it is? (Include the version if relevant)

Debian

Related issues

#7362

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions